OSDN Git Service

0e9bd8320bd7660a67f16c960992f3102079d6bc
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
2
3         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
4         to boolean_true_node.
5         (reset_bb_predicate): New.
6         (predicate_bbs): Call reset_bb_predicate.
7
8 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
9
10         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
11         (tree_if_conversion): Returns true when something has been changed.
12         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
13         changed something.
14
15 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
16
17         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
18         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
19         * tree-if-conv.c: Include dbgcnt.h.
20         (tree_if_conversion): Use if_conversion_tree to count the number of
21         if-convertible loops.
22
23 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24
25         * common.opt (fprefetch-loop-arrays): Re-define
26         -fprefetch-loop-arrays as a tri-state option with the initial
27         value of -1.
28         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
29         pass only when flag_prefetch_loop_arrays > 0.
30         * toplev.c (process_options): Note that, with tri-states,
31         flag_prefetch_loop_arrays>0 means prefetching is enabled.
32         * config/i386/i386.c (override_options): Enable prefetching at -O3
33         for a set of CPUs that sw prefetching is helpful.
34         (software_prefetching_beneficial_p): New.  Return TRUE if software
35         prefetching is beneficial for the given CPU.
36
37 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
38
39         PR rtl-optimization/44326
40         * implicit-zee.c (find_removable_zero_extends): Replace
41         INSN_P with NONDEBUG_INSN_P.
42
43 2010-06-25  Martin Jambor  <mjambor@suse.cz>
44
45         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
46         (struct ipa_node_params): Removed the modification_analysis_done flag.
47         (ipa_is_param_modified): Removed.
48         (ipa_analyze_node): Declare.
49         (ipa_compute_jump_functions): Remove declaration.
50         (ipa_count_arguments): Likewise.
51         (ipa_detect_param_modifications): Likewise.
52         (ipa_analyze_params_uses): Likewise.
53         * ipa-prop.c (struct param_analysis_info): New type.
54         (visit_store_addr_for_mod_analysis): Removed.
55         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
56         moved down in the file.
57         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
58         (ipa_count_arguments): Made static.
59         (mark_modified): New function.
60         (is_parm_modified_before_call): New function.
61         (compute_pass_through_member_ptrs): New parameter parms_info, call
62         is_parm_modified_before_call instead of ipa_is_param_modified.
63         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
64         it to compute_pass_through_member_ptrs.
65         (ipa_compute_jump_functions): New parameter parms_info, pass it to
66         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
67         on the callee if it is analyzed.  Made static.
68         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
69         is_parm_modified_before_call instead of ipa_is_param_modified.
70         (ipa_analyze_call_uses): New parameter parms_info, pass it to
71         ipa_analyze_indirect_call_uses.
72         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
73         ipa_analyze_call_uses.
74         (ipa_analyze_params_uses): New parameter parms_info, pass it to
75         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
76         (ipa_analyze_node): New function.
77         (ipa_print_node_params): Do not dump the modified flag.
78         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
79         it.  Do not stream the modified parameter flag.
80         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
81         it.  Do not stream the modified parameter flag.
82         * ipa-cp.c (ipcp_analyze_node): Removed.
83         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
84         with only a call to ipa_analyze_node.
85         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
86         node with only a call to ipa_analyze_node.
87
88 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
89
90         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
91
92 2010-06-25  Jan Hubicka  <jh@suse.cz>
93
94         * tree-pass.h (pass_split_functions): Declare.
95         * opts.c (decode_options): Enable function splitting at -O2
96         * timevar.def (TV_IPA_FNSPLIT): New macro.
97         * ipa-split.c: New file.
98         * common.opt (-fpartial-inlining): New flag.
99         * Makefile.in (ipa-split.o): New object file.
100         * passes.c (init_optimization_passes): Add ipa-split.
101         * params.def (partial-inlining-entry-probability): New parameters.
102         * doc/invoke.texi (-fpartial-inlining): New.
103
104 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
105
106         PR 44665
107         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
108         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
109         (gimplify_expr): Likewise.
110
111 2010-06-25  Martin Jambor  <mjambor@suse.cz>
112
113         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
114         statements instead of bailing out on them.
115         (ipa_analyze_indirect_call_uses): Do not require that loads from the
116         parameter are in the same BB as the condition.  Update comments.
117
118 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
119
120         PR middle-end/43866
121         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
122         true or always false, return NULL_TREE.
123         (tree_unswitch_single_loop): Optimize conditions even when reaching
124         max-unswitch-level parameter.  If num > 0, optimize first all conditions
125         using entry checks, then do still reachable block discovery and consider
126         only conditions in still reachable basic blocks in the loop.
127
128         PR tree-optimization/44539
129         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
130         the call doesn't have LHS, but has VDEF.
131
132 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
133
134         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
135         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
136         * gcc.c (enum add_del, struct modify_target, modify_target):
137         Remove.
138         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
139         * system.h (MODIFY_TARGET_NAME): Poison.
140
141 2010-06-25  Alan Modra  <amodra@gmail.com>
142
143         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
144         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
145         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
146         CMODEL_LARGE as default.
147         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
148         (offsettable_ok_by_alignment): Delete.
149         (rs6000_emit_move): Remove mcmodel=medium optimization.
150
151 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
152
153         With large parts from Jim Wilson:
154         PR target/43902
155         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
156         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
157         * optabs.c (optab_for_tree_code): Likewise.
158         (expand_widen_pattern_expr): Likewise.
159         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
160         out of execute_optimize_widening_mul.
161         (convert_plusminus_to_widen): New function.
162         (execute_optimize_widening_mul): Use the two new functions.
163         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
164         Remove code to generate widening multiply-accumulate.  Add support
165         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
166         * gimple-pretty-print.c (dump_ternary_rhs): New function.
167         (dump_gimple_assign): Call it when appropriate.
168         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
169         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
170         (expand_gimple_stmt_1): Likewise.
171         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
172         WIDEN_MULT_MINUS_EXPR.
173         * tree-ssa-operands.c (get_expr_operands): Likewise.
174         * tree-inline.c (estimate_operator_cost): Likewise.
175         * gimple.c (extract_ops_from_tree_1): Renamed from
176         extract_ops_from_tree.  Add new arg for a third operand; fill it.
177         (gimple_build_assign_stat): Support operations with three operands.
178         (gimple_build_assign_with_ops_stat): Likewise.
179         (gimple_assign_set_rhs_from_tree): Likewise.
180         (gimple_assign_set_rhs_with_ops_1): Renamed from
181         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
182         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
183         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
184         WIDEN_MULT_MINUS_EXPR.
185         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
186         (extract_ops_from_tree_1): Adjust declaration.
187         (gimple_assign_set_rhs_with_ops_1): Likewise.
188         (gimple_build_assign_with_ops): Pass NULL for last operand.
189         (gimple_build_assign_with_ops3): New macro.
190         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
191         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
192         functions.
193         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
194         (verify_gimple_assign): Call it.
195         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
196         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
197         functions for dealing with three-operand statements.
198         * tree.c (commutative_ternary_tree_code): New function.
199         * tree.h (commutative_ternary_tree_code): Declare it.
200         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
201         statements.
202         (gimple_assign_nonzero_warnv_p): Likewise.
203         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
204         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
205         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
206         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
207         (struct hashtable_expr): New member ternary in the union.
208         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
209         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
210         (iterative_hash_hashable_expr): Likewise.
211         (print_expr_hash_elt): Handle EXPR_TERNARY.
212         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
213         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
214         statements.  Handle GIMPLE_TERNARY_RHS.
215
216 2010-06-25  Jan Hubicka  <jh@suse.cz>
217
218         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
219
220 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
221
222         PR c/44517
223         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
224         parameters are not good.
225         (c_parser_parameter_declaration): Error unknown type name if the type
226         name can't start declaration specifiers.
227
228 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
229
230         * gcc.c (translate_options): Don't mention +e in comment.
231         (process_command): Don't handle +e specially.
232
233 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
234
235         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
236
237         * ira-build.c (merge_hard_reg_conflicts): New function.
238         (create_cap_allocno, copy_info_to_removed_store_destinations,
239         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
240         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
241         (remove_unnecessary_allocnos, remove_low_level_allocnos)
242         copy_nifo_to_removed_store_destination): Use them.
243         * ira-lives.c (make_hard_regno_born): New function, split out of
244         make_regno_born.
245         (make_allocno_born): Likewise.
246         (make_hard_regno_dead): New function, split out of make_regno_dead.
247         (make_allocno_dead): Likewise.
248         (inc_register_pressure): New function, split out of set_allocno_live.
249         (dec_register_pressure): New function, split out of clear_allocno_live.
250         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
251         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
252         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
253         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
254         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
255         mark_pseudo_regno_live.
256         (process_bb_node_lives): Use mark_pseudo_regno_live,
257         make_hard_regno_born and make_allocno_dead.
258         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
259         set_allocno_live, clear_allocno_live): Delete functions.
260
261         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
262         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
263         functions.
264         (ira_flattening): Use ira_parent_allocno.
265         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
266         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
267
268         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
269         statement.
270
271         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
272         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
273         minmax_set_iter_cond, minmax_set_iter_next,
274         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
275         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
276         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
277         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
278         uses changed.
279
280         * ira-int.h (struct live_range, live_range_t): Renamed from struct
281         ira_allocno_live_range and allocno_live_range_t; all uses changed.
282         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
283         All uses changed.
284
285 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
286
287         * thumb2.md (thumb2_tlobits_cbranch): Delete.
288         (peephole2 to convert zero_extract/compare of single bit to
289          lshift/compare): New.
290
291 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
292
293         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
294         recursive call and call to 'int_const_binop'.
295         (build_range_check, fold_cond_expr_with_comparison, unextend,
296         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
297         multiple_of_p): Adjust call to const_binop.
298
299 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
300
301         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
302         determine size of XFmode operand.
303         (XFmode extended DFmode push splitter): Ditto.
304         (XFmode extended SFmode push splitter): Ditto.
305
306 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
307
308         PR target/44588
309         * config/i386/i386.md (extract_code): New.
310         (<u>divmodqi4): Likewise.
311         (divmodhiqi3): Likewise.
312         (udivmodhiqi3): Likewise.
313         (<u>divqi3): Remvoved.
314
315 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
316
317         PR middle-end/44492
318         * recog.h (struct recog_data): Add is_asm field.
319         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
320         present in constraints of inline-asm operand and memory operand
321         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
322         (extract_insn): Initialize recog_data.is_asm.
323         * doc/md.texi (Constraints): Document operand side-effect rules.
324
325 2010-06-24  Andi Kleen  <ak@linux.intel.com>
326
327         * c-parser.c (c_parser_conditional_expression): Call
328         warn_for_omitted_condop.
329         * doc/invoke.texi: Document omitted condop warning.
330
331 2010-06-24  Nick Clifton<nickc@redhat.com>
332
333         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
334         insn in the sequence is a jump insn before setting its label.
335
336 2010-06-24  Alan Modra  <amodra@gmail.com>
337
338         * collect2.c (main): Match exactly --version and --help.
339
340 2010-06-24  DJ Delorie  <dj@redhat.com>
341
342         * config/m32c/m32c-pragma.c: Don't include rtl.h.
343
344 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
345
346         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
347         using X87MODEF mode iterator.
348         (pushsf splitter): Macroize splitter using P mode iterator.
349         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
350         mode iterator.
351
352         (*movxf_internal): Rename from *movxf_integer.
353         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
354         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
355         (*movdf_internal): Rename from *movdf_integer.
356         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
357         (*movsf_internal): Rename from *movdf_1.
358
359 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
360
361         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
362         (const_gimple_seq_node): Removed typedefs.
363
364         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
365         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
366
367 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
368
369         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
370         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
371         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
372         and CODE_FOR_vec_extract_lo_v4df.
373
374         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
375         Changed to define_insn_and_split.
376         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
377         (vec_extract_lo_v16hi): Likewise.
378         (vec_extract_lo_v32qi): Likewise.
379         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
380         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
381
382 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
383
384         PR target/44640
385         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
386         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
387         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
388         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
389         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
390
391         PR target/44640
392         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
393
394         PR other/44644
395         * df-core.c (struct df): Rename to df_d.
396         * df.h (struct df): Likewise.
397         * dse.h (struct df): Remove forward declaration.
398         * recog.h (struct insn_data): Rename to:
399         (struct_insn_data_d).  Adjusted all users.
400
401 2010-06-23  Arnaud Charlet  <charlet@adacore.com
402
403         PR ada/22220
404         * doc/install.texi: Update requirements to build GNAT.
405
406 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
407
408         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
409         enum type.
410         (m68k_sched_attr_opx_type): Remove unreachable return.
411         (m68k_sched_attr_opy_type): Likewise.
412         (m68k_sched_attr_size): Likewise.
413         (sched_get_opxy_mem_type): Likewise.
414         (m68k_sched_attr_op_mem): Likewise.
415
416 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
417
418         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
419         new statement and adjust VDEF only if necessary.  Remove superfluous
420         call to maybe_clean_or_replace_eh_stmt.
421         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
422         copy the flags.
423         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
424         * tree-inline.c (copy_bb): ...and not there.
425
426 2010-06-22  Cary Coutant  <ccoutant@google.com>
427
428         * dwarf2out.c (is_nested_in_subprogram): New function.
429         (should_move_die_to_comdat): Use it.
430         (copy_ancestor_tree): Don't mark DIEs here.
431         (copy_decls_walk): Start walk from root of newly-added tree;
432         mark DIEs here instead.
433
434 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
435
436         * config/i386/i386.md (unit): Also check sseishft1.
437
438 2010-06-22  Jan Hubicka  <jh@suse.cz>
439
440         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
441         enabled.
442
443 2010-06-22  Jan Hubicka  <jh@suse.cz>
444
445         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
446         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
447         Return true if something changed.
448         * df.h (df_confluence_function_n): Return bool.
449         * df-core.c (df_worklist_propagate_forward,
450         df_worklist_propagate_backward): Track changes and ages.
451         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
452         track ages.
453         * dse.c (dse_confluence_n): Return always true.
454
455 2010-06-22  Jan Hubicka  <jh@suse.cz>
456
457         * bitmap.c (bitmap_clear_bit): Micro optimize.
458
459 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
460
461         * config/i386/i386.md (SWI1248x): New mode iterator.
462         (SWI48x): Ditto.
463         (SWI12): Ditto.
464         (SWI24): Ditto.
465
466         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
467         SWI1248x mode iterator.
468         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
469         using SWI124 mode iterator.
470         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
471         mode iterator.
472         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
473         *pushdi2_prologue_rex64 using P mode iterator.
474         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
475         using SWI48 mode iterator.
476         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
477         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
478         using SWI1248x mode iterator.
479         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
480         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
481         SWI48 mode iterator.
482         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
483         iterator.
484         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
485         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
486         SWI12 mode iterator.
487         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
488         SWI12 mode iterator.
489         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
490         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
491         SWI24 mode iterator.
492         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
493         SWI48 mode iterator.
494         (mov<mode>_insn_1): New expander.
495         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
496         using SWI48x mode iterator.
497
498         (*movoi_internal_avx): Rename from *movoi_internal.
499         (*movti_internal_rex64): Rename from *movti_rex64.
500         (*movti_internal_sse): Rename from *movti_sse.
501         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
502         (*movdi_internal): Rename from *movdi_2.
503         (*movsi_internal): Rename from *movsi_1.
504         (*movhi_internal): Rename from *movhi_1.
505         (*movqi_internal): Rename from *movqi_1.
506
507         (insv): Update the call to gen_movsi_insv_1 for rename.
508         * config/i386/i386.c (promote_duplicated_reg): Ditto.
509
510 2010-06-22  Jan Hubicka  <jh@suse.cz>
511
512         * passes.c (execute_function_todo): Move call of statistics_fini_pass
513         to ...
514         (execute_todo) ... this one.
515
516 2010-06-22  Alan Modra  <amodra@gmail.com>
517
518         PR target/44364
519         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
520         * caller-save.c (insert_restore, insert_save): Use non-validate
521         form of adjust_address.
522
523 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
524
525         PR target/39690
526         * config/pa/pa.c (override_options): Disable
527         -freorder-blocks-and-partition.
528
529 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
530
531         PR target/44615
532         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
533
534         * config/i386/i386.md (type): Add sseishft1
535
536         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
537         (ppro_insn_load): Likewise.
538         (ppro_insn_store): Likewise.
539         (ppro_insn_both): Likewise.
540
541         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
542         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
543         for type.
544         (*vec_extractv2di_1_avx): Likewise.
545         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
546         type.  Remove atom_unit.
547         (*vec_extractv2di_1_sse2): Likewise.
548
549 2010-06-21  DJ Delorie  <dj@redhat.com>
550
551         * diagnostic.h (diagnostic_classification_change_t): New.
552         (diagnostic_context): Add history and push/pop list.
553         (diagnostic_push_diagnostics): Declare.
554         (diagnostic_pop_diagnostics): Declare.
555         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
556         from pragmas in a history chain instead of the global table.
557         (diagnostic_push_diagnostics): New.
558         (diagnostic_pop_diagnostics): New.
559         (diagnostic_report_diagnostic): Scan history chain to find state
560         of diagnostics as of the diagnostic location.
561         * opts.c (set_option): Pass UNKNOWN_LOCATION to
562         diagnostic_classify_diagnostic.
563         (enable_warning_as_error): Likewise.
564         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
565         use in the history chain.
566         * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
567         allow these pragmas anywhere.
568         * doc/extend.texi: Document pragma GCC diagnostic changes.
569
570 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
571
572         * dwarf2out.c (add_linkage_name): New function.  Don't add
573         anything to DW_TAG_member DIEs.
574         (add_name_and_src_coords_attributes): Use it.
575         (gen_variable_die): Call it for C++ static data members if
576         specification is DW_TAG_member.
577
578         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
579         C++ char16_t and char32_t.
580
581         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
582         * genattrtab.c: Include vecprim.h.
583         (cached_attrs, cached_attr_count, attrs_seen_once,
584         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
585         attrs_cached_after): New variables.
586         (find_attrs_to_cache): New function.
587         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
588         (write_test_expr): Add attrs_cached argument, return it too,
589         attempt to cache non-const attributes used more than once in
590         a single case handling.
591         (write_attr_get): Use find_attrs_to_cache, for caching candidates
592         emit cached_* variables.  Adjust write_attr_set callers.
593         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
594         to find attributes that should be cached in this block.  Adjust
595         write_test_expr callers.
596         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
597         callers.
598         (make_automaton_attrs): Adjust write_test_expr caller.
599
600         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
601         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
602         (make_automaton_attrs): If find_tune_attr returns non-NULL,
603         write separate internal_dfa_insn_code_* and insn_default_latency_*
604         functions for each attribute's value and emit init_sched_attrs
605         function and function pointers.
606         * genattr.c (const_attrs, reservations): New variables.
607         (gen_attr): Add const attributes to const_attrs vector.
608         (check_tune_attr, find_tune_attr): New functions.
609         (main): Add reservations to reservations vector.  If find_tune_attr
610         returns true, add prototype for init_sched_attrs and make
611         internal_dfa_insn_code and insn_default_latency function pointers,
612         otherwise define init_sched_attrs as dummy macro.
613         * cfgexpand.c: Include insn-attr.h.
614         (gimple_expand_cfg): Call init_sched_attrs.
615
616         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
617
618         PR target/44575
619         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
620         va_arg from a set of register save slots into a temporary,
621         if the container is bigger than type size, do the copying
622         using smaller mode or using memcpy.
623
624         PR bootstrap/44426
625         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
626         prototype.
627         (sel_print_to_dot): Remove macro.
628         (sel_print): Likewise.  New prototype.
629         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
630         (sel_print): New function.
631
632 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
633
634         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
635         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
636
637 2010-06-21  Nick Clifton  <nickc@redhat.com>
638
639         * config/rx/rx.h (PTRDIFF_TYPE): Define.
640         (SMALL_REGISTER_CLASS): Define (to zero).
641         (PRINT_OPERAND): Delete.
642         (PRINT_OPERAND_ADDRESS): Delete.
643         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
644         (rx_print_operand_address): Delete prototype.
645         * config/rx/rx.c (rx_print_operand): Make static.
646         Allow %H and %L to handle CONST_DOUBLEs.
647         (rx_print_operand_address): Make static.
648         (rx_gen_move_template): Rename local variable 'template' to
649         out_template.
650         (rx_function_arg): Do not pass unknown sized objects in registers.
651         (TARGET_PRINT_OPERAND): Define.
652         (TARGET_PRINT_OPERAND_ADDRESS): Define.
653
654 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
655
656         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
657
658 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
659
660         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
661         stack-alignment for simple leaf-functions.
662
663 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
664
665         * doc/install.texi: Document bootstrap-lto.
666
667 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
668
669         PR debug/44248
670         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
671         (input_function): Drop them here, if VTA is disabled.
672
673 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
674
675         PR target/44546
676         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
677         New predicate.
678         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
679         ix86_swapped_fp_comparsion_operator instead of
680         ix86_fp_comparison_operator.
681
682         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
683         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
684         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
685         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
686         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
687         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
688
689 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
690
691         PR other/32998
692         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
693         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
694         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
695         (decode_cmdline_option): Update for this return value.  Set
696         orig_option_with_args_text field.  Set arg field for unknown
697         options.  Make static.
698         (decode_cmdline_options_to_array): New.
699         (prune_options): Update handling of find_opt return value.
700         * opts.c (read_cmdline_option): Take decoded option.  Return void.
701         (read_cmdline_options): Take decoded options.
702         (decode_options): Add parameters for decoded options.  Use
703         decode_cmdline_options_to_array.  Use decoded options for -O
704         scan.  Use integral_argument for -O parameters.  Update call to
705         read_cmdline_options.
706         (enable_warning_as_error): Update handling of find_opt return value.
707         * opts.h: Update comment on unknown options.
708         (struct cl_decoded_option): Update comments on opt_index and arg.
709         Add orig_option_with_args_text.
710         (decode_cmdline_option): Remove.
711         (decode_cmdline_options_to_array): Declare.
712         (decode_options): Update prototype.
713         * toplev.c (save_argv): Remove.
714         (save_decoded_options, save_decoded_options_count): New.
715         (read_integral_parameter): Remove.
716         (print_switch_values): Use decoded options.
717         (toplev_main): Don't set save_argv.  Update call to decode_options.
718         * toplev.h (read_integral_parameter): Remove.
719         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
720
721 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
722
723         PR target/44072
724         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
725         immediate.
726         * constraints.md (Pw, Px): New constraints.
727         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
728
729 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
730
731         * config/i386/sse.md (fma4modesuffixf4): Removed.
732         (ssemodesuffixf2s): Likewise.
733         (ssemodesuffixf4): Likewise.
734         (ssemodesuffixf2c): Likewise.
735         (ssescalarmodesuffix2s): Likewise.
736         (avxmodesuffixf2c): Likewise.
737         (ssemodesuffix): New.
738         (ssescalarmodesuffix): Likewise.
739         Update patterns with ssemodesuffix and ssescalarmodesuffix.
740
741 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
742
743         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
744
745 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
746
747         * stor-layout.c (debug_rli): Remove unused local variables.
748
749 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
750
751         PR rtl-optimization/40900
752         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
753         original expression for later reuse.
754         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
755         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
756
757 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
758
759         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
760         double_int_fits_in_uhwi_p): Implement as static inline.
761         (double_int_xor): New inline function.
762         (double_int_lrotate, double_int_rrotate, double_int_max,
763         double_int_umax, double_int_smax, double_int_min, double_int_umin,
764         double_int_smin): Declare.
765         (lrotate_double, rrotate_double): Remove declaration.
766         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
767         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
768         (double_int_lrotate, double_int_rrotate, double_int_max,
769         double_int_umax, double_int_smax, double_int_min, double_int_umin,
770         double_int_smin): New function.
771         * fold-const.c (int_const_binop): Clean up, use double_int_*
772         functions.
773         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
774         double_int_* and immed_double_int_const functions.
775
776 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
777
778         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
779         * function.c (types_used_by_cur_var_decl): Likewise.
780         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
781
782 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
783
784         * tree.h (record_layout_info): Change type of pending_statics field
785         to a VEC.
786         * stor-layout.c (start_record_layout): Store NULL into
787         pending_statics.
788         (debug_rli): Call debug_vec_tree instead of debug_tree.
789         (place_field): Likewise.
790         (finish_record_layout): Likewise.
791
792 2010-06-18  Alan Modra  <amodra@gmail.com>
793
794         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
795
796 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
797
798         PR target/43740
799         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
800         for SET source operand from SET destination operand.
801
802 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
803
804         PR rtl-optimization/39871
805         * reload1.c (init_eliminable_invariants): For flag_pic, disable
806         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
807         (function_invariant_p): Rule out a plus of frame or arg pointer with
808         a SYMBOL_REF.
809         * ira.c (find_reg_equiv_invariant_const): Likewise.
810
811 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
812
813         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
814         print_operand_address and puts to output the operand for CONST.
815
816 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
817
818         PR debug/44572
819         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
820         hook.
821
822 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
823
824         * v850-protos.h (print_operand): Delete.
825         (print_operand_address): Delete.
826         * v850.h (PRINT_OPERAND): Delete.
827         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
828         (PRINT_OPERAND_ADDRESS): Delete.
829         * v850.c (print_operand_address): Rename to...
830         (v850_print_operand_address): ...this.  Make static. Call
831         v850_print_operand.
832         (print_operand): Rename to...
833         (v850_print_operand): ...this.  Make static.  Call
834         v850_print_operand_address.
835         (v850_print_operand_punct_valid_p): New function.
836         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
837         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
838
839 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
840
841         * config/sh/sh-protos.h (print_operand): Delete.
842         (print_operand_address): Delete.
843         * config/sh/sh.h (PRINT_OPERAND): Delete.
844         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
845         (PRINT_OPERAND_ADDRESS): Delete.
846         * config/sh/sh.c (sh_print_operand_address): Make static.
847         (sh_print_operand): Make static.  Call sh_print_operand_address
848         and sh_print_operand.
849         (sh_print_operand_punct_valid_p): New function.
850         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
851         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
852
853 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
854
855         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
856         (mcore_print_operand_address): Delete.
857         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
858         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
859         (PRINT_OPERAND_ADDRESS): Delete.
860         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
861         (mcore_print_operand): Make static.
862         (mcore_print_operand_punct_valid_p): New function.
863         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
864         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
865
866 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
867
868         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
869         (print_operand_address): Delete.
870         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
871         (PRINT_OPERAND_ADDRESS): Delete.
872         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
873         static.
874         (m68hc11_print_operand): Make static.
875         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
876
877 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
878
879         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
880         (m32r_print_operand_address): Delete.
881         * config/m32r/m32r.h (m32r_punct_chars): Delete.
882         (PRINT_OPERAND): Delete.
883         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
884         (PRINT_OPERAND_ADDRESS): Delete.
885         * config/m32r/m32r.c (m32r_punct_chars): Make static.
886         (m32r_print_operand_address): Make static.
887         (m32r_print_operand): Make static.
888         (m32r_print_operand_punct_valid_p): New function.
889         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
890         (TARGET_PRINT_OPERAND_ADDRESS): Define.
891
892 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
893
894         * config/iq2000/iq2000-protos.h (print_operand): Delete.
895         (print_operand_address): Delete.
896         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
897         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
898         (PRINT_OPERAND_ADDRESS): Delete.
899         (iq2000_print_operand_punct): Delete.
900         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
901         (iq2000_print_operand_address): Make static.
902         (iq2000_print_operand): Make static.
903         (iq2000_print_operand_punct_valid_p): New function.
904         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
905         (TARGET_PRINT_OPERAND_ADDRESS): Define.
906
907 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
908
909         * config/frv/frv-protos.h (frv_print_operand): Delete.
910         (frv_print_operand_address): Delete.
911         * config/frv/frv.h (PRINT_OPERAND): Delete.
912         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
913         (PRINT_OPERAND_ADDRESS): Delete.
914         * config/frv/frv.c (frv_print_operand_address): Make static.
915         (frv_print_operand): Make static.
916         (frv_print_operand_punct_valid_p): New function.
917         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
918         (TARGET_PRINT_OPERAND_ADDRESS): Define.
919
920 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
921
922         * tree.h (vec_member): Declare.
923         * tree.c (vec_member): Define.
924
925 2010-06-17  Richard Guenther  <rguenther@suse.de>
926
927         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
928         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
929
930 2010-06-17  Richard Guenther  <rguenther@suse.de>
931
932         * tree-inline.c (declare_return_variable): Remove bogus code.
933
934 2010-06-17  Richard Guenther  <rguenther@suse.de>
935
936         * gimplify.c (gimplify_bind_expr): Always promote complex
937         and vector variables to registers if possible.
938
939 2010-06-17  Richard Guenther  <rguenther@suse.de>
940
941         * expr.c (get_inner_reference): Use double_int for bit_offset
942         calculation.
943
944 2010-06-16  DJ Delorie  <dj@redhat.com>
945
946         * common.opt (-fstrict-volatile-bitfields): new.
947         * doc/invoke.texi: Document it.
948         * fold-const.c (optimize_bit_field_compare): For volatile
949         bitfields, use the field's type to determine the mode, not the
950         field's size.
951         * expr.c (expand_assignment): Likewise.
952         (get_inner_reference): Likewise.
953         (expand_expr_real_1): Likewise.
954         * expmed.c (store_fixed_bit_field): Likewise.
955         (extract_bit_field_1): Likewise.
956         (extract_fixed_bit_field): Likewise.
957
958 2010-06-16  Richard Guenther  <rguenther@suse.de>
959
960         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
961
962 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
963
964         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
965         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
966         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
967         * debug.c: Likewise.
968         * sdbout.c: Likewise.
969         * vmsdbgout.c: Likewise.
970         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
971         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
972         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
973         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
974         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
975         * dwarf2out.c (dw_fde_struct): New fields
976         dw_fde_vms_{end,begin}_prologue.
977         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
978         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
979         (dwarf2out_vms_end_prologue): New function.
980         (dwarf2out_vms_begin_epilogue): New function.
981         (dw_val_struct): New value dw_val_class_vms_delta.
982         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
983         begin_epilogue for VMS.
984         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
985         new static functions.
986         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
987         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
988         static functions.
989         (print_die): New case dw_val_class_vms_delta.
990         (attr_checksum): Likewise.
991         (same_dw_val_p: Likewise.
992         (size_of_die): Likewise.
993         (value_format): Likewise.
994         (output_die): Likewise.
995         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
996         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
997         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
998         dwarf2out_cfi_begin_epilogue
999         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
1000
1001 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1002
1003         * config/cris/cris-protos.h (cris_print_operand): Delete.
1004         (cris_print_operand_address): Delete.
1005         * config/cris/cris.h (PRINT_OPERAND): Delete.
1006         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1007         (PRINT_OPERAND_ADDRESS): Delete.
1008         * config/cris/cris.c (cris_print_operand_address): Make static.
1009         (cris_print_operand): Make static.
1010         (cris_print_operand_punct_valid_p): New function.
1011         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1012         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1013
1014 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
1015
1016         * config/arm/arm-protos.h (arm_print_operand): Delete.
1017         (arm_print_operand_address): Delete.
1018         * config/arm/arm.h (PRINT_OPERAND): Delete.
1019         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1020         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
1021         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
1022         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
1023         (arm_print_operand): Make static.
1024         (arm_print_operand_punct_valid_p): New function.
1025         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
1026         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1027
1028 2010-06-16  Nick Clifton  <nickc@redhat.com>
1029
1030         * config/rx/constraints.md (NEGint4): New constraint.
1031         * config/rx/rx.md (attr cc): Add set_zsc.
1032         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
1033         initialised.
1034         (cmpsf): Likewise.
1035         (call_internal): Clobber the cc0 register.
1036         (call_value_internal): Likewise.
1037         (cstoresi4): Likewise.
1038         (movsieq): Likewise.
1039         (movsine): Likewise.
1040         (addsi3): Add alternative to handle small negative constants.
1041         (sunsi3): Likewise.
1042         (addsi3): Do not set the O bit in the cc0 register.
1043         (adddi3): Likewise.
1044         (subsi3): Likewise.
1045         (subdi3): Likewise.
1046         (andsi3): Reorder alternatives to prefer shorter forms.
1047         (mulsi3): Likewise.
1048         (iorsi3): Likewise.
1049         (negsi2): Note that the cc0 flags are set.
1050         (rotlsi3): Note that only the Z and S bits are set in cc0.
1051         (lshrsi3): Likewise.
1052         (ashlsi3): Likewise.
1053         (subsf3): Use %Q for the MEM operand.
1054         (fix_truncsfsi2): Likewise.
1055         (floatsisf2): Likewise.
1056         (bitset): Remove early clobber from destination.
1057         (bitset_in_memory): Likewise.
1058         (lrintsf2): Clobber the cc0 register.
1059         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
1060         (rx_print_operand): Handle %N.
1061
1062 2010-06-16  Jan Hubicka  <jh@suse.cz>
1063
1064         * df-core.c (df_compact_blocks): Free problem_temps vector.
1065
1066 2010-06-16  Martin Jambor  <mjambor@suse.cz>
1067
1068         PR tree-optimization/43905
1069         * tree-sra.c: Include tree-inline.h.
1070         (create_abstract_origin): Removed.
1071         (modify_function): Version the call graph node instead of creating
1072         abstract origins and dealing with same_body aliases.
1073         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
1074         function is versionable.
1075         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
1076
1077 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
1078
1079         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
1080         (CHOOSE_DYNAMIC_LINKER): Update.
1081
1082 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
1083
1084         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
1085         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
1086         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
1087         *prefetch_3dnow_rex.
1088
1089 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
1090
1091         * target.h (struct asm_out):Add declare_constant_name field.
1092         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1093         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
1094         * output.h (default_asm_declare_constant_name): Declare.
1095         (assemble_label): Update prototype.
1096         * varasm.c (assemble_constant_contents): Use
1097         targetm.asm_out.declare_constant_name target hook.
1098         (assemble_label): Add 'file' argument.
1099         (default_asm_declare_constant_name): New function.
1100         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
1101         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
1102         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
1103
1104         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
1105         * config/darwin.c (darwin_asm_declare_constant_name): New function.
1106         (machopic_output_indirection): Update assemble_label argument list.
1107         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
1108         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
1109
1110 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
1111
1112         PR middle-end/44391
1113         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
1114         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
1115
1116 2010-06-15  Richard Guenther  <rguenther@suse.de>
1117
1118         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
1119
1120 2010-06-15  Paul Brook  <paul@codesourcery.com>
1121
1122         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
1123         hard-float ABI.
1124
1125 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
1126
1127         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
1128         don't get a vector type for output.
1129
1130 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
1131
1132         PR fortran/44536
1133         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
1134         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
1135         (LANG_HOOKS_DECLS): Add it.
1136         * gimplify.c (omp_notice_variable): Call
1137         lang_hooks.decls.omp_report_decl.
1138
1139 2010-06-15  Martin Jambor  <mjambor@suse.cz>
1140
1141         PR lto/44464
1142         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
1143         on the newly dead SSA name.
1144
1145 2010-06-15  Alan Modra  <amodra@gmail.com>
1146
1147         * doc/invoke.texi: Add mcmodel to powerpc options.
1148         * configure.ac: Add HAVE_LD_LARGE_TOC test.
1149         * configure: Regenerate.
1150         * config.in: Regenerate.
1151         * config/rs6000/linux64.opt (mcmodel): New.
1152         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
1153         (TARGET_CMODEL, SET_CMODEL): Define.
1154         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
1155         select CMODEL_MEDIUM default.
1156         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
1157         (TARGET_CMODEL): Define default.
1158         * config/rs6000/rs6000.c (cmodel): New variable.
1159         (rs6000_explicit_options): Add cmodel field.
1160         (rs6000_handle_option): Handle -mcmodel.
1161         (create_TOC_reference): Add largetoc_reg param.  Generate high,
1162         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
1163         (rs6000_delegitimize_address): Recognise new toc reference rtl
1164         and minimal-toc rtl.
1165         (rs6000_legitimize_reload_address): Handle new toc references.
1166         (print_operand_address): Handle legitimate_constant_pool_address_p
1167         match before lo_sum.
1168         (rs6000_eliminate_indexed_memrefs): Tidy.
1169         (rs6000_emit_move): Tweak threshold for inlining constants.
1170         Keep rs6000_emit_allocate_stack large stack frame offsets
1171         loaded into r0 inline.
1172         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
1173         (tocrel_base, tocrel_offset): New variables.
1174         (toc_relative_expr_p): Set them here.
1175         (print_operand_address): Skip over any offset on constant pool address.
1176         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
1177         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
1178         (offsettable_ok_by_alignment): New function.
1179         (rs6000_emit_move): Address suitably aligned local symbol_refs
1180         relative to the toc pointer for -mcmodel=medium.
1181         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
1182         strict param.  Allow lo_sum version of addressing.  Verify reg
1183         used for -mminimal-toc and -mcmodel != small.  Update all callers.
1184         * config/rs6000/constraints.md: Update for above change.
1185         * config/rs6000/predicates.md: Likewise.
1186         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
1187         code.
1188         (tls_gd): Split for -mcmodel=medium/large.
1189         (tls_gd_high, tls_gd_low): New.
1190         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
1191         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
1192         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
1193         (largetoc_high, largetoc_low): New.
1194         (cmptf_internal2): Add clobber.
1195         * config/rs6000/rs6000-protos.h: Update.
1196
1197 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
1198
1199         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
1200         true if no prefetch is going to be generated for a given group.
1201         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
1202         estimate the prefetch_count.
1203         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
1204         prefetch count by considering the unroll_factor and prefetch_mod
1205         for is_loop_prefetching_profitable.
1206
1207 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
1208
1209         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
1210         anything if the argument is not a MEM.
1211
1212 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1213
1214         PR debug/43650
1215         PR debug/44181
1216         PR debug/44247
1217         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
1218         debug stmts.
1219         (canonicalize_loop_ivs): Likewise.
1220
1221 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1222
1223         PR debug/43656
1224         * haifa-sched.c (setup_insn_reg_pressure_info,
1225         update_register_pressure): Reject debug insns.
1226         (ready_sort): Don't setup reg pressure for debug insns.
1227         (schedule_insn): Don't update reg pressure for debug insns.
1228
1229 2010-06-14  Richard Guenther  <rguenther@suse.de>
1230
1231         * lto-streamer.c (cached_bp): Remove.
1232         (bitpack_delete): Likewise.
1233         (bitpack_create): Likewise.
1234         (bp_get_next_word): Likewise.
1235         (bp_pack_value, bp_unpack_value): Move ...
1236         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
1237         Re-implement.
1238         (struct bitpack_d): Likewise.
1239         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
1240         New inline functions.
1241         * lto-streamer-out.c (lto_output_bitpack): Remove.
1242         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1243         (pack_value_fields): Adjust.
1244         (lto_write_tree): Likewise.
1245         (output_gimple_stmt): Likewise.
1246         (output_function): Likewise.
1247         * lto-streamer-in.c (input_gimple_stmt): Adjust.
1248         (input_function): Likewise.
1249         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1250         (lto_input_bitpack): Remove.
1251         (lto_materialize_tree): Adjust.
1252         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
1253         * lto-cgraph.c (lto_output_edge): Adjust.
1254         (lto_output_node): Likewise.
1255         (lto_output_varpool_node): Likewise.
1256         (lto_output_ref): Likewise.
1257         (input_node): Likewise.
1258         (input_varpool_node): Likewise.
1259         (input_ref): Likewise.
1260         (input_edge): Likewise.
1261         (output_node_opt_summary): Likewise.
1262         (input_node_opt_summary): Likewise.
1263         * ipa-pure-const.c (pure_const_write_summary): Likewise.
1264         (pure_const_read_summary): Likewise.
1265         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
1266         (ipa_read_indirect_edge_info): Likewise.
1267         (ipa_write_node_info): Likewise.
1268         (ipa_read_node_info): Likewise.
1269
1270 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1271
1272         PR target/44534
1273         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
1274         (vec_extract_lo_v16hi): Likewise.
1275         (vec_extract_lo_v32qi): Likewise.
1276
1277 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1278
1279         PR bootstrap/44426
1280         * tree.h (build_call_expr): Don't define as vararg macro, instead
1281         add a prototype.
1282         * builtins.c (build_call_nofold): Remove.
1283         (expand_builtin_int_roundingfn, expand_builtin_pow,
1284         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
1285         expand_builtin_memset_args, expand_builtin_strcmp,
1286         expand_builtin_strncmp, expand_builtin_memory_chk): Use
1287         build_call_nofold_loc instead of build_call_nofold.
1288         (build_call_expr): New function.
1289
1290         PR tree-optimization/44508
1291         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
1292         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
1293         don't eliminate trivially dead stmts.
1294         * tree-vrp.c (vrp_finalize): Pass false as last argument
1295         to substitute_and_fold.
1296         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
1297         to substitute_and_fold.
1298         * tree-ssa-ccp.c (ccp_finalize): Likewise.
1299
1300         PR bootstrap/44509
1301         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
1302         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
1303         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
1304         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
1305         ggc_strdup instead of xstrdup.
1306
1307 2010-06-14  Ira Rosen  <irar@il.ibm.com>
1308
1309         PR tree-optimization/44507
1310         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
1311         to build initial vector for BIT_AND_EXPR.
1312         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1313
1314 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1315
1316         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
1317         adjust z10prop set_attr.
1318
1319 2010-06-13  Jan Hubicka  <jh@suse.cz>
1320
1321         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
1322         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
1323         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
1324         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
1325         datastructure checks into checking asserts.
1326         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
1327         * tree-ssa-sccvn.c (VN_INFO): Likewise.
1328         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
1329         df_ref_create_structure): Likewise.
1330         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
1331         pool_free): Use gcc_checking_assert.
1332         * alias.c (get_alias_set): Likewise.
1333         * var-tracking.c (variable_htab_free, shared_hash_copy,
1334         canonicalize_values_mark, variable_merge_over_cur): Likewise.
1335         * lto-streamer.c (bp_unpack_value): Likewise.
1336
1337 2010-06-13  Richard Guenther  <rguenther@suse.de>
1338
1339         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
1340         Do not stream but initialize TYPE_CANONICAL to NULL.
1341         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
1342         * gimple.c (gimple_types_compatible_p): Disregard
1343         TYPE_STRUCTURAL_EQUALITY_P.
1344         (gimple_register_type): Use TYPE_CANONICAL as cache.
1345         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
1346         before registering common types.
1347         * config/i386/i386.c (ix86_function_arg_boundary): Do not
1348         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
1349         * tree.h (TYPE_CANONICAL): Clarify documentation.
1350
1351 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
1352
1353         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1354         LIBCALL_VALUE): Remove macros.
1355         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
1356         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1357         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1358         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
1359         (ia64_function_value): Make static. Handle receiving the function
1360         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
1361
1362 2010-06-12  Jan Hubicka  <jh@suse.cz>
1363
1364         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
1365         at correct place.
1366
1367 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
1368
1369         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
1370
1371 2010-06-12  Jan Hubicka  <jh@suse.cz>
1372
1373         * df-core.c (df_clear_bb_info): New function.
1374         (df_set_blocks): bb_info is always allocated.
1375         (df_get_bb_info): Use block_info_elt_size.
1376         (df_set_bb_info): Likewise.
1377         (df_compact_blocks): Update for new block_info.
1378         (grow_bb_info): New function.
1379         * df-problems.c (df_grow_bb_info): Move to df-core.c
1380         (df_rd_set_bb_info): Remove.
1381         (df_rd_free_bb_info): Do not free block pool.
1382         (df_rd_alloc): Do not create pool, use check for
1383         obstack presence instead of NULL pointer for new blocks.
1384         (df_rd_free): DO not free alloc pool; clear block_info.
1385         (problem_RD): Add size of block info structure.
1386         (df_lr_set_bb_info): Remove.
1387         (df_lr_free_bb_info): Do not free block pool.
1388         (df_lr_alloc): Do not create pool, use check for
1389         obstack presence instead of NULL pointer for new blocks.
1390         (df_lr_free): DO not free alloc pool; clear block_info.
1391         (problem_LR): Add size of block info structure.
1392         (df_live_set_bb_info): Remove.
1393         (df_live_free_bb_info): Do not free block pool.
1394         (df_live_alloc): Do not create pool, use check for
1395         obstack presence instead of NULL pointer for new blocks.
1396         (df_live_free): DO not free alloc pool; clear block_info.
1397         (problem_LIVE): Add size of block info structure.
1398         (problem_CHAIN): Add size of block info structure.
1399         (df_byte_lr_set_bb_info): Remove.
1400         (df_byte_lr_free_bb_info): Do not free block pool.
1401         (df_byte_lr_alloc): Do not create pool, use check for
1402         obstack presence instead of NULL pointer for new blocks.
1403         (df_byte_lr_free): DO not free alloc pool; clear block_info.
1404         (problem_BYTE_LR): Add size of block info structure.
1405         (problem_NOTE): Add size of block info structure.
1406         (df_byte_MD_set_bb_info): Remove.
1407         (df_byte_MD_free_bb_info): Do not free block pool.
1408         (df_byte_MD_alloc): Do not create pool, use check for
1409         obstack presence instead of NULL pointer for new blocks.
1410         (df_byte_MD_free): DO not free alloc pool; clear block_info.
1411         (problem_BD): Add size of block info structure.
1412         * df-scan.c (df_scan_free_internal): Free block pool.
1413         (df_scan_set_bb_info): Remove.
1414         (df_scan_free_bb_info): Check for artificial_defs instead
1415         of bb_info being non-NULL.
1416         (df_scan_alloc): DO not create df_scan_block pool.
1417         (problem_SCAN): Set size of block info.
1418         (df_bb_refs_record): Do not allocate bb_info.
1419         * df.h (df_problem): Add block_info_elt_size.
1420         (struct dataflow): Change block_info to void *.
1421         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
1422         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
1423         in-line structures.
1424
1425 2010-06-12  Jan Hubicka  <jh@suse.cz>
1426
1427         PR tree-optimize/44485
1428         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
1429         containing use of return value of noreturn function.
1430
1431 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
1432
1433         * targhooks.c (default_function_value): Don't use
1434         FUNCTION_OUTGOING_VALUE.
1435         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
1436         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
1437
1438 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
1439
1440         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
1441         Add crtfastmath.o to extra_parts.
1442         * config/mips/crtfastmath.c: New.
1443         * config/mips/linux.h (ENDFILE_SPEC): New.
1444
1445 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
1446
1447         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
1448         old_type in parameter.
1449         (gcc_type_for_value): Update call to gcc_type_for_interval.
1450         (compute_type_for_level_1): Renamed compute_type_for_level.
1451         Update call to gcc_type_for_interval.
1452
1453 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1454
1455         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
1456         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
1457
1458 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1459
1460         * opts-common.c: Include options.h.
1461         (integral_argument): Move from opts.c.
1462         (decode_cmdline_option): New.  Based on read_cmdline_option.
1463         * opts.c (integral_argument): Move to opts-common.c.
1464         (read_cmdline_option): Move most contents to
1465         decode_cmdline_option.  Use %qs in diagnostics.
1466         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
1467         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
1468         decode_cmdline_option): New.
1469
1470 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1471
1472         PR target/44481
1473         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
1474         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
1475         (partiysi2_cmp): Ditto.
1476         (*partiyhi2_cmp): Ditto.
1477         (*parityqi2_cmp): Remove.
1478
1479 2010-06-11  Jan Hubicka  <jh@suse.cz>
1480
1481         * bitmap.h (bmp_iter_next_bit): New.
1482         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
1483
1484 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
1485             Eric Botcazou  <ebotcazou@adacore.com>
1486
1487         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
1488         computed cost.
1489
1490 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1491
1492         * config/i386/i386.md (unspec): New define_c_enum.
1493         (unspecv): Ditto.
1494
1495 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
1496
1497         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
1498         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
1499         (lazy_hex_fp_value): New function.
1500         (builtin_define_with_hex_fp_value): Provide definitions lazily.
1501         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
1502
1503 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
1504
1505         PR middle-end/44483
1506         * tree-if-conv.c (bb_predicate_s): New struct.
1507         (bb_predicate_p): New.
1508         (bb_has_predicate): New.
1509         (bb_predicate): New.
1510         (set_bb_predicate): New.
1511         (bb_predicate_gimplified_stmts): New.
1512         (set_bb_predicate_gimplified_stmts): New.
1513         (add_bb_predicate_gimplified_stmts): New.
1514         (init_bb_predicate): New.
1515         (free_bb_predicate): New.
1516         (is_predicated): Use bb_predicate.
1517         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
1518         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
1519         before processing their successors.
1520         (clean_predicate_lists): Removed.
1521         (find_phi_replacement_condition): Use bb_predicate.
1522         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
1523         computations.
1524         (insert_gimplified_predicates): New.
1525         (combine_blocks): Call insert_gimplified_predicates.
1526         (tree_if_conversion): Call free_bb_predicate instead of
1527         clean_predicate_lists.
1528
1529 2010-10-11  Paul Brook  <paul@codesourcery.com>
1530
1531         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
1532         * config/arm/arm.c (all_architectures): Change v7e-m default to
1533         cortexm4.
1534         * config/arm/arm-cores.def: Add cortex-m4.
1535         * config/arm/arm-tune.md: Regenerate.
1536
1537 2010-06-11  Jan Hubicka  <jh@suse.cz>
1538
1539         * ipa-pure-const.c (special_builtlin_state): New function.
1540         (check_call): Use it instead of special casign BUILT_IN_RETURN.
1541         (propagate_pure_const): Use it.
1542
1543 2010-06-11  Jan Hubicka  <jh@suse.cz>
1544
1545         * df-problems.c (df_live_scratch): Convert to bitmap_head.
1546         (df_live_alloc): Initialize df_live_scratch when initializing
1547         problem_data.
1548         (df_live_transfer_function): Update uses of df_live_scratch.
1549         (df_live_free): Free problem_data; clear df_live_scratch before
1550         releasing the obstack.
1551         (df_md_free): Free problem data.
1552
1553 2010-06-11  Jan Hubicka  <jh@suse.cz>
1554
1555         * doc/invoke.texi (Wsuggest-attribute): Document.
1556         (Wmissing-noreturn): Remove.
1557         * ipa-pure-const.c (warn_function_noreturn): New function.
1558         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
1559         warn_missing_noreturn.
1560         * common.opt (Wsuggest-attribute=noreturn): New.
1561         * tree-flow.h (warn_function_noreturn): Declare.
1562         * tree-cfg.c (execute_warn_function_noreturn): Use
1563         warn_function_noreturn.
1564         (gate_warn_function_noreturn): New.
1565         (pass_warn_function_noreturn): Update.
1566
1567 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1568
1569         * c-typeck.c (handle_warn_cast_qual): Add loc
1570         parameter. Improve warning message.
1571         (build_c_cast): Pass location to handle_warn_cast_qual.
1572
1573 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1574
1575         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
1576         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
1577         insn mnemonic.
1578         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
1579
1580 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
1581
1582         Fix bootstap on mips
1583         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
1584         be naming typedefs.
1585
1586 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
1587
1588         * system.h (helper_const_non_const_cast): New inline for
1589         gcc version <= 4.0.
1590         (CONST_CAST2): For gcc version <= 4.0 use
1591         new helper to do const/non-const casting.
1592
1593 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1594
1595         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
1596         * Makefile.in (OBJS-common): Include insn-enums.o.
1597         (insn-enums.o): New rule.
1598         (simple_generated_c): Add insn-enums.c.
1599         (build/genenums.o): New rule.
1600         (genprogmd): Add "enums".
1601         * genconstants.c (print_enum_type): Declare a C string array
1602         for each enum.
1603         * genenums.c: New file.
1604         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
1605         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
1606         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
1607
1608 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1609
1610         * doc/md.texi (define_enum_attr): Document.
1611         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
1612         * read-md.h (lookup_enum_type): Declare.
1613         * read-md.c (lookup_enum_type): New function.
1614         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
1615         * genattrtab.c (attr_desc): Add an enum_name field.
1616         (evaluate_eq_attr): Take the associated attribute as argument.
1617         Get the enum prefix from the enum_name field, if defined.
1618         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
1619         (simplify_test_exp): Pass attr to evaluate_eq_attr.
1620         (add_attr_value): New function, split out from...
1621         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
1622         (write_test_expr): Pass attr to evaluate_eq_attr.
1623         (write_attr_get): Use the enum_name as the enum tag, if defined.
1624         (write_attr_valueq): Use the enum_name as a prefix, if defined.
1625         (find_attr): Initialize enum_name.
1626         (main): Handle DEFINE_ENUM_ATTR.
1627         * gensupport.c (process_rtx): Likewise.
1628         * config/mips/mips.h (mips_tune_attr): Delete.
1629         * config/mips/mips.md (cpu): Use define_attr_enum.
1630
1631 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1632
1633         * doc/md.texi (define_c_enum, define_enum): Document.
1634         * read-md.h (md_constant): Add a parent_enum field.
1635         (enum_value, enum_type): New structures.
1636         (upcase_string, traverse_enum_types): Declare.
1637         * read-md.c (enum_types): New variable.
1638         (upcase_string, add_constant): New functions.
1639         (handle_constants): Don't create the hash table here.
1640         Use add_constant.
1641         (traverse_md_constants): Don't check for a null md_constants.
1642         (decimal_string, handle_enum, traverse_enum_types): New functions.
1643         (read_md_files): Initialize md_constants and md_enums.
1644         * genconstants.c (print_md_constant): Ignore info argument.
1645         Only print constants that belong to no enum.
1646         (print_enum_type): New function.
1647         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
1648         for each defined enum type.
1649         * config/mips/mips.md (processor): New define_enum.
1650         (unspec): New define_c_enum.
1651         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
1652         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
1653         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
1654         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
1655         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
1656         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
1657         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
1658         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
1659         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
1660         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
1661         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
1662         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
1663         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
1664         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
1665         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
1666         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
1667         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
1668         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
1669         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
1670         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
1671         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
1672         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
1673         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1674         (UNSPEC_RDDSP): Move to mips-dsp.md.
1675         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
1676         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
1677         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
1678         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
1679         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
1680         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
1681         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
1682         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
1683         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
1684         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
1685         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
1686         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
1687         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
1688         Moved to mips-dspr2.md.
1689         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
1690         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
1691         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
1692         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
1693         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
1694         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
1695         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1696         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1697         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1698         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1699         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1700         UNSPEC_LOONGSON_PSADBH)
1701         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1702         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1703         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
1704         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1705         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1706         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1707         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
1708         (cpu): Update comment.
1709         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
1710         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
1711         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
1712         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
1713         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
1714         UNSPEC_LOONGSON_PCMPEQ)
1715         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
1716         UNSPEC_LOONGSON_PINSR_0)
1717         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1718         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1719         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1720         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1721         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1722         UNSPEC_LOONGSON_PSADBH)
1723         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1724         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1725         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
1726         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1727         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1728         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1729         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
1730         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
1731         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
1732         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
1733         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
1734         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
1735         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
1736         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
1737         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
1738         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
1739         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
1740         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
1741         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
1742         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
1743         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
1744         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
1745         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
1746         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
1747         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
1748         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
1749         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1750         (UNSPEC_RDDSP): Moved from mips.md.
1751         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
1752         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
1753         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
1754         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
1755         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
1756         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
1757         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
1758         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
1759         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
1760         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
1761         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
1762         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
1763         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
1764         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
1765         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
1766         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
1767         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
1768         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
1769         (UNSPEC_SCC): Moved from mips.md.
1770         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
1771         "processor_type" to "processor".
1772         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
1773         * config/mips/mips.h (processor_type): Delete.
1774         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
1775         "processor_type" to "processor".
1776
1777 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1778
1779         * configure.ac (tm_include_list): Add insn-constants.h.
1780         * configure: Regenerate.
1781         * Makefile.in (GTM_H): Move insn-constants.h here from...
1782         (TM_H): ...here.
1783         * mkconfig.sh: Remove special handling for insn-constants.h.
1784
1785 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1786
1787         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
1788         (BUILD_MD): ...this new variable.
1789         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
1790         that include the old contents of simple_generated_h and
1791         simple_generated_c.
1792         (simple_generated_h, simple_generated_c): Include them.  Add
1793         insn-constants.h.
1794         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
1795         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
1796         Remove these dependencies from the main rule and include
1797         insn-conditions.md in the command line only if it appears
1798         in the dependency list.
1799         (insn-constants.h, s-constants): Delete.
1800         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
1801         or gensupport.h.
1802         (build/genmddeps.o): Likewise.
1803         (genprogrtl): New variable that contains everything from genprogmd
1804         except mddeps and constants.
1805         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
1806         depend on $(BUILD_MD)
1807         (genprog): New variable.  Make these programs depend on
1808         $(BUILD_ERRORS).
1809         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
1810         (main): Use read_md_files instead of init_rtx_reader_args.
1811         * genconstants.c: As for genmddeps.c.
1812         * read-md.h (read_skip_construct): Declare.
1813         * read-md.c (read_skip_construct): New function.
1814         (handle_file): Allow a null handle_directive, skipping the
1815         construct if so.
1816         (parse_include): Update the comment accordingly.
1817
1818 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1819
1820         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
1821         * genmddeps.c: Include read-md.h.
1822         (main): Call init_rtx_reader_args instead of init_md_reader_args.
1823         * genattr.c (main): Likewise.
1824         * genattrtab.c (main): Likewise.
1825         * genautomata.c (main): Likewise.
1826         * gencodes.c (main): Likewise.
1827         * genconditions.c (main): Likewise.
1828         * genconfig.c (main): Likewise.
1829         * genconstants.c (main): Likewise.
1830         * genemit.c (main): Likewise.
1831         * genextract.c (main): Likewise.
1832         * genflags.c (main): Likewise.
1833         * genopinit.c (main): Likewise.
1834         * genoutput.c (main): Likewise.
1835         * genpeep.c (main): Likewise.
1836         * genrecog.c (main): Likewise.
1837         * genpreds.c (main): Likewise.
1838         * gensupport.h (in_fname): Move to read-md.h.
1839         (init_md_reader_args_cb): Rename to...
1840         (init_rtx_reader_args_cb): ...this and return a bool.
1841         (init_md_reader_args): Rename to...
1842         (init_rtx_reader_args): ...this and return a bool.
1843         (include_callback): Move to read-md.h.
1844         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
1845         (file_name_list, first_dir_md_include): Move to read-md.c
1846         (first_bracket_include): Delete unused variable.
1847         (last_dir_md_include): Move to read-md.c.
1848         (process_include): Delete, moving code to read-md.c:handle_include.
1849         (process_rtx): Don't handle INCLUDE.
1850         (save_string): Delete.
1851         (rtx_handle_directive): New function.
1852         (init_md_reader_args_cb): Rename to...
1853         (init_rtx_reader_args_cb): ...this and return a boolean success value.
1854         Use read_md_args.
1855         (init_md_reader_args): Rename to...
1856         (init_rtx_reader_args): ...this and return a boolean success value.
1857         * rtl.def (INCLUDE): Delete.
1858         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
1859         argument.
1860         * read-rtl.c (read_conditions): Don't gobble ')' here.
1861         (read_mapping): Likewise.
1862         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
1863         Handle top-level non-rtx constructs here rather than in read_rtx_1.
1864         Store the whole queue in *X.  Remove call to init_md_reader.
1865         (read_rtx_1): Rename to...
1866         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
1867         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
1868         here.
1869         (read_nested_rtx): New function.  Handle (nil) here rather than
1870         in read_rtx_code.
1871         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
1872         gobble ')' here.
1873         * read-md.h (directive_handler_t): New type.
1874         (in_fname, include_callback): Moved from read-md.h.
1875         (read_constants, init_md_reader): Delete.
1876         (read_md_files): Declare.
1877         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
1878         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
1879         from gensupport.c.
1880         (read_constants): Rename to...
1881         (handle_constants): ...this.  Don't gobble ')' here.
1882         (handle_include, handle_file, handle_toplevel_file)
1883         (parse_include): New functions, mostly taken from gensupport.c.
1884         (init_md_reader): Subsume into...
1885         (read_md_files): ...this new function.
1886
1887 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1888
1889         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
1890         (unread_char): Decrement read_md_lineno after putting back '\n'.
1891         * read-md.c (fatal_with_file_and_line): Push back any characters
1892         that we decide not to add to the context.
1893         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
1894         fatal_expected_char in cases where '/' ends a line (for example).
1895         (read_name): Don't increment read_md_lineno here.
1896         (read_escape): Likewise.
1897         (read_quoted_string): Likewise.
1898         (read_braced_string): Likewise.
1899
1900 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1901
1902         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
1903         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
1904         * genconstants.c: Include read-md.h.
1905         * read-rtl.c (md_constants): Move to read-md.c.
1906         (md_name): Move to read-md.h.
1907         (initialize_iterators): Use leading_string_hash instead of def_hash
1908         and leading_string_eq_p instead of def_name_eq_p.
1909         (read_name): Move to read-md.c.
1910         (def_hash, def_name_eq_p): Delete.
1911         (read_constants, traverse_md_constants): Move to read-md.c.
1912         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
1913         * read-md.h: Include hashtab.h.
1914         (md_name): Moved from read-rtl.c.
1915         (md_constant): Moved from read-md.h.
1916         (leading_string_hash, leading_string_eq_p, read_name)
1917         (read_constants, traverse_md_constants): Declare.
1918         * read-md.c (md_constants): Moved from read-rtl.c.
1919         (leading_string_hash, leading_string_eq_p): New functions.
1920         (read_name, read_constants, traverse_md_constants): Moved from
1921         read-rtl.c.
1922
1923 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1924
1925         * read-rtl.c (md_name): New structure.
1926         (read_name): Take an md_name instead of a buffer pointer.
1927         Use the "string" field instead of strcpy when expanding constants.
1928         (read_constants): Remove the tmp_char argument.  Update the calls
1929         to read_name, using two local name buffers instead of the tmp_char
1930         argument.  Merge the constant-creation code.
1931         (read_conditions): Remove the tmp_char argument.  Update the calls
1932         to read_name, using a local name buffer instead of the tmp_char
1933         argument.
1934         (read_mapping): Replace tmp_char variable with a local name buffer.
1935         Update the calls to read_name.
1936         (read_rtx_1): Likewise.  Update the calls to read_constants and
1937         read_conditions.
1938
1939 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1940
1941         * Makefile.in (build/read-md.o): Depend on errors.h.
1942         * read-md.h (error_with_line): Declare.
1943         * read-md.c: Include errors.h.
1944         (message_with_line_1): New function, extracted from...
1945         (message_with_line): ...here.
1946         (error_with_line): New function.
1947         * genattrtab.c: If a call to message_with_line is followed by
1948         "have_error = 1;", replace both statements with a call to
1949         error_with_line.
1950         * genoutput.c: Likewise.
1951         * genpreds.c: Likewise.
1952         * genrecog.c: If a call to message_with_line is followed by
1953         "error_count++;", replace both statements with a call to
1954         error_with_line.
1955         (errorcount): Delete.
1956         (main): Don't check it.
1957         * gensupport.c: If a call to message_with_line is followed by
1958         "errors = 1;", replace both statements with a call to error_with_line.
1959         (errors): Delete.
1960         (process_define_cond_exec): Check have_error instead of errors.
1961         (init_md_reader_args_cb): Likewise.  Don't set errors.
1962
1963 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1964
1965         * read-md.h (read_md_file): Declare.
1966         (read_char, unread_char): New functions.
1967         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1968         (read_quoted_string, read_string): Remove FILE * argument.
1969         * read-md.c (read_md_file): New variable.
1970         (read_md_filename, read_md_lineno): Update comments and remove
1971         unnecessary initialization.
1972         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1973         (read_escape, read_quoted_string, read_braced_string, read_string):
1974         Remove FILE * argument.  Update calls accordingly, using read_char
1975         and unread_char instead of getc and ungetc.
1976         * rtl.h (read_rtx): Remove FILE * argument.
1977         * read-rtl.c (iterator_group): Remove FILE * argument from
1978         "find_builtin".
1979         (iterator_traverse_data): Remove "infile" field.
1980         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
1981         (add_mapping, read_name, read_constants, read_conditions)
1982         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
1983         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
1984         Remove file arguments from all calls, using read_char and unread_char
1985         instead of getc and ungetc.
1986         * gensupport.c (process_include): Preserve read_md_file around
1987         the include.  Set read_md_file to the handle of the included file.
1988         Update call to read_rtx.
1989         (init_md_reader_args_cb): Set read_md_file to the handle of the file
1990         and remove local FILE *.  Update calls to read_rtx.
1991
1992 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1993
1994         * read-md.h (read_rtx_lineno): Rename to...
1995         (read_md_lineno): ...this.
1996         (read_rtx_filename): Rename to...
1997         (read_md_filename): ...this.
1998         (copy_rtx_ptr_loc): Rename to...
1999         (copy_md_ptr_loc): ...this.
2000         (print_rtx_ptr_loc): Rename to...
2001         (print_md_ptr_loc): ...this.
2002         * read-md.c: Likewise.  Update references after renaming.
2003         (string_obstack): Replace RTL with MD in comment.
2004         (set_rtx_ptr_loc): Rename to...
2005         (set_md_ptr_loc): ...this.
2006         (get_rtx_ptr_loc): Rename to...
2007         (get_md_ptr_loc): ...this.
2008         * genconditions.c: Update references after renaming.
2009         * genemit.c: Likewise.
2010         * genoutput.c: Likewise.
2011         * genpreds.c: Likewise.
2012         * gensupport.c: Likewise.
2013         * read-rtl.c: Likewise.
2014
2015 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
2016
2017         * Makefile.in (READ_MD_H): New variable.
2018         (BUILD_RTL): Add build/read-md.o.
2019         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
2020         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
2021         (build/genattrtab.o, build/genconditions.o build/genemit.o)
2022         (build/genextract.o, build/genflags.o, build/genoutput.o)
2023         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
2024         (build/read-md.o): New rule.
2025         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
2026         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
2027         * coretypes.h: ...here.
2028         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
2029         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
2030         * genattr.c: Include read-md.h.
2031         * genattrtab.c: Likewise.
2032         * genconditions.c: Likewise.
2033         * genemit.c: Likewise.
2034         * genextract.c: Likewise.
2035         * genflags.c: Likewise.
2036         * genoutput.c: Likewise.
2037         * genpreds.c: Likewise.
2038         * genrecog.c: Likewise.
2039         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
2040         (join_c_conditions, print_c_condition, read_rtx_filename)
2041         (read_rtx_lineno): Move to read-md.h.
2042         * read-rtl.c: Include read-md.h.
2043         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
2044         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
2045         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
2046         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
2047         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
2048         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
2049         (read_braced_string, read_string): Move to read-md.c.
2050         (read_rtx): Move some initialization to init_md_reader and call
2051         init_md_reader here.
2052         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
2053         Move to read-md.h.
2054         * gensupport.c: Include read-md.h.
2055         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
2056         * read-md.h, read-md.c: New files.
2057
2058 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
2059
2060         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2061         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2062         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
2063         * config/moxie/moxie.c (moxie_function_value): Make static.
2064         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
2065         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
2066
2067 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2068
2069         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
2070         * dbgcnt.def (tree_sra): New counter.
2071         * tree-sra.c: Include dbgcnt.h.
2072         (gate_intra_sra): Check tree_sra debug counter.
2073
2074 2010-06-10  Martin Jambor  <mjambor@suse.cz>
2075
2076         PR tree-optimization/44258
2077         * tree-sra.c (build_access_subtree): Return false iff there is a
2078         partial overlap.
2079         (build_access_trees): Likewise.
2080         (analyze_all_variable_accesses): Disqualify candidates if
2081         build_access_trees returns true for them.
2082
2083 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
2084
2085         PR debug/41371
2086         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
2087         tail-recurse into canonical node.  Fast-forward over
2088         non-canonical VALUEs.
2089
2090 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2091
2092         PR boostrap/44470
2093         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
2094         (*addsi_1_zext) <TYPE_LEA>: Likewise.
2095         (add lea splitter): Likewise.
2096         (add_zext lea splitter): Likewise.
2097
2098 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
2099
2100         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
2101
2102 2010-06-10  Jan Hubicka  <jh@suse.cz>
2103
2104         * df-problems.c (df_live_problem_data): Add live_bitmaps.
2105         (df_live_alloc): Initialize problem data and live_osbtacks.
2106         (df_live_finalize): Remove obstack, problem data; do not
2107         clear all bitmaps.
2108         (df_live_top_dump, df_live_bottom_dump): Do not dump old
2109         data when not allocated.
2110         (df_live_verify_solution_start): Do not allocate problem data.
2111         (df_live_verify_solution_end): Check if out is allocated.
2112         (struct df_md_problem_data): New structure.
2113         (df_md_alloc): Allocate problem data.
2114         (df_md_free): Free problem data; do not clear bitmaps.
2115
2116 2010-06-10  Jan Beulich  <jbeulich@novell.com>
2117
2118         PR bootstrap/37304
2119         * configure.ac: Replace $() with ${} when intending to expand
2120         variables rather than invoking commands.
2121         * configure: Re-generate.
2122
2123 2010-06-10  Jan Hubicka  <jh@suse.cz>
2124
2125         PR rtl-optimization/44460
2126         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
2127         TYPE_NEEDS_CONSTRUCTING sanity check.
2128
2129 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2130
2131         * doc/include/fdl.texi: Move to GFDL version 1.3.
2132
2133         * doc/cpp.texi: Move to GFDL version 1.3.
2134         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
2135         * doc/gccint.texi: Move to GFDL version 1.3.
2136         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
2137         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
2138         * doc/invoke.texi: Move to GFDL version 1.3.
2139
2140 2010-06-09  Jan Hubicka  <jh@suse.cz>
2141
2142         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
2143         Break out from ...
2144         (propagate) ... here; swap the order.
2145
2146 2010-06-09  Jan Hubicka  <jh@suse.cz>
2147
2148         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
2149         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
2150         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
2151         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
2152
2153 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2154
2155         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
2156         Do not the gather memory reference in the outer loop if the step
2157         is not a constant.
2158
2159 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2160
2161         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
2162         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
2163         8 to 4.  Minor change of the related comments.
2164
2165 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2166
2167         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
2168         the scev analysis when the variable is not used outside the loop
2169         in a close phi node: call compute_overall_effect_of_inner_loop.
2170
2171 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2172
2173         * graphite-sese-to-poly.c (single_pred_cond): Renamed
2174         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
2175         (build_sese_conditions_before): Renamed call to single_pred_cond.
2176         (build_sese_conditions_after): Same.
2177
2178 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2179
2180         * graphite-poly.h: Fix comments and indentation.
2181         * graphite-sese-to-poly.c: Same.
2182         (build_sese_conditions_before): Compute stmt and gbb only when needed.
2183         * tree-chrec.c: Fix comments and indentation.
2184         (tree-ssa-loop-niter.c): Same.
2185
2186 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2187
2188         PR rtl-optimization/42461
2189         * dce.c (deletable_insn_p): Return true for const or pure calls again.
2190         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
2191
2192 2010-06-09  Jan Hubicka  <jh@suse.cz>
2193
2194         * bitmap.c (bitmap_and): Walk array forward.
2195         (bitmap_and_compl_into): Likewise.
2196         (bitmap_xor): Likewise.
2197         (bitmap_xor_into):  Likewise.
2198         (bitmap_equal_p): Likewise.
2199         (bitmap_intersect_p): Likewise.
2200         (bitmap_intersect_compl_p): Likewise.
2201         (bitmap_ior_and_into): Likewise.
2202         (bitmap_elt_copy): Likewise.
2203         (bitmap_and_compl): Likewise.
2204         (bitmap_elt_ior): Likewise.
2205
2206 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2207
2208         * opts-common.c (prune_options): Ensure replacement argv array
2209         is correctly terminated by a NULL entry.
2210
2211 2010-06-09  Jan Hubicka  <jh@suse.cz>
2212
2213         * cgraph.h (varpool_first_static_initializer,
2214         varpool_next_static_initializer): Make checking only when
2215         checking enabled.
2216         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
2217         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
2218         gcc_assert to gcc_checking_assert.
2219         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
2220         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
2221         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
2222         op_iter_init_phiuse, op_iter_init_phidef,
2223         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
2224         gcc_checking_assert.
2225         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
2226         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
2227         partition_is_global, live_on_entry, live_on_exit,
2228         live_merge_and_clear): Likewise.
2229         * system.h (gcc_checking_assert): New macro.
2230         * gimple.h (set_bb_seq): Use gcc_checking_assert.
2231
2232 2010-06-09  Jason Merrill  <jason@redhat.com>
2233
2234         * Makefile.in (TAGS): Collect tags info from c-family.
2235
2236 2010-06-09  Jan Hubicka  <jh@suse.cz>
2237
2238         * gimple.h (gcc_gimple_checking_assert): New macro.
2239         (gimple_set_def_ops, gimple_set_use_ops,
2240         gimple_set_vuse, gimple_set_vdef,
2241         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
2242         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
2243         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
2244         gimple_asm_output_op, gimple_asm_output_op_ptr,
2245         gimple_asm_set_output_op, gimple_asm_clobber_op,
2246         gimple_asm_set_clobber_op, gimple_asm_label_op,
2247         gimple_asm_set_label_op, gimple_try_set_kind,
2248         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
2249         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
2250         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
2251         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
2252         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
2253         gimple_omp_for_set_initial, gimple_omp_for_final,
2254         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
2255         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
2256         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
2257         conditional with ENABLE_GIMPLE_CHECKING.
2258         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2259
2260 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
2261
2262         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
2263         (get_computation_cost_at): Use it.
2264         (determine_use_iv_cost_condition): Likewise.
2265         (determine_iv_cost): Likewise.
2266
2267 2010-06-09  Richard Guenther  <rguenther@suse.de>
2268
2269         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
2270         replace constants.
2271
2272 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2273
2274         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
2275
2276 2010-06-09  Martin Jambor  <mjambor@suse.cz>
2277
2278         PR tree-optimization/44423
2279         * tree-sra.c (dump_access): Dump also grp_assignment_read.
2280         (analyze_access_subtree): Pass negative allow_replacements to children
2281         if the current type is scalar.
2282
2283 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2284
2285         PR testsuite/42843
2286         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
2287         * doc/plugins.texi (Plugin license check): Update information
2288         on type of plugin_is_GPL_compatible.
2289         * Makefile.in (PLUGINCC): Define as $(COMPILER).
2290         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2291
2292 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2293
2294         * config/arm/arm.c (thumb2_reorg): New function.
2295         (arm_reorg): Call it.
2296         * config/arm/thumb2.md (define_peephole2 for flag clobbering
2297         arithmetic operations): Delete.
2298
2299 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
2300
2301         PR target/44067
2302         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
2303         e500v2 target.
2304
2305 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2306
2307         PR plugins/44459
2308         * gcc-plugin.h: Encapsulate all declarations in extern "C".
2309
2310 2010-06-08  Jan Hubicka  <jh@suse.cz>
2311
2312         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
2313         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
2314
2315 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
2316
2317         PR tree-optimization/39874
2318         PR middle-end/28685
2319         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
2320         Declare.
2321         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
2322         same_bool_result_p): New.
2323         (and_var_with_comparison, and_var_with_comparison_1,
2324         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
2325         (or_var_with_comparison, or_var_with_comparison_1,
2326         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
2327         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
2328         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
2329         of combine_comparisons.
2330         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
2331
2332 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
2333
2334         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2335         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2336         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
2337         pdp11_function_value_regno_p): New functions.
2338         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2339         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2340
2341 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
2342
2343         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
2344         Thumb-2 in the MINUS case.
2345
2346 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2347
2348         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
2349
2350         * doc/gty.texi (GTY Options): Document typed GC allocation and
2351         variable_size GTY option.
2352
2353         * ggc-internal.h: New.
2354
2355         * ggc.h: Update copyright year.
2356         (digit_string): Move to stringpool.c.
2357         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
2358         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
2359         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
2360         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
2361         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
2362         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
2363         (ggc_force_collect, ggc_get_size, ggc_statistics)
2364         (ggc_print_common_statistics): Move to ggc-internal.h.
2365         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
2366         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
2367         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
2368         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
2369         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
2370         (ggc_alloc_zone_pass_stat): Remove.
2371         (ggc_internal_alloc_stat, ggc_internal_alloc)
2372         (ggc_internal_cleared_alloc_stat): New.
2373         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
2374         (ggc_internal_vec_alloc_stat)
2375         (ggc_internal_cleared_vec_alloc_stat)
2376         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
2377         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
2378         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
2379         (ggc_cleared_alloc_ptr_array_two_args): New.
2380         (htab_create_ggc, splay_tree_new_ggc): Redefine.
2381         (ggc_splay_alloc): Change the type of the first argument to
2382         enum gt_types_enum.
2383         (ggc_alloc_string): Make macro.
2384         (ggc_alloc_string_stat): New.
2385         (ggc_strdup): Redefine.
2386         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
2387         (ggc_alloc_rtvec_sized): New.
2388         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
2389         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
2390         (ggc_internal_cleared_alloc_zone_stat)
2391         (ggc_internal_zone_alloc_stat)
2392         (ggc_internal_zone_cleared_alloc_stat)
2393         (ggc_internal_zone_vec_alloc_stat)
2394         (ggc_alloc_zone_rtx_def_stat)
2395         (ggc_alloc_zone_tree_node_stat)
2396         (ggc_alloc_zone_cleared_tree_node_stat)
2397         (ggc_alloc_cleared_gimple_statement_d_stat): New.
2398
2399         * ggc-common.c: Include ggc-internal.h.
2400         (ggc_internal_cleared_alloc_stat): Rename from
2401         ggc_alloc_cleared_stat.
2402         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
2403         (ggc_calloc): Remove.
2404         (ggc_cleared_alloc_htab_ignore_args): New.
2405         (ggc_cleared_alloc_ptr_array_two_args): New.
2406         (ggc_splay_alloc): Add obj_type parameter.
2407         (init_ggc_heuristics): Formatting fixes.
2408
2409         * ggc-none.c: Update copyright year.
2410         (ggc_alloc_stat): Rename to ggc_alloc_stat.
2411         (ggc_alloc_cleared_stat): Rename to
2412         ggc_internal_cleared_alloc_stat.
2413         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2414
2415         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
2416         Remove references to ggc_alloc in comments.
2417         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
2418         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
2419         (new_ggc_zone, destroy_ggc_zone): Remove.
2420         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2421
2422         * ggc-zone.c: Include ggc-internal.h.  Remove references to
2423         ggc_alloc in comments.
2424         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
2425         (ggc_internal_alloc_zone_pass_stat): New.
2426         (ggc_internal_cleared_alloc_zone_stat): New.
2427         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
2428         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
2429         (new_ggc_zone, destroy_ggc_zone): Remove.
2430
2431         * stringpool.c: Update copyright year.  Include ggc-internal.h
2432         (digit_vector): Make static.
2433         (digit_string): Moved from ggc.h.
2434         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
2435         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
2436
2437         * Makefile.in (GGC_INTERNAL_H): New.
2438         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
2439         $(GGC_INTERNAL_H) to dependencies.
2440
2441         * gentype.c: Update copyright year.
2442         (walk_type): Accept variable_size GTY option.
2443         (USED_BY_TYPED_GC_P): New macro.
2444         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
2445         whitespace at the end of strings.
2446         (get_type_specifier, variable_size_p): New functions.
2447         (alloc_quantity, alloc_zone): New enums.
2448         (write_typed_alloc_def): New function.
2449         (write_typed_struct_alloc_def): Likewise.
2450         (write_typed_typed_typedef_alloc_def): Likewise.
2451         (write_typed_alloc_defns): Likewise.
2452         (output_typename, write_splay_tree_allocator_def): Likewise.
2453         (write_splay_tree_allocators): Likewise.
2454         (main): Call write_typed_alloc_defns and
2455         write_splay_tree_allocators.
2456
2457         * lto-streamer.h (lto_file_decl_data_ptr): New.
2458
2459         * passes.c (order): Define using cgraph_node_ptr.
2460
2461         * strinpool.c (struct string_pool_data): Declare nested_ptr using
2462         ht_identifier_ptr.
2463
2464         * gimple.h (union gimple_statement_d): Likewise.
2465
2466         * rtl.h (struct rtx_def): Likewise.
2467         (struct rtvec_def): Likewise.
2468
2469         * tree.h (union tree_node): Likewise.
2470
2471         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
2472
2473         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
2474
2475         * tree-scalar-evolution.c (scev_initialize): Likewise.
2476
2477         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
2478
2479         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2480
2481         * omp-low.c (lower_omp_critical): Likewise.
2482
2483         * bitmap.h (struct bitmap_head_def): Update comment to not
2484         reference ggc_alloc.
2485
2486         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
2487
2488         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
2489
2490         * ipa-prop.c (duplicate_ggc_array): Rename to
2491         duplicate_ipa_jump_func_array.  Use typed GC allocation.
2492         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
2493
2494         * gimple.c (gimple_alloc_stat): Use
2495         ggc_alloc_cleared_gimple_statement_d_stat.
2496
2497         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
2498
2499         * tree.c (make_node_stat): Use
2500         ggc_alloc_zone_cleared_tree_node_stat.
2501         (make_tree_vec_stat): Likewise.
2502         (build_vl_exp_stat): Likewise.
2503         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
2504         (make_tree_binfo_stat): Likewise.
2505         (tree_cons_stat): Likewise.
2506
2507         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
2508         (shallow_copy_rtx_stat): Likewise.
2509         (make_node_stat): Likewise.
2510
2511         * lto-symtab.c: Fix comment.
2512
2513         * tree-cfg.c (create_bb): Update comment to not reference
2514         ggc_alloc_cleared.
2515         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
2516
2517         * varpool.c (varpool_node): Use typed GC allocation.
2518         (varpool_extra_name_alias): Likewise.
2519
2520         * varasm.c (emutls_decl): Likewise.
2521         (get_unnamed_section): Likewise.
2522         (get_noswitch_section): Likewise.
2523         (get_section): Likewise.
2524         (get_block_for_section): Likewise.
2525         (build_constant_desc): Likewise.
2526         (create_constant_pool): Likewise.
2527         (force_const_mem): Likewise.
2528
2529         * tree.c (build_vl_exp_stat): Likewise.
2530         (build_real): Likewise.
2531         (build_string): Likewise.
2532         (decl_debug_expr_insert): Likewise.
2533         (decl_value_expr_insert): Likewise.
2534         (type_hash_add): Likewise.
2535         (build_omp_clause): Likewise.
2536
2537         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
2538
2539         * tree-ssa.c (init_tree_ssa): Likewise.
2540
2541         * tree-ssa-structalias.c (heapvar_insert): Likewise.
2542
2543         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
2544
2545         * tree-ssa-loop-niter.c (record_estimate): Likewise.
2546
2547         * tree-ssa-alias.c (get_ptr_info): Likewise.
2548
2549         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
2550
2551         * tree-phinodes.c (allocate_phi_node): Likewise.
2552
2553         * tree-iterator.c (tsi_link_before): Likewise.
2554         (tsi_link_after): Likewise.
2555
2556         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
2557
2558         * tree-dfa.c (create_var_ann): Likewise.
2559
2560         * tree-cfg.c (create_bb): Likewise.
2561
2562         * toplev.c (alloc_for_identifier_to_locale): Likewise.
2563         (general_init): Likewise.
2564
2565         * stringpool.c (stringpool_ggc_alloc): Likewise.
2566         (gt_pch_save_stringpool): Likewise.
2567
2568         * sese.c (if_region_set_false_region): Likewise.
2569
2570         * passes.c (do_per_function_toporder): Likewise.
2571
2572         * optabs.c (set_optab_libfunc): Likewise.
2573         (set_conv_libfunc): Likewise.
2574
2575         * lto-symtab.c (lto_symtab_register_decl): Likewise.
2576
2577         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
2578         (input_eh_region): Likewise.
2579         (input_eh_lp): Likewise.
2580         (make_new_block): Likewise.
2581         (unpack_ts_real_cst_value_fields): Likewise.
2582
2583         * lto-section-in.c (lto_new_in_decl_state): Likewise.
2584
2585         * lto-cgraph.c (input_node_opt_summary): Likewise.
2586
2587         * loop-init.c (loop_optimizer_init): Likewise.
2588
2589         * lambda.h (lambda_vector_new): Likewise.
2590
2591         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
2592
2593         * ira.c (update_equiv_regs): Likewise.
2594
2595         * ipa.c (cgraph_node_set_new): Likewise.
2596         (cgraph_node_set_add): Likewise.
2597         (varpool_node_set_new): Likewise.
2598         (varpool_node_set_add): Likewise.
2599
2600         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2601         (duplicate_ipa_jump_func_array): Likewise.
2602         (ipa_read_node_info): Likewise.
2603
2604         * ipa-cp.c (ipcp_create_replace_map): Likewise.
2605
2606         * integrate.c (get_hard_reg_initial_val): Likewise.
2607
2608         * gimple.c (gimple_alloc_stat): Likewise.
2609         (gimple_build_omp_for): Likewise.
2610         (gimple_seq_alloc): Likewise.
2611         (gimple_copy): Likewise.
2612
2613         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
2614         (gsi_insert_after_without_update): Likewise.
2615
2616         * function.c (add_frame_space): Likewise.
2617         (insert_temp_slot_address): Likewise.
2618         (assign_stack_temp_for_type): Likewise.
2619         (allocate_struct_function): Likewise.
2620         (types_used_by_var_decl_insert): Likewise.
2621
2622         * except.c (init_eh_for_function): Likewise.
2623         (gen_eh_region): Likewise.
2624         (gen_eh_region_catch): Likewise.
2625         (gen_eh_landing_pad): Likewise.
2626         (add_call_site): Likewise.
2627
2628         * emit-rtl.c (get_mem_attrs): Likewise.
2629         (get_reg_attrs): Likewise.
2630         (start_sequence): Likewise.
2631         (init_emit): Likewise.
2632
2633         * dwarf2out.c (new_cfi): Likewise.
2634         (queue_reg_save): Likewise.
2635         (dwarf2out_frame_init): Likewise.
2636         (new_loc_descr): Likewise.
2637         (find_AT_string): Likewise.
2638         (new_die): Likewise.
2639         (add_var_loc_to_decl): Likewise.
2640         (clone_die): Likewise.
2641         (clone_as_declaration): Likewise.
2642         (break_out_comdat_types): Likewise.
2643         (new_loc_list): Likewise.
2644         (loc_descriptor): Likewise.
2645         (add_loc_descr_to_each): Likewise.
2646         (add_const_value_attribute): Likewise.
2647         (tree_add_const_value_attribute): Likewise.
2648         (add_comp_dir_attribute): Likewise.
2649         (add_name_and_src_coords_attributes): Likewise.
2650         (lookup_filename): Likewise.
2651         (store_vcall_insn): Likewise.
2652         (dwarf2out_init): Likewise.
2653
2654         * dbxout.c (dbxout_init): Likewise.
2655
2656         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2657
2658         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2659
2660         * config/score/score7.c (score7_output_external): Likewise.
2661
2662         * config/score/score3.c (score3_output_external): Likewise.
2663
2664         * config/s390/s390.c (s390_init_machine_status): Likewise.
2665
2666         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
2667         (rs6000_init_machine_status): Likewise.
2668         (output_toc): Likewise.
2669
2670         * config/pa/pa.c (pa_init_machine_status): Likewise.
2671         (get_deferred_plabel): Likewise.
2672
2673         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
2674
2675         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
2676
2677         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
2678
2679         * config/mep/mep.c (mep_init_machine_status): Likewise.
2680         (mep_note_pragma_flag): Likewise.
2681
2682         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
2683
2684         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
2685
2686         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
2687
2688         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2689         (i386_pe_maybe_record_exported_symbol): Likewise.
2690
2691         * config/i386/i386.c (get_dllimport_decl): Likewise.
2692         (ix86_init_machine_status): Likewise.
2693         (assign_386_stack_local): Likewise.
2694
2695         * config/frv/frv.c (frv_init_machine_status): Likewise.
2696
2697         * config/darwin.c (machopic_indirection_name): Likewise.
2698
2699         * config/cris/cris.c (cris_init_machine_status): Likewise.
2700
2701         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
2702
2703         * config/avr/avr.c (avr_init_machine_status): Likewise.
2704
2705         * config/arm/arm.c (arm_init_machine_status): Likewise.
2706
2707         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
2708         (alpha_need_linkage): Likewise.
2709         (alpha_use_linkage): Likewise.
2710
2711         * cgraph.c (cgraph_allocate_node): Likewise.
2712         (cgraph_create_edge_1): Likewise.
2713         (cgraph_create_indirect_edge): Likewise.
2714         (cgraph_add_asm_node): Likewise.
2715
2716         * cfgrtl.c (init_rtl_bb_info): Likewise.
2717
2718         * cfgloop.c (alloc_loop): Likewise.
2719         (rescan_loop_exit): Likewise.
2720
2721         * cfg.c (init_flow): Likewise.
2722         (alloc_block): Likewise.
2723         (unchecked_make_edge): Likewise.
2724
2725         * c-parser.c (c_parse_init): Likewise.
2726         (c_parse_file): Likewise.
2727
2728         * c-decl.c (bind): Likewise.
2729         (record_inline_static): Likewise.
2730         (push_scope): Likewise.
2731         (make_label): Likewise.
2732         (lookup_label_for_goto): Likewise.
2733         (finish_struct): Likewise.
2734         (finish_enum): Likewise.
2735         (c_push_function_context): Likewise.
2736
2737         * bitmap.c (bitmap_element_allocate): Likewise.
2738         (bitmap_gc_alloc_stat): Likewise.
2739
2740         * alias.c (record_alias_subset): Likewise.
2741         (init_alias_analysis): Likewise.
2742
2743 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
2744
2745         * fold-const.c (fold_comparison): Remove redundant parenthesis.
2746         * tree-inline.c (expand_call_inline): Pass translated return value of
2747         cgraph_inline_failed_string to diagnostic function.
2748
2749 2010-06-08  Andrew Pinski <pinskia@gmail.com>
2750             Shujing Zhao  <pearly.zhao@oracle.com>
2751
2752         PR c/37724
2753         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
2754         implicit bad conversions is initialization.
2755         (error_init): Use gmsgid instead of msgid for argument name and change
2756         the call for error.
2757         (pedwarn_init): Use gmsgid instead of msgid for argument name and
2758         change the call for pedwarn.
2759         (warning_init): Use gmsgid instead of msgid for argument name and
2760         change the call for warning.
2761
2762 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
2763
2764         * config/mips/mips-protos.h (mips_print_operand): Delete.
2765         (mips_print_operand_address): Delete.
2766         * config/mips/mips.h (mips_print_operand_punct): Delete.
2767         (PRINT_OPERAND): Delete.
2768         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2769         (PRINT_OPERAND_ADDRESS): Delete.
2770         * config/mips/mips.c (mips_print_operand_punct): Make static.
2771         (mips_print_operand_address): Make static.
2772         (mips_print_operand): Make static.  Call
2773         mips_print_operand_punct_valid_p.
2774         (mips_print_operand_punct_valid_p): New function.
2775         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2776         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2777
2778 2010-06-07  Jan Hubicka  <jh@suse.cz>
2779
2780         PR middle-end/44454
2781         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
2782         are allocated.
2783
2784 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2785
2786         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
2787         name of RECORD.
2788
2789 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2790
2791         * doc/sourcebuild.texi (Effective-Target Keywords, Other
2792         attributes): Document gas.
2793
2794 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
2795
2796         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
2797         <TYPE_LEA>: Split instruction.
2798         <default>: Remove alternative 2 handling.
2799         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
2800         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
2801         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
2802
2803         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
2804         (ashift_zext lea splitter): Use DImode for multiplication.
2805
2806         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
2807         to generate addition.
2808
2809 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2810
2811         * common.opt (fira-verbose): Use Var.
2812         (fpcc-struct-return): Use Init instead of VarExists.
2813         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
2814         toplev.c.
2815         * flags.h (flag_signed_char, flag_short_enums,
2816         flag_pcc_struct_return, flag_ira_verbose,
2817         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
2818         * toplev.c (flag_detailed_statistics, flag_signed_char,
2819         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
2820         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
2821         * toplev.h (flag_crossjumping, flag_if_conversion,
2822         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
2823         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
2824         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
2825         flag_cprop_registers, time_report, flag_ira_loop_pressure,
2826         flag_ira_coalesce, flag_ira_move_spills,
2827         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
2828
2829 2010-06-07  Jan Hubicka  <jh@suse.cz>
2830
2831         * df-core.c (df_analyze_problem): Do verification after allocation.
2832
2833         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
2834         (df_lr_alloc): Initialize problem data; move bitmaps to
2835         lr_bitmaps obstack.
2836         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
2837         (df_lr_verify_solution_start): Do not initialize problem data;
2838         allocate bitmaps in lr_bitmaps.
2839         (df_lr_verify_solution_end): Do not free problem data.
2840
2841 2010-06-07  Jan Hubicka  <jh@suse.cz>
2842
2843         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
2844         if caller is noreturn.
2845         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
2846         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
2847         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
2848         * ipa-pure-const.c (check_decl): Add IPA parameter.
2849         (state_from_flags): New function.
2850         (better_state, worse_state): New functions.
2851         (check_call): When in IPA mode, do not care about callees.
2852         (check_load, check_store): Update.
2853         (check_ipa_load, check_ipa_store): New.
2854         (check_stmt): When in IPA mode, use IPA checkers.
2855         (analyze_function): Use state_from_flags.
2856         (propagate): Check indirect edges and references.
2857
2858 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
2859
2860         PR rtl-optimization/44404
2861         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
2862         of count_occurrences to see if it's safe to modify mem_insn.
2863
2864 2010-06-07  Richard Guenther  <rguenther@suse.de>
2865
2866         * gimplify.c (gimplify_cleanup_point_expr): For empty body
2867         and EH-only cleanup drop the cleanup instead of inserting it
2868         unconditionally.
2869
2870 2010-06-07  Ira Rosen  <irar@il.ibm.com>
2871
2872         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
2873         documentation.
2874         * targhooks.c (default_builtin_vectorization_cost): New function.
2875         * targhooks.h (default_builtin_vectorization_cost): Declare.
2876         * target.h (enum vect_cost_for_stmt): Define.
2877         (builtin_vectorization_cost): Change argument and comment.
2878         * tree-vectorizer.h: Remove cost model macros.
2879         * tree-vect-loop.c: Include target.h.
2880         (vect_get_cost): New function.
2881         (vect_estimate_min_profitable_iters): Replace cost model macros with
2882         calls to vect_get_cost.
2883         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
2884         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
2885         default implementation.
2886         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
2887         calls to target hook builtin_vectorization_cost.
2888         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
2889         Likewise.
2890         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
2891         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
2892         implementation to return costs.
2893         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
2894         * config/spu/spu.h: Remove vectorizer cost model macros.
2895         * config/i386/i386.h: Likewise.
2896         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
2897         a call to target hook builtin_vectorization_cost.
2898
2899 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
2900
2901         PR target/44319
2902         * config/i386/i386.c (override_options): Turn zee pass on for level 2
2903         and above and defer till target is known.
2904         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
2905         turn off otherwise.
2906
2907 2010-05-25  Jan Hubicka  <jh@suse.cz>
2908
2909         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
2910         (df_compact_blocks): Likewise.
2911         * df.h (struct df): Turn hardware_regs_used,
2912         regular_block_artificial_uses, eh_block_artificial_uses,
2913         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
2914         bitmap_head.
2915         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
2916         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
2917         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
2918         df_scan_blocks, df_insn_delete, df_insn_rescan,
2919         df_insn_rescan_debug_internal, df_insn_rescan_all,
2920         df_process_deferred_rescans, df_process_deferred_rescans,
2921         df_notes_rescan, df_get_call_refs, df_get_call_refs,
2922         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
2923         df_record_entry_block_defs, df_record_exit_block_uses,
2924         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
2925         df_scan_verify): Update.
2926
2927 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
2928
2929         PR c++/44188
2930         * c-common.c (is_typedef_decl): Move this definition ...
2931         * tree.c (is_typedef_decl): ... here.
2932         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
2933         * c-common.h (is_typedef_decl): Move this declaration ...
2934         * tree.h (is_typedef_decl): ... here.
2935         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
2936         * dwarf2out.c (is_naming_typedef_decl): New function.
2937         (gen_tagged_type_die): Split out of ...
2938         (gen_type_die_with_usage): ... this function. When an anonymous
2939         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
2940         is emitted for the typedef.
2941         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
2942         anonymous tagged types.
2943
2944 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2945
2946         PR c/20000
2947         * c-decl.c (grokdeclarator): Delete warning.
2948
2949 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
2950
2951         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
2952         newly built CALL_EXPR.
2953         * tree-profile.c (tree_profiling): Don't profile functions produced
2954         for built-in stuff.
2955
2956 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
2957
2958         PR bootstrap/44427
2959         PR bootstrap/44428
2960         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
2961         endianness-independent.
2962
2963 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2964
2965         * c-common.c: Move to c-family/.
2966         * c-common.def: Likewise.
2967         * c-common.h: Likewise.
2968         * c-cppbuiltin.c: Likewise.
2969         * c-dump.c: Likewise.
2970         * c-format.c: Likewise.
2971         * c-format.h : Likewise.
2972         * c-gimplify.c: Likewise.
2973         * c-lex.c: Likewise.
2974         * c-omp.c: Likewise.
2975         * c.opt: Likewise.
2976         * c-opts.c: Likewise.
2977         * c-pch.c: Likewise.
2978         * c-ppoutput.c: Likewise.
2979         * c-pragma.c: Likewise.
2980         * c-pragma.h: Likewise.
2981         * c-pretty-print.c: Likewise.
2982         * c-pretty-print.h: Likewise.
2983         * c-semantics.c: Likewise.
2984         * stub-objc.c: Likewise.
2985
2986         * gengtype.c (get_file_langdir): Special-case files in c-family/.
2987         (get_output_file_with_visibility): Fix name for c-common.h.
2988         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
2989
2990         * c-tree.h: Update include path for moved files.
2991         * c-lang.c: Likewise.
2992         * c-lang.h: Likewise.
2993         * c-parser.c: Likewise.
2994         * c-convert.c: Likewise.
2995         * c-decl.c: Likewise.
2996         * c-objc-common.c: Likewise.
2997         * configure.ac: Make sure c-family/ exists in the build directory.
2998         * configure: Regenerate.
2999         * Makefile.in: Update paths for moved files.  Regroup files per
3000         location and update dependencies.  Move generated_files down after
3001         ALL_GTFILES_H.
3002
3003         * config/spu/spu-c.c: Update paths for moved files.
3004         * config/mep/mep-pragma.c: Likewise.
3005         * config/darwin-c.c: Likewise.
3006         * config/i386/msformat-c.c: Likewise.
3007         * config/i386/i386-c.c: Likewise.
3008         * config/avr/avr-c.c: Likewise.
3009         * config/sol2-c.c: Likewise.
3010         * config/ia64/ia64-c.c: Likewise.
3011         * config/rs6000/rs6000-c.c: Likewise.
3012         * config/arm/arm.c: Likewise.
3013         * config/arm/arm-c.c: Likewise.
3014         * config/h8300/h8300.c: Likewise.
3015         * config/v850/v850-c.c: Likewise.
3016
3017         * config/t-darwin: Fix dependencies for moved files.
3018         * config/t-sol2: Fix dependencies for moved files.
3019         * config/mep/t-mep: Fix dependencies for moved files.
3020         * config/ia64/t-ia64: Fix dependencies for moved files.
3021         * config/rs6000/t-rs6000: Fix dependencies for moved files.
3022         * config/v850/t-v850: Fix dependencies for moved files.
3023         * config/v850/t-v850e: Fix dependencies for moved files.
3024
3025         * config/m32c/m32c-pragma.c
3026
3027         * po/exgettext: Look in c-family/ also.
3028
3029 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
3030
3031         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
3032         (mark_control_dependent_edges_necessary): Call it instead of marking
3033         the last statement manually.
3034         (propagate_necessity): Likewise.
3035
3036 2010-06-05  Jan Hubicka  <jh@suse.cz>
3037
3038         * basic-block.h (compute_dominance_frontiers): Updated.
3039         (compute_idf): Likewise.
3040
3041         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
3042         for dominance frontiers.
3043         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
3044         (insert_updated_phi_nodes_for): Likewise.
3045         (update_ssa): Likewise.
3046         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3047         (compute_dominance_frontiers): Likewise.
3048         (compute_idf): Likewise.
3049         * df-problems.c (df_md_local_compute): Likewise.
3050
3051 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
3052
3053         * target.h (struct gcc_target): Add memory_move_cost field.
3054         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
3055         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
3056         * targhooks.c (default_memory_move_cost): New function.
3057         * targhooks.h (default_memory_move_cost): Declare function.
3058         * reload.h (memory_move_cost): Declare.
3059         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3060         * reginfo.c (memory_move_cost): New function.
3061         (memory_move_secondary_cost): Change type of 'in' argument to bool.
3062         * ira.h (ira_memory_move_cost): Update comment.
3063         * ira.c: (ira_memory_move_cost): Update comment.
3064         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
3065         with memory_move_cost.
3066         * postreload.c (reload_cse_simplify_set): (Ditto.).
3067         * reload1.c (choose_reload_regs): (Ditto.).
3068         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
3069         (MEMORY_MOVE_COST):  Revise documentation.
3070
3071         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
3072         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
3073         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
3074         type of 'in' argument to bool.
3075         (TARGET_MEMORY_MOVE_COST): Define.
3076
3077 2010-06-05  Jan Hubicka  <jh@suse.cz>
3078
3079         * ipa-pure-const.c (propagate): Fix typo in handling of functions
3080         that cannot return.  Be more careful when merging the results with
3081         previously known ones.
3082
3083 2010-06-05  Matthias Klose  <doko@ubuntu.com>
3084
3085         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
3086         function to add the -iplugindir option.
3087         (find_plugindir_spec_function): Add new declaration and function.
3088         (static_spec_func): Use it for "find-plugindir".
3089
3090 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
3091
3092         PR c++/44361
3093         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
3094         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
3095         statement expression.
3096
3097 2010-06-05  Jan Hubicka  <jh@suse.cz>
3098
3099         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
3100         (df_rd_problem_data): Convert sparse_invalidated_by_call,
3101         dense_invalidated_by_call to bitmap head.
3102         (df_rd_alloc, df_rd_bb_local_compute_process_def,
3103         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
3104         df_rd_start_dump, df_lr_verify_transfer_functions,
3105         df_live_verify_transfer_functions, df_chain_create_bb,
3106         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
3107         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
3108         df_simulate_one_insn_forwards, df_md_alloc,
3109         df_md_bb_local_compute_process_def,
3110         df_md_bb_local_compute_process_def, df_md_local_compute,
3111         df_md_transfer_function df_md_free): Update.
3112
3113 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
3114
3115         PR c/44322
3116         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
3117         target type for ADDR_EXPR; require no changes to qualifiers except
3118         for function types.
3119         * c-tree.h (c_build_type_variant): Remove.
3120
3121 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3122
3123         * genautomata.c (get_excl_set): Do work per element, not per char.
3124         (check_presence_pattern_sets): Similar.
3125         (check_absence_pattern_sets): Similar.
3126
3127 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
3128
3129         * genautomata.c (curr_state_pass_num): Delete.
3130         (min_issue_delay_pass_states): Delete.
3131         (min_issue_delay): Delete.
3132         (initiate_min_issue_delay_pass_states): Delete.
3133         (output_min_issue_delay_table): Compute min_issue_delay_vect
3134         using a breadth-first search variant.
3135         (output_tables): Don't call initiate_min_issue_delay_pass_states.
3136
3137 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
3138
3139         PR boostrap/44421
3140         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
3141         (df_byte_lr_bb_local_compute): Likewise.
3142
3143 2010-06-03  Jason Merrill  <jason@redhat.com>
3144
3145         Implement noexcept operator (5.3.7)
3146         * c-common.c (c_common_reswords): Add noexcept.
3147         * c-common.h (enum rid): Add RID_NOEXCEPT.
3148
3149 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3150
3151         * config/darwin-driver.c (darwin_default_min_version): Use
3152         GCC-specific formats in diagnostics.
3153         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
3154         diagnostics.
3155         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
3156         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
3157         eval_spec_function, handle_braces, process_brace_body, main,
3158         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
3159         getenv_spec_function, compare_version_strings,
3160         version_compare_spec_function): Use GCC-specific formats in
3161         diagnostics.
3162
3163 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3164
3165         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
3166         that operand 0 and operand 1 are equal.
3167         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
3168         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
3169         and operand 1 are equal.
3170         <default>: Ditto.  Remove ??? comment.
3171         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
3172         and operand 1 are equal.
3173         <default>: Ditto.  Remove ??? comment.
3174         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
3175         are equal.
3176         (*add<mode>_4) <default>: Ditto.
3177         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
3178
3179 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
3180
3181         * config/i386/i386-protos.h (ix86_print_operand): Declare.
3182         * config/i386/i386.c (ix86_print_operand): Make non-static.
3183         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
3184         * output.h (output_operand): Declare.
3185         * final.c (output_operand): Make non-static.
3186
3187 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
3188
3189         PR rtl-optimization/44013
3190         * sched-deps.c (add_dependence_list_and_free): Don't free lists
3191         when processing debug insns.
3192
3193         PR debug/41371
3194         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
3195         recursing.  Check that recursion is bounded.  Rename inner var
3196         to avoid hiding incoming argument.
3197
3198 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3199
3200         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
3201         operands[2] == 255.
3202         (*addqi_3): Ditto.
3203         (*addqi_4): Ditto.
3204         (*addqi_5): Ditto.
3205         (*addqi_ext_1_rex64): Ditto.
3206         (*addqi_ext_1): Ditto.
3207
3208         (*addqi_4): Check for incdec_operand in QImode.
3209
3210         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
3211         using SWI mode iterator.
3212         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
3213         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
3214         mode iterator.
3215         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
3216         using SWI mode iterator.
3217
3218 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3219
3220         PR c/25880
3221         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
3222         * c-format.c (gcc_diag_flag_specs): Add hash.
3223         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
3224         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
3225         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
3226         pp_c_cv_qualifiers. Handle qualifiers spelling here.
3227         (pp_c_type_qualifier_list): Call the function above.
3228         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
3229         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
3230         (WARN_FOR_QUALIFIERS): New macro.
3231         (convert_for_assignment): Use it.
3232
3233 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
3234
3235         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
3236
3237 2010-06-04  Jan Hubicka  <jh@suse.cz>
3238
3239         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
3240         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
3241         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
3242         DF_BYTE_LR_OUT): Update for embedded bitmaps.
3243         * fwprop.c (single_def_use_enter_block): Likewise.
3244         * ddg.c (create_ddg_dep_from_intra_loop_link,
3245         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
3246         * loop-iv.c (latch_dominating_def): Likewise.
3247         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
3248         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
3249         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
3250         df_rd_transfer_function, df_rd_top_dump,
3251         df_rd_bottom_dump): Update.
3252         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
3253         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
3254         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
3255         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
3256         df_lr_verify_solution_start, df_lr_verify_solution_end,
3257         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
3258         df_live_free_bb_info, df_live_alloc, df_live_reset,
3259         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
3260         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
3261         df_live_verify_solution_start, df_live_verify_solution_end,
3262         df_live_verify_transfer_functions, df_chain_create_bb,
3263         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
3264         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3265         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3266         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
3267         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
3268         df_byte_lr_transfer_function, df_byte_lr_top_dump,
3269         df_byte_lr_bottom_dump, df_create_unused_note,
3270         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
3271         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
3272         df_md_transfer_function, df_md_init, df_md_confluence_0,
3273         df_md_confluence_n,
3274         df_md_top_dump, df_md_bottom_dump): Update.
3275         (struct df_lr_problem_data): Embedd bitmap headers.
3276
3277 2010-06-04  Jan Hubicka  <jh@suse.cz>
3278
3279         * dce.c (dce_process_block): Do not re-scan already marked
3280         instructions.
3281
3282 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
3283
3284         PR rtl-optimization/39871
3285         PR rtl-optimization/40615
3286         PR rtl-optimization/42500
3287         PR rtl-optimization/42502
3288         * ira.c (init_reg_equiv_memory_loc: New function.
3289         (ira): Call it twice.
3290         * reload.h (calculate_elim_costs_all_insns): Declare.
3291         * ira-costs.c: Include "reload.h".
3292         (regno_equiv_gains): New static variable.
3293         (init_costs): Allocate it.
3294         (finish_costs): Free it.
3295         (ira_costs): Call calculate_elim_costs_all_insns.
3296         (find_costs_and_classes): Take estimated elimination costs
3297         into account.
3298         (ira_adjust_equiv_reg_cost): New function.
3299         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
3300         * reload1.c (init_eliminable_invariants, free_reg_equiv,
3301         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
3302         (elim_bb): New static variable.
3303         (reload): Move code out of here into init_eliminable_invariants and
3304         free_reg_equiv.  Call them.
3305         (calculate_elim_costs_all_insns): New function.
3306         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
3307         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
3308         but call note_reg_elim_costly if we turned a valid memory address
3309         into an invalid one.
3310         * Makefile.in (ira-costs.o): Depend on reload.h.
3311
3312 2010-06-04  Julian Brown  <julian@codesourcery.com>
3313
3314         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
3315         for pool ranges.
3316
3317 2010-06-04  Richard Guenther  <rguenther@suse.de>
3318
3319         PR lto/41584
3320         * cgraph.h (struct varpool_node): Add lto_file_data field.
3321         * lto-cgraph.c (input_varpool_node): Initialize it.
3322
3323 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3324
3325         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
3326         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
3327         predicate in "type" attribute calculation.
3328         (*addsi_1_zext): Ditto.
3329         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
3330         (*addsi_2_zext): Ditto.
3331         (*add<mode>_3): Ditto.
3332         (*addsi_3_zext): Ditto.
3333         (*add<mode>_5): Ditto.
3334
3335 2010-06-03  Jan Hubicka  <jh@suse.cz>
3336
3337         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
3338         of bitmap_bit_p.
3339         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3340
3341 2010-06-03  Jan Hubicka  <jh@suse.cz>
3342
3343         * df-problems.c (df_create_unused_note, df_note_bb_compute):
3344         micro-optimize the checks when to add new note.
3345
3346 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
3347
3348         * final.c (output_asm_insn): Call
3349         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
3350         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
3351         (output_address): Call targetm.asm_out.print_operand_address.
3352         Update comments.
3353         * target.h (struct gcc_target): Add print_operand,
3354         print_operand_address, and print_operand_punct_valid_p fields.
3355         * targhooks.h (default_print_operand): Declare.
3356         (default_print_operand_address): Declare.
3357         (default_print_operand_punct_valid_p): Declare.
3358         * targhooks.c (default_print_operand): Define.
3359         (default_print_operand_address): Define.
3360         (default_print_operand_punct_valid_p): Define.
3361         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
3362         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
3363         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3364         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
3365         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
3366         * vmsdbgout.c (addr_const_to_string): Update comment.
3367         * config/i386/i386.c (print_operand): Rename to...
3368         (ix86_print_operand): ...this.  Make static.
3369         (print_operand_address): Rename to...
3370         (ix86_print_operand_address): ...this.  Make static.  Call
3371         ix86_print_operand instead of PRINT_OPERAND.
3372         (ix86_print_operand_punct_valid_p): New function.
3373         (TARGET_PRINT_OPERAND): Define.
3374         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3375         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3376         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
3377         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3378         (PRINT_OPERAND): Delete.
3379         (PRINT_OPERAND_ADDRESS): Delete.
3380         * config/i386/i386-protos.h (print_operand): Delete prototype.
3381         (print_operand_address): Delete prototype.
3382
3383 2010-06-03  Richard Guenther  <rguenther@suse.de>
3384
3385         PR tree-optimization/44403
3386         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3387         Preserve pointer qualifiers.
3388         (vect_create_data_ref_ptr): Likewise.
3389
3390 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3391
3392         PR c++/44294
3393         * defaults.h (MAX_FIXED_MODE_SIZE): New.
3394
3395         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
3396
3397 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR debug/44375
3400         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
3401         return false if merging the bbs would lead to goto_locus
3402         location being lost from the IL.
3403
3404 2010-06-03  Jan Hubicka  <jh@suse.cz>
3405             Jakub Jelinek  <jakub@redhat.com>
3406
3407         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
3408         set->regs[i] is NULL or has just one entry.
3409
3410 2010-06-03  Jan Hubicka  <jh@suse.cz>
3411
3412         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
3413         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
3414
3415 2010-06-03  Paul Brook  <paul@codesourcery.com>
3416
3417         * config/arm/arm.c (FL_TUNE): Define.
3418         (arm_default_cpu, arm_cpu_select): Remove.
3419         (all_cores): Populate core field.
3420         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
3421         (arm_find_cpu): New function.
3422         (arm_handle_option): Lookup cpu/architecture names.
3423         (arm_override_options): Cleanup mcpu/march/mtune handling.
3424         (arm_file_start): Ditto.
3425
3426 2010-06-03  Alan Modra  <amodra@gmail.com>
3427
3428         PR target/44169
3429         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
3430         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
3431         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
3432         (rs6000_emit_load_toc_table): Likewise.
3433
3434 2010-06-02  Jan Hubicka  <jh@suse.cz>
3435
3436         * passes.c (init_optimization_passes): Put ipa reference
3437         after ipa pure-const.
3438
3439 2010-06-02  Jan Hubicka  <jh@suse.cz>
3440
3441         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
3442         calls_read_all and calls_write_all.
3443         (get_reference_optimization_summary): Fix formatting.
3444         (is_proper_for_analysis): Check that decl is not readonly.
3445         (propagate_bits): Check CONST/PURE/noreturn flags.
3446         (ipa_init): Move all_module_statics to optimization_summary_obstack.
3447         (analyze_function): Ignore indirect edges.
3448         (copy_global_bitmap): For all module statics, do nothing.
3449         (generate_summary): Do not print calls_read_all/calls_write_all.
3450         (read_write_all_from_decl): Take node as argument; check
3451         cgraph_node_cannot_return.
3452         (propagate): Reorganize read_all/write_all computation;
3453         check indirect edges; check ecf flags; use all_module_statics
3454         in the results; do not free all_module_statics.
3455         (stream_out_bitmap): Handle all_module_statics.
3456         (ipa_reference_write_optimization_summary): Likewise; use
3457         varpool/cgraph encoders to get boundaries.
3458         (ipa_reference_read_optimization_summary): Read in all_module_statics;
3459         use it when possible.
3460
3461 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3462
3463         PR target/44218
3464         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
3465         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
3466
3467         * doc/extend.texi (powerpc builtins): Document vec_recip,
3468         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
3469
3470         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
3471         (rs6000_emit_swrsqrt): Ditto.
3472         (rs6000_emit_swdivsf): Delete.
3473         (rs6000_emit_swdivdf): Ditto.
3474         (rs6000_emit_swrsqrtsf): Ditto.
3475
3476         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
3477         describe the reciprocal estimate support for each type.
3478         (recip_options): Map -mrecip=<opt> into option bits.
3479         (gen_2arg_fn_t): New typedef for binary rtx gen function.
3480         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
3481         reciprocal estimate instructions.
3482         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
3483         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
3484         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
3485         cost information if -mdebug=cost or -mdebug=reg.
3486         (rs6000_override_options): Set -mrecip-precision for power6, and
3487         power7 machines.  If -mvsx or -mdfp, enable various options that
3488         came in previous instruction set ISAs, unless the option was
3489         explicitly disabled by the command line option.  Parse
3490         -mrecip=<opt> options.
3491         (rs6000_builtin_vectorized_function): Add support for vectorizing
3492         the reciprocal estimate builtins and expansions.
3493         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
3494         (bdesc_2arg): Add reciprocal estimate builtins.
3495         (bdesc_1arg): Add reciprocal square root estimate builtins.
3496         (rs6000_expand_builtin): Rewrite to use a switch statement,
3497         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
3498         (rs6000_init_builtins): Create declarations for reciprocal
3499         estimate builtins.
3500         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
3501         sized, prefer traditional floating point registers, if integer
3502         vector types, prefer altivec registers.  Don't actually look at
3503         the memory address any more.
3504         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
3505         builtins.
3506         (rs6000_load_constant_and_splat): New helper function to load up
3507         the constant for reciprocal estimate instructions.
3508         (rs6000_emit_madd): New helper function for generating
3509         multiply/add type instructions, based on the current switches.
3510         (rs6000_emit_msub): Ditto.
3511         (rs6000_emit_mnsub): Ditto.
3512         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
3513         replace a divide with a reciprocal estimate and fixup, adding
3514         support for machines with high precision and vectors.
3515         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
3516         low precision machines.
3517         (rs6000_emit_swdiv): New common function to be called to replace a
3518         division with reciprocal estimate and fixup.
3519         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
3520         for double and vector types.  Add support for high precision machines.
3521
3522         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
3523         the reciprocal estimate instructions can be generated.
3524         (TARGET_FRE): Ditto.
3525         (TARGET_FRSQRTES): Ditto.
3526         (TARGET_FRSQRTE): Ditto.
3527         (RS6000_RECIP_*): New macros for reciprocal estimate support.
3528
3529         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
3530         square root estimate on vectors.
3531         (re<mode>2): New insn for reciprocal division estimate on vectors.
3532
3533         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
3534         New builtin.
3535         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
3536         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
3537         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
3538         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
3539         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
3540         (RS6000_BUILTIN_RSQRT): Ditto.
3541         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
3542         floating point builtin.
3543
3544         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3545         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
3546         __RECIP_PRECISION__ based on the command line switches.
3547         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
3548
3549         * config/rs6000/rs6000.opt (-mrecip): Document add support for
3550         replacing division instructions with reciprocal estimate and fixup.
3551         (-mrecip=<opt>): New option.
3552         (-mrecip-precision): Ditto.
3553
3554         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
3555         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
3556         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
3557         precision scalar.
3558
3559         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
3560         (UNSPEC_VREFP): Ditto.
3561         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
3562         conterparts with regard to support of -mno-fused-madd and -ffast-math.
3563         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
3564         reciprocal estimate instructions to be generated.
3565         (altivec_vrefp): Ditto.
3566
3567         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
3568         estimate support.
3569         (rreg): New mode attribute for reciprocal estimate support.
3570         (recip<mode>3): New insn for division using reciprocal estimate
3571         and fixup builtins.
3572         (divide define_split): New define_split to convert floating point
3573         division to use reciprocal estimate if the user used the
3574         appropriate options and the split is run when we can add new
3575         pseudo registers for the fixup.
3576         (rsqrt<mode>2): New insn for reciprocal square root support.
3577         (recipsf3): Move into recip<mode>3.
3578         (recipdf3): Ditto.
3579         (fres): Use TARGET_FRES.
3580         (rsqrtsf2): Move into rsqrt<mode>2.
3581         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
3582         (copysignsf3): Add support for VSX.
3583         (fred): Use TARGET_FRE.
3584         (fred_fpr): Ditto.
3585         (rsqrtdf_internal1): New function for frsqrte instruciton.
3586
3587         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
3588         (vec_rsqrt): Ditto.
3589
3590 2010-06-03  Richard Guenther  <rguenther@suse.de>
3591
3592         PR middle-end/44291
3593         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
3594         (set_user_assembler_libfunc): Likewise.
3595
3596 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3597
3598         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
3599         defaults.h.
3600         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
3601         to defaults.h
3602         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
3603         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
3604         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
3605         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
3606         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
3607         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
3608         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
3609         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
3610         * defaults.h: Updated for above mentioned changes.
3611
3612 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
3613
3614         * c-common.c: Remove header include of tm_p.h.
3615         * Makefile.in (c-common.o): Remove TM_P_H dependency.
3616
3617 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
3618
3619         * tree.h (struct tree_decl_map): New type.
3620         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
3621         (tree_decl_map_hash): New prototype.
3622         (debug_expr_for_decl, value_expr_for_decl): Change into
3623         tree_decl_map hashtab from tree_map.
3624         (init_ttree): Adjust initialization.
3625         (tree_decl_map_hash): New function.
3626         (decl_debug_expr_lookup, decl_debug_expr_insert,
3627         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
3628
3629 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3630
3631         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
3632         linker emulations.
3633         * configure: Regenerate.
3634         * config.in: Regenerate.
3635
3636         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
3637         (X86_64_EMULATION): Define.
3638         (TARGET_LD_EMULATION): Use them.
3639
3640         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
3641         (SPARC64_EMULATION): Define.
3642         (LINK_ARCH_SPEC): Use them.
3643
3644 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3645
3646         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
3647         smallest_mode_for_size for computing the precision types of new
3648         graphite IVs.  Do not call lang_hooks.types.type_for_size.
3649
3650 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3651
3652         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
3653         information.
3654         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
3655
3656 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3657
3658         PR middle-end/44363
3659         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
3660         return false instead.
3661
3662 2010-06-02  Jan Hubicka  <jh@suse.cz>
3663
3664         PR middle-end/44295
3665         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
3666         create new cgraph node to check callee.
3667
3668 2010-06-02  Richard Guenther  <rguenther@suse.de>
3669
3670         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
3671
3672 2010-06-02  Richard Guenther  <rguenther@suse.de>
3673
3674         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
3675         (lto_wrapper_cleanup): ... this.  Do not exit.
3676         (fatal): Adjust.  Exit here.
3677         (fatal_perror): Likewise.
3678         (fatal_signal): New function.
3679         (main): Set up signal handlers to cleanup temporary files.
3680         * Makefile.in (lto-wrapper.o): Adjust dependencies.
3681
3682 2010-06-02  Richard Guenther  <rguenther@suse.de>
3683
3684         PR tree-optimization/44377
3685         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
3686
3687 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3688
3689         * config/s390/2097.md (z10_fhex): Remove insn reservation.
3690         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
3691         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
3692         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
3693         instruction.
3694         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
3695
3696 2010-06-02  Jan Hubicka  <jh@suse.cz>
3697
3698         * bitmap.c (bitmap_descriptor): Add search_iter.
3699         (bitmap_find_bit): Increment it.
3700         (print_statistics): Print it.
3701
3702 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
3703
3704         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
3705         instead of gimple_build_call_vec.  Delete unnecessary local variable.
3706
3707 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3708
3709         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
3710         change from yesterday.
3711
3712 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3713
3714         * c-ada-spec.c: Clean up redundant includes.
3715
3716 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
3717
3718         * gimplify.c: Do not include except.h and optabs.h.
3719         (gimplify_body): Do not initialize RTL profiling.
3720         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
3721         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
3722         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
3723         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
3724         langhooks.h.
3725
3726         * tree-pretty-print.h: Include pretty-print.h.
3727         * gimple-pretty-print.h: Include pretty-print.h.
3728
3729         * tree-pretty-print.c: Do not include diagnostic.h.
3730         * tree-vrp.c: Likewise.
3731         * tree-tailcall.c: Likewise
3732         * tree-scalar-evolution.c: Likewise
3733         * tree-ssa-dse.c: Likewise
3734         * tree-chrec.c: Likewise
3735         * tree-ssa-sccvn.c: Likewise
3736         * tree-ssa-copyrename.c: Likewise
3737         * tree-nomudflap.c: Likewise
3738         * tree-call-cdce.c: Likewise
3739         * tree-stdarg.c: Likewise
3740         * tree-ssa-math-opts.c: Likewise
3741         * tree-nrv.c: Likewise
3742         * tree-ssa-sink.c: Likewise
3743         * tree-browser.c: Likewise
3744         * tree-ssa-loop-ivcanon.c: Likewise
3745         * tree-ssa-loop.c: Likewise
3746         * tree-parloops.c: Likewise
3747         * tree-ssa-address.c: Likewise
3748         * tree-ssa-ifcombine.c: Likewise
3749         * tree-if-conv.c: Likewise
3750         * tree-data-ref.c: Likewise
3751         * tree-affine.c: Likewise
3752         * tree-ssa-phiopt.c: Likewise
3753         * tree-ssa-coalesce.c: Likewise
3754         * tree-ssa-pre.c: Likewise
3755         * tree-ssa-live.c: Likewise
3756         * tree-predcom.c: Likewise
3757         * tree-ssa-forwprop.c: Likewise
3758         * tree-ssa-dce.c: Likewise
3759         * tree-ssa-ter.c: Likewise
3760         * tree-ssa-loop-prefetch.c: Likewise
3761         * tree-optimize.c: Likewise
3762         * tree-ssa-phiprop.c: Likewise
3763         * tree-object-size.c: Likewise
3764         * tree-outof-ssa.c: Likewise
3765         * tree-ssa-structalias.c: Likewise
3766         * tree-switch-conversion.c: Likewise
3767         * tree-ssa-reassoc.c: Likewise
3768         * tree-ssa-operands.c: Likewise
3769         * tree-vectorizer.c: Likewise
3770         * tree-vect-data-refs.c: Likewise
3771         * tree-vect-generic.c: Likewise
3772         * tree-vect-stmts.c: Likewise
3773         * tree-vect-patterns.c: Likewise
3774         * tree-vect-slp.c: Likewise
3775         * tree-vect-loop.c: Likewise
3776         * tree-ssa-loop-ivopts.c: Likewise
3777         * tree-ssa-loop-im.c: Likewise
3778         * tree-ssa-loop-niter.c: Likewise
3779         * tree-ssa-loop-unswitch.c: Likewise
3780         * tree-ssa-loop-manip.c: Likewise
3781         * tree-ssa-loop-ch.c: Likewise
3782         * tree-dump.c: Likewise
3783         * tree-complex.c: Likewise
3784
3785         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
3786         * tree-ssa-uninit.c: Likewise
3787         * tree-ssa-threadupdate.c: Likewise
3788         * tree-ssa-uncprop.c: Likewise
3789         * tree-ssa-ccp.c: Likewise
3790         * tree-ssa-dom.c: Likewise
3791         * tree-ssa-propagate.c: Likewise
3792         * tree-ssa-alias.c: Likewise
3793         * tree-dfa.c: Likewise
3794         * tree-cfgcleanup.c: Likewise
3795         * tree-sra.c: Likewise
3796         * tree-ssa-copy.c: Likewise
3797         * tree-ssa.c: Likewise
3798         * tree-profile.c: Likewise
3799         * tree-cfg.c: Likewise
3800         * tree-ssa-threadedge.c: Likewise
3801         * tree-vect-loop-manip.c: Likewise
3802
3803         * tree-inline.c: Do not include diagnostic.h and expr.h.
3804         Include rtl.h.
3805         (copy_decl_for_dup_finish): Do not use NULL_RTX.
3806
3807         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
3808         * tree-loop-distribution.c: Likewise.
3809
3810 2010-06-01  Jan Hubicka  <jh@suse.cz>
3811
3812         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
3813
3814 2010-06-01  Jan Hubicka  <jh@suse.cz>
3815
3816         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
3817         remove return value.
3818         (split_bbs_on_noreturn_calls) .... here.
3819         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
3820         * tree-flow.h (fixup_noreturn_call): New.
3821
3822 2010-06-01  Jan Hubicka  <jh@suse.cz>
3823
3824         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
3825
3826 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
3827
3828         * tree.h (build_nt_call_list): Delete.
3829         * tree.c (build_nt_call_list): Delete.
3830
3831 2010-06-01  Jan Hubicka  <jh@suse.cz>
3832
3833         * fwprop.c: Make emit-rtl.h include last.
3834         * rtlanal.c: Include emit-rtl.h.
3835         * genautomata.c: Output emit-rtl include into insn-automata.c
3836         * df-scan.c: Include emit-rtl.h.
3837         * haifa-sched.c: Indlude emit-rtl.h.
3838         * mode-switching.c: Indlude emit-rtl.h.
3839         * graph.c: Indlude emit-rtl.h.
3840         * sel-sched.c: Include emit-rtl.h.
3841         * sel-sched-ir.c: Include emit-rtl.h.
3842         * ira-build.c: Include emit-rtl.h.
3843         * emit-rtl.c: (first_insn, last_insn): Remove defines.
3844         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
3845         Move to emit-rtl.h.
3846         (set_new_first_and_last_insn, get_last_insn_anywhere,
3847         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
3848         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
3849         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
3850         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
3851         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
3852         Use accessor functions.
3853         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3854          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3855         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3856         mem_expr_equal_p): Move here from rtl.h.
3857         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
3858         Move here from emit-rtl.c; make inline.
3859         * cfglayout.h: Include emit-rtl.h.
3860         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3861          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3862         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3863         mem_expr_equal_p, get_insns, set_first-insn,
3864         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
3865         * reg-stack.c: Include emit-rtl.h.
3866         * dce.c: Likewise.
3867
3868 2010-06-01  Jan Hubicka  <jh@suse.cz>
3869
3870         * cgraph.h (tree_function_versioning): Update prototype.
3871         (cgraph_function_versioning): Update prototype.
3872         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
3873         bitmap.
3874         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
3875         (cgraph_materialize_clone, save_inline_function_body): Update use of
3876         tree_function_versioning.
3877         * tree-inline.c (copy_bb): Look for previous copied block to link
3878         after; fix debug output.
3879         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
3880         (copy_body): Likewise.
3881         (expand_call_inline): Update use of copy_body.
3882         (tree_function_versioning): Update use of copy body; accept
3883         blocks_to_copy and new_entry.
3884
3885 2010-06-01  Jan Hubicka  <jh@suse.cz>
3886
3887         * gegenrtl.c: Remove unnecesary prototypes.
3888         (gendecl): Remove.
3889         (gendef): Produce static inline.
3890         (gencode): Remove.
3891         (main): Do not decode parameters; generate header only.
3892         * Makefile.in (genrtl.c): Remove.
3893
3894 2010-06-01  Jan Hubicka  <jh@suse.cz>
3895
3896         * tree-switch-conversion.c (build_one_array): Make it readonly.
3897
3898 2010-06-01  Richard Guenther  <rguenther@suse.de>
3899
3900         * optabs.c (init_optabs): Guard all accesses to reinit.
3901         * ipa-pure-const.c (propagate): Fix another typo.
3902         * opts.c (common_handle_option): Split assignment to bool.
3903         * c-opts.c (c_common_handle_option): Likewise.
3904
3905 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
3906             Matthew Gingell  <gingell@adacore.com>
3907
3908         * doc/invoke.texi: Mention -fdump-ada-spec.
3909         * tree-dump.c (dump_files): Add ada-spec.
3910         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
3911         * tree-pass.h (tree_dump_index): Add TDI_ada.
3912         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
3913         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
3914         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
3915         * c-decl.c: Include c-ada-spec.h.
3916         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
3917         functions.
3918         (c_write_global_declarations): Add handling of -fdump-ada-spec.
3919         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
3920         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
3921         * c-ada-spec.h, c-ada-spec.c: New files.
3922
3923 2010-06-01  Richard Guenther  <rguenther@suse.de>
3924
3925         PR lto/43853
3926         * ipa-pure-const.c (get_function_state): Hand back varying state
3927         if we do not have one.
3928         (has_function_state): New function.
3929         (duplicate_node_data): Adjust.
3930         (remove_node_data): Likewise.
3931         (pure_const_write_summary): Likewise.
3932         (propagate): Likewise.  Fix typo.
3933
3934 2010-06-01  Jan Hubicka  <jh@suse.cz>
3935
3936         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
3937         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
3938         (execute_all_ipa_transforms): Do not play with the states.
3939
3940 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3941
3942         * config/arm/t-linux-androideabi: New.
3943         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
3944
3945 2010-06-01  Jan Hubicka  <jh@suse.cz>
3946
3947         * tree-inline.c (estimate_num_insns): For stdarg functions look
3948         into call statement to count cost of argument passing.
3949
3950 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
3951
3952         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
3953         argument for fprintf.
3954         (ix86_output_addr_diff_elt): Likewise.
3955         (x86_function_profiler): Likewise.
3956         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
3957         (LPREFIX): Likewise.
3958         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3959
3960 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
3961
3962         PR target/44338
3963         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
3964         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
3965         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
3966         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
3967         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
3968         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
3969         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
3970         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
3971         TARGET_FUSED_MADD.
3972
3973 2010-05-31  Jan Hubicka  <jh@suse.cz>
3974
3975         * tree.h (tree_range_check_failed): Declare noreturn.
3976
3977 2010-05-31  Jan Hubicka  <jh@suse.cz>
3978
3979         * gimple.c (gimple_call_builtin_p): New function.
3980         * gimple.h (gimple_call_builtin_p): Declare.
3981         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
3982         to exit.
3983         (execute_warn_function_return): BUILT_IN_RETURN is return.
3984         (split_critical_edges): Return edges are not critical.
3985         (is_ctrl_altering_stmt): Builtin_in_return is altering.
3986         (gimple_verify_flow_info): Handle built_in_return.
3987         (execute_warn_function_return): Handle built_in_return.
3988         * ipa-pure-const.c (check_call): Ignore builtin_return.
3989
3990 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
3991
3992         PR middle-end/44337
3993         * expr.c (expand_assignment): Don't store anything for out-of-bounds
3994         array accesses with non-MEM.
3995
3996         PR tree-optimization/44182
3997         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
3998         newly needs to end a bb is followed by debug stmts, instead return
3999         true from the function at the end.
4000         (maybe_move_debug_stmts_to_successors): New function.
4001         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
4002
4003 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
4004
4005         PR target/44161
4006         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
4007
4008 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
4009
4010         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
4011         for nested functions in non-optimized compilation.
4012
4013 2010-05-31  Richard Guenther  <rguenther@suse.de>
4014
4015         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
4016
4017 2010-05-30  Jan Hubicka  <jh@suse.cz>
4018
4019         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
4020
4021 2010-05-30  Richard Guenther  <rguenther@suse.de>
4022
4023         PR lto/42975
4024         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
4025         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
4026         no longer needed.
4027
4028 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
4029
4030         * config/darwin.c (output_objc_section_asm_op): Add comment.
4031         (name_needs_quotes): Add '_' to list of valid comment chars.
4032         (machopic_output_function_base_name): Remove unneeded quotes.
4033         (darwin_encode_section_info): Adjust asm whitespace.
4034         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
4035         (ASM_OUTPUT_LOCAL): Ditto.
4036         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
4037         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
4038         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
4039
4040 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4041
4042         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
4043         RS6000_OUTPUT_BASENAME unconditionally.
4044         (rs6000_output_function_epilogue): Likewise.
4045
4046 2010-05-30  Jan Hubicka  <jh@suse.cz>
4047
4048         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
4049         nodes.
4050
4051 2010-05-30  Richard Guenther  <rguenther@suse.de>
4052
4053         * tree-cfg.c (verify_gimple_assign_single): Implement
4054         verification for COND_EXPR rhs.
4055
4056 2010-05-30  Jan Hubicka  <jh@suse.cz>
4057
4058         * cgraph.h (cgraph_dump_file): Declare.
4059         * cgraphunit.c (cgraph_dump_file): Export.
4060         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
4061
4062 2010-05-30  Jan Hubicka  <jh@suse.cz>
4063
4064         * dwarf2out.c (reference_to_unused,
4065         premark_types_used_by_global_vars_helper): Avoid creation of new
4066         varpool nodes.
4067
4068 2010-05-30  Jan Hubicka  <jh@suse.cz>
4069
4070         * cgraph.h (cgraph_node_cannot_return,
4071         cgraph_edge_cannot_lead_to_return): New functions.
4072         * cgraph.c (cgraph_node_cannot_return,
4073         cgraph_edge_cannot_lead_to_return): Use them.
4074         * ipa-pure-const.c (pure_const_names): New static var.
4075         (check_call): Handle calls not leading to return.
4076         (pure_const_read_summary): Dump info read.
4077         (propagate): Dump info about propagation process; ignore side effects
4078         of functions not leading to exit; fix handling of pure functions.
4079
4080 2010-05-30  Jan Hubicka  <jh@suse.cz>
4081
4082         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
4083         for tail call epilogues.
4084
4085 2010-05-30  Jan Hubicka  <jh@suse.cz>
4086
4087         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
4088         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
4089         dump files.
4090
4091 2010-05-29  Jan Hubicka  <jh@suse.cz>
4092
4093         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
4094         node; remove references in node we no longer keep in cgrpah but need
4095         body of.
4096
4097 2010-05-29  Jan Hubicka  <jh@suse.cz>
4098
4099         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
4100
4101 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4102
4103         PR target/44165
4104         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
4105
4106 2010-05-29  Jan Hubicka  <jh@suse.cz>
4107
4108         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
4109         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
4110         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
4111         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
4112         debug_names_replaced_by, debug_update_ssa): Likewise.
4113         * sbitmap.c (debug_sbitmap): Likewise.
4114         * genrecog.c (debug_decision, debug_decision_list): Likewise.
4115         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
4116         debug_tree_chain): Likewise.
4117         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
4118         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
4119         * optabs.c  (debug_optab_libfuncs): Likewise.
4120         (verify_loop_closed_ssa): Likewise.
4121         * value-prof.c (verify_histograms): Likewise.
4122         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
4123         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
4124         * cfghooks.c (verify_flow_info): Likewise.
4125         * fold-const.c (debug_fold_checksum): Likewise.
4126         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
4127         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
4128         Likewise.
4129         * omega.c (debug_omega_problem): Likewise.
4130         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
4131         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
4132         * dominance.c (verify_dominators, debug_dominance_info,
4133         debug_dominance_tree): Likewise.
4134         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
4135         * df_regno_debug, df_ref_debug,
4136         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
4137         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
4138         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
4139         * sel-sched.c (debug_state): Likewise.
4140         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
4141         Likewise.
4142         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
4143         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
4144         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
4145         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
4146         Likewise.
4147         * c-pretty-print.c (debug_c_tree): Likewise.
4148         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
4149         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
4150         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
4151         * ebitmap.c (debug_ebitmap): Likewise.
4152         * function.c (debug_find_var_in_block_tree): Likewise.
4153         * print-rtl.c (debug_rtx): Likewise.
4154         (debug_rtx_count): Likewise.
4155         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
4156         * stor-layout.c (debug_rli): Likewise.
4157         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
4158         * tree-data-ref.c (debug_data_references,
4159         debug_data_dependence_relations, debug_data_reference,
4160         debug_data_dependence_relation, debug_rdg_vertex,
4161         debug_rdg_component, debug_rdg): Likewise.
4162         * tree-affine.c (debug_aff): Likewise.
4163         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
4164         Likewise.
4165         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
4166         * emit-rtl.c (verify_rtl_sharing): Likewise.
4167         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
4168         debug_value_expressions): Likewise.
4169         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
4170         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
4171         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
4172         * cfglayout.c (verify_insn_chain): Likewise.
4173         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
4174         debug_clast_stmt, debug_generated_program): Likewise.
4175         * ggc-page.c (debug_print_page_list): Likewise.
4176         * tree-ssa-ter.c (debug_ter): Likewise.
4177         * graphite-dependences.c (debug_pddr): Likewise.
4178         * sched-deps.c (debug_ds): Likewise.
4179         * tree-ssa.c (verify_ssa): Likewise.
4180         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
4181         debug_scattering_functions, debug_iteration_domains, debug_pdr,
4182         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
4183         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
4184         * tree-inline.c (debug_find_tree): Likewise.
4185         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
4186         debug_ppl_powerset_matrix): Likewise.
4187         * var-tracking.c (debug_dv): Likewise.
4188         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
4189         * cfgloop.c (verify_loop_structure): Likewise.
4190         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
4191         * c-common.c (verify_sequence_points): Likewise.
4192         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
4193         debug_candidates, debug_rgn_dependencies): Likewise.
4194         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
4195         * debug_constraint_graph, debug_solution_for_var,
4196         debug_sa_points_to_info): Likewise.
4197         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
4198         Likewie.
4199         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
4200         debug_loops, debug_loop, debug_loop_num): Likewise.
4201         * passes.c (debug_pass): Likewise.
4202         (dump_properties): Likewise; add cfglayout property.
4203         (debug_properties): Likewise.
4204         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
4205         * varpool.c (debug_varpool): Likewise.
4206         * regcprop.c (debug_value_data): Likewise.
4207         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
4208         debug_immediate_uses_for): Likewise.
4209
4210 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4211
4212         PR bootstrap/44315
4213         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
4214         Filter out insn-flags.h.
4215
4216 2010-05-29  Jan Hubicka  <jh@suse.cz>
4217
4218         * cgraph.h (struct varpool_node_set_def,
4219         struct cgraph_node_set_def): Remove unused AUX pointer.
4220         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
4221         VEC_empty macro.
4222
4223 2010-05-29  Jan Hubicka  <jh@suse.cz>
4224
4225         PR middle-end/44324
4226         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
4227
4228 2010-05-29  Richard Guenther  <rguenther@suse.de>
4229
4230         * lto-streamer.c (cached_bp): New global variable.
4231         (bitpack_create): Return the cached bitpack, if available.
4232         (bitpack_delete): Clear and cache the bitpack, if appropriate.
4233         (bp_pack_value): Remove redundant asserts.
4234
4235 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4236
4237         PR middle-end/44306
4238         * tree-if-conv.c (is_true_predicate): New.
4239         (is_predicated): Use is_true_predicate.
4240         (add_to_predicate_list): Same.  Do not use unshare_expr.
4241         (add_to_dst_predicate_list): Same.
4242
4243 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
4244
4245         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
4246         field on edges.
4247         (predicate_bbs): Same.
4248         (clean_predicate_lists): Same.
4249         (find_phi_replacement_condition): Do not AND the predicate from
4250         edge->aux.
4251
4252 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4253
4254         PR bootstrap/44315
4255         * Makefile.in (build/gencondmd.o): Add a missing `\'.
4256
4257 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4258
4259         PR target/44261
4260         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
4261         (negdf2): Adjust expander pattern and use negdf2_slow.
4262         (negsf2): Likewise.
4263
4264 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
4265
4266         * basic-block.h (struct control_flow_graph): Move last_label_uid field
4267         up.
4268         * df.h (struct df_base_ref): Move regno field up.
4269         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
4270         * expr.h (struct separate_ops): Move location field up.
4271         * optabs.h (struct optab_d): Move libcall_basename field down.
4272         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
4273         * config/i386/i386.h (struct machine_function): Convert call_abi field
4274         into a bitfield.  Move cfa field to the end of the structure.
4275
4276 2010-05-29  Jan Hubicka  <jh@suse.cz>
4277
4278         * varpool.c (varpool_get_node): Fix lookup.
4279
4280 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4281
4282         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
4283         RTL specific prototypes with #ifdef RTX_CODE.
4284         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
4285         * config/spu/t-spu-elf: Fix dependencies.
4286
4287         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
4288
4289 2010-05-29  Mike Stump  <mikestump@comcast.net>
4290
4291         PR bootstrap/44315
4292         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
4293         TM_H when building to avoid dependency loops.
4294
4295 2010-05-29  Jan Hubicka  <jh@suse.cz>
4296
4297         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
4298         refs and body; not the whole node for masters of materialized clones.
4299
4300 2010-05-29  Mike Stump  <mikestump@comcast.net>
4301
4302         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
4303
4304 2010-05-29  Jan Hubicka  <jh@suse.cz>
4305
4306         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
4307         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
4308         use of clone_function_name.
4309         * cgraph.h (cgraph_create_virtual_clone,
4310         cgraph_function_versioning): update prototypes.
4311         (clone_function_name): Declare.
4312         * ipa-cp.c (ipcp_insert_stage): Update call of
4313         cgraph_create_virtual_clone.
4314         * omp-low.c (create_omp_child_function_name): Use
4315         cgraph_create_virtual_clone.
4316         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
4317         (cgraph_function_versioning): Take SUFFIX argument; produce new name
4318         and make decl local.
4319
4320 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4321
4322         * vec.h: Include statistics.h
4323         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
4324         with VEC_H.
4325
4326 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4327
4328         * c-lex.c: Do not include c-tree.h.
4329         * c-pretty-print.c: Likewise.
4330         * c-opts.c: Likewise.
4331         * c-gimplify.c: Likewise.
4332         * c-common.c: Likewise.
4333         * c-dump.c: Likewise.  Include c-common.h.
4334
4335 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4336
4337         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
4338         before including diagnostic-core.h.
4339         (c_cpp_error): New prototype moved from c-tree.h.
4340         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
4341         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
4342         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
4343         (c_cpp_error): Prototype moved to c-common.h.
4344         * Makefile.in: Update dependency for C_COMMON_H.
4345
4346 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
4347
4348         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
4349         * c-common.c (c_register_addr_space): Remove here.
4350         * c-decl.c (c_register_addr_space): Re-add here.
4351
4352 2010-05-28  Mike Stump  <mikestump@comcast.net>
4353
4354         * config/darwin-c.c: Remove c-tree.h include.
4355
4356 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4357
4358         * gcc.c: Include diagnostic.h.
4359         (error_count): Remove.  All users changed to use errorcount.
4360         (programname): Remove.  All users changed to use progname.
4361         (fancy_abort, internal_error, fatal_error, error, warning, inform,
4362         fnotice): Remove.
4363         (execute): Don't include "Internal error" and bug reporting
4364         information in argument of internal_error call.
4365         (process_command): Don't increment error_count after calling
4366         perror_with_name.
4367         (input_filename): Rename to gcc_input_filename.  All users
4368         changed.
4369         (main): Call diagnostic_initialize.  Register delete_temp_files
4370         with atexit.  Use seen_error to test for errors.
4371         * gcc.h: Include diagnostic-core.h.
4372         (fatal_error, error, warning): Remove.
4373         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
4374         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
4375         (gcc.o): Update dependencies.
4376
4377 2010-05-28  Jeff Law  <law@redhat.com>
4378
4379         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
4380         functions.
4381         * ira.h (ira_bad_reload_regno): Declare
4382         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
4383
4384         * ira-color.c (update_curr_costs): Free updated hard reg costs.
4385         (ira_reassign_conflict_allocnos): Remove bogus asserts.
4386         (allocno_reload_assign): Likewise.
4387
4388 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
4389
4390         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
4391         build1_stat.
4392
4393 2010-05-28  Richard Guenther  <rguenther@suse.de>
4394
4395         PR lto/44312
4396         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
4397         Stream fixed-point constants mode.
4398         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
4399         and TYPE_PRECISION.
4400         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
4401         Stream fixed-point constants mode.
4402         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
4403         and TYPE_PRECISION.
4404
4405 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4406
4407         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
4408         only place it was called from.
4409         (number_of_latch_executions): Do not return chrec_dont_know when the
4410         may_be_zero is a runtime condition: instead, return a COND_EXPR
4411         including the may_be_zero condition.
4412         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
4413         of nb_iterations.
4414         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
4415         COND_EXPRs.
4416
4417 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4418
4419         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
4420         generate COND_EXPRs for degenerate_phi_result.
4421
4422 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
4423
4424         PR middle-end/44293
4425         * tree-if-conv.c (if_convertible_loop_p): Check the
4426         if-convertibility of phi nodes in non predicated BBs.
4427
4428 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4429
4430         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
4431
4432 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4433
4434         PR driver/15303
4435         * gcc.c (inform, warning, inform): New functions.
4436         (fatal_ice): Rename to internal_error; change cmsgid parameter to
4437         gmsgid.  All callers changed.
4438         (notice): Rename to fnotice; add parameter fp.  All callers changed.
4439         (fatal_error): Rename to fatal_signal.  All users changed.
4440         (fatal): Rename to fatal_error; change cmsgid parameter to
4441         gmsgid.  All callers changed.
4442         (process_command): Use warning instead of error for warnings.
4443         (end_going_arg): Don't use _() around argument of error.
4444         (do_spec_1): Use inform for message from %n specs.  Use warning
4445         instead of error for warnings.
4446         (main): Use inform for comparison messages.  Use warning for
4447         message about unused linker input.
4448         (error): Increment error_count.  Print "error: ".
4449         * gcc.h (fatal): Change to fatal_error.
4450         (warning): Declare.
4451         * config/darwin-driver.c (darwin_default_min_version): Use warning
4452         instead of fprintf for warnings.
4453         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
4454
4455 2010-05-28  Julian Brown  <julian@codesourcery.com>
4456
4457         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
4458         (*thumb2_addsi3_compare0_scratch): New.
4459         * config/arm/constraints.md (Pv): New.
4460         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
4461         for ARM mode only.
4462         (*addsi3_compare0_scratch): Likewise.
4463
4464 2010-05-28  Jan Hubicka  <jh@suse.cz>
4465
4466         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
4467         check.
4468         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
4469         only on local statics.
4470
4471 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
4472
4473         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
4474
4475 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
4476
4477         PR bootstrap/44314
4478         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
4479         (OPTION_GLIBC): Define.
4480
4481 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
4482
4483         PR debug/41048
4484         * dwarf2out.c (double_int_type_size_in_bits): New function.
4485         (round_up_to_align): Change first argument and return value to
4486         double_int.
4487         (field_byte_offset): Work internally on double_ints.
4488
4489         PR target/43636
4490         * builtins.c (expand_movstr): Use a temporary pseudo instead
4491         of target even when target is not NULL and not const0_rtx, but
4492         fails movstr predicate.
4493         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
4494
4495 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
4496
4497         * final.c (rest_of_clean_state): Use %m in errors instead of
4498         strerror (errno).
4499         * gengtype.c (read_input_list, close_output_files): Use xstrerror
4500         instead of strerror.
4501         * toplev.c (process_options): Use %m in errors instead of strerror
4502         (errno).
4503         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
4504         (errno).
4505
4506 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
4507
4508         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
4509         (ix86_canonical_va_list_type): Make static.  Add declaration.
4510         (ix86_enum_va_list): Make static.  Reindent.
4511         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
4512         (ix86_canonical_va_list_type): Ditto.
4513         (ix86_enum_va_list): Ditto.
4514
4515 2010-05-28  Richard Guenther  <rguenther@suse.de>
4516
4517         * lto-wrapper.c (run_gcc): With -save-temps generate a
4518         user-visible ltrans filename.  Fixup ltrans unit numbering.
4519
4520 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
4521
4522         * c-common.c (c_common_nodes_and_builtins): Replace use
4523         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
4524         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
4525         to ix86_enum_va_list.
4526         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
4527         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
4528         (TARGET_ENUM_VA_LIST_P): Add hook description.
4529         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
4530         * target.h (gcc_target): Add enum_va_list hook.
4531
4532         PR bootstrap/44299
4533         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
4534         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
4535         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
4536
4537 2010-05-28  Alan Modra  <amodra@gmail.com>
4538
4539         PR target/44266
4540         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
4541         emit_library_call machinery to set up __tls_get_addr calls.
4542
4543 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4544
4545         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
4546
4547 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
4548
4549         Revert fix for PR c++/44188
4550         * c-common.c (is_typedef_decl): Revert the moving of  this
4551         definition ...
4552         * tree.c (is_typedef_decl): ... here.
4553         (typdef_variant_p): Revert the moving of this  definition
4554         here from gcc/cp/tree.c.
4555         * c-common.h (is_typedef_decl): Revert the moving of this
4556         declaration ...
4557         * tree.h (is_typedef_decl): ... here.
4558         (typedef_variant_p): Revert the moving of this  declaration here
4559         from gcc/cp/cp-tree.h
4560         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
4561         (gen_tagged_type_die): Revert the splitting out of ...
4562         (gen_type_die_with_usage): ... this function. Revert the anonymous
4563         tagged type handling.
4564         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
4565         typedefs naming anonymous tagged types.
4566
4567 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
4568
4569         * config/rs6000/rs6000-modes.def (PSImode): Delete.
4570
4571 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
4572
4573         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
4574         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
4575         throughout.
4576         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
4577         "xer" to "ca".
4578         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
4579         XER_REGS to CA_REGS throughout.
4580         * config/rs6000/rs6000.h: Same.
4581         (ADDITIONAL_REGISTER_NAMES): Add "xer".
4582         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
4583         that mode_iterator "P" is the size for arithmetic carries as well.
4584         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
4585
4586 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
4587
4588         PR bootstrap/44255
4589         * combine.c (struct rtx_subst_pair): Define unconditionally.
4590         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
4591         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
4592         Call make_compound_operation on pair->to.
4593         (propagate_for_debug): Don't call make_compound_operation here.
4594         Always use simplify_replace_fn_rtx.
4595
4596 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
4597
4598         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
4599         * config/xtensa/xtensa.c (override_options): Check
4600           TARGET_FORCE_NO_PIC and set flag_pic.
4601         * config/xtensa/xtensa.opt: Document -mforce-no-pic
4602
4603 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
4604
4605         PR bootstrap/44299
4606         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
4607         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
4608
4609 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
4610
4611         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
4612         toplev.h.
4613         * diagnostic.c: Don't include toplev.h.
4614         (progname): Define.  Moved from toplev.c.
4615         (seen_error): New function.
4616         * diagnostic.h: Include diagnostic-core.h.
4617         (diagnostic_t, emit_diagnostic): Don't declare here.
4618         * toplev.c (progname): Move to toplev.c.
4619         (emit_debug_global_declarations, compile_file, finalize,
4620         do_compile, toplev_main): Use seen_error.
4621         * toplev.h: Include diagnostic-core.h.
4622         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
4623         internal_error, warning, warning_at, error, error_n, error_at,
4624         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
4625         verbatim, fnotice, progname): Move to diagnostic-core.h.
4626         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
4627         (expand_builtin_expect): Use seen_error.
4628         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
4629         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
4630         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
4631         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
4632         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
4633         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
4634         errorcount for errors.
4635         * c-opts.c (c_common_finish): Use seen_error.
4636         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
4637         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
4638         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
4639         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
4640         (get_coverage_counts): Use seen_error.
4641         * dwarf2out.c (dwarf2out_finish): Use seen_error.
4642         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
4643         gimplify_body): Use seen_error.
4644         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
4645         * ipa-pure-const.c (gate_pure_const): Use seen_error.
4646         * ipa-reference.c (gate_reference): Use seen_error.
4647         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
4648         * lambda-code.c: Include diagnostic-core.h instead of
4649         diagnostic.h.
4650         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
4651         * lto-compress.c: Include diagnostic-core.h instead of
4652         diagnostic.h.
4653         * lto-section-in.c: Include diagnostic-core.h instead of
4654         diagnostic.h.
4655         * lto-streamer-out.c: Include diagnostic-core.h instead of
4656         diagnostic.h.
4657         * lto-streamer.c: Include diagnostic-core.h instead of
4658         diagnostic.h.
4659         (gate_lto_out): Use seen_error.
4660         * matrix-reorg.c: Include diagnostic-core.h instead of
4661         diagnostic.h.
4662         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
4663         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
4664         (gate_expand_omp, lower_omp_1): Use seen_error.
4665         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
4666         (rest_of_decl_compilation, rest_of_type_compilation,
4667         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
4668         * tree-cfg.c (label_to_block_fn): Use seen_error.
4669         * tree-inline.c (optimize_inline_calls): Use seen_error.
4670         * tree-mudflap.c (mudflap_finish_file): Use
4671         seen_error.
4672         * tree-optimize.c (gate_all_optimizations,
4673         gate_all_early_local_passes, gate_all_early_optimizations): Use
4674         seen_error.
4675         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
4676         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
4677         (varpool_remove_unreferenced_decls,
4678         varpool_assemble_pending_decls): Use seen_error.
4679         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
4680         (TOPLEV_H, DIAGNOSTIC_H): Update.
4681         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
4682         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
4683         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
4684         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
4685         coverage.o, lambda-code.o): Update dependencies.
4686
4687 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
4688
4689         PR c++/44188
4690         * c-common.c (is_typedef_decl): Move this definition ...
4691         * tree.c (is_typedef_decl): ... here.
4692         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
4693         * c-common.h (is_typedef_decl): Move this declaration ...
4694         * tree.h (is_typedef_decl): ... here.
4695         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
4696         * dwarf2out.c (is_naming_typedef_decl): New function.
4697         (gen_tagged_type_die): Split out of ...
4698         (gen_type_die_with_usage): ... this function. When an anonymous
4699         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
4700         is emitted for the typedef.
4701         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
4702         anonymous tagged types.
4703
4704 2010-05-27  Jason Merrill  <jason@redhat.com>
4705
4706         * print-tree.c (debug_vec_tree): New fn.
4707         (print_vec_tree): New fn.
4708         * tree.h: Declare them.
4709         * gdbinit.in (pvt): New command.
4710
4711         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
4712
4713         * gdbinit.in (pdd): New command.
4714
4715 2010-05-27  Jan Hubicka  <jh@suse.cz>
4716
4717         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
4718         (update_caller_keys): Return early if there are no callers;
4719         only update fibheap when decresing the key.
4720         (update_callee_keys): Avoid recursion.
4721         (decide_inlining_of_small_functions): When badness does not match;
4722         re-insert into fibheap.
4723
4724 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
4725
4726         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
4727         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
4728         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
4729         (ALL_HOST_OBJS): Now a union of the above two.
4730         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
4731         all files in ALL_HOST_FRONTEND_OBJS.
4732         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
4733
4734         * c-common.c: Pretend to be a backend file by undefining
4735         IN_GCC_FRONTEND (still need rtl.h here).
4736
4737 2010-05-27  Jan Hubicka  <jh@suse.cz>
4738
4739         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
4740         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
4741
4742 2010-05-27  Jan Hubicka  <jh@suse.cz>
4743
4744         * sched-ebb.c: Rename struct deps to struct deps_desc.
4745         * ddg.c: Likewise.
4746         * sel-sched-ir.c: Likewise.
4747         * sched-deps.c: Likewise.
4748         * sched-int.h: Likewise.
4749         * sched-rgn.c: Likewise.
4750
4751 2010-05-27  Jon Beniston <jon@beniston.com>
4752
4753         PR 43726
4754         * config/lm32/lm32.h: Remove definition of
4755         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
4756
4757 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4758
4759         PR lto/44230
4760         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
4761
4762 2010-05-27  Richard Guenther  <rguenther@suse.de>
4763
4764         PR tree-optimization/44284
4765         * tree-vect-stmts.c (vectorizable_assignment): Handle
4766         sign-changing conversions as simple copy.
4767
4768 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4769
4770         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
4771         Bionic C library.
4772         (__gthread_active_p): Check for pthread_create if compiling against
4773         Bionic C library.
4774
4775 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4776
4777         Support compilation for Android platform.  Reimplement -mandroid.
4778
4779         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
4780         (*android*): Set ANDROID_DEFAULT.
4781         (arm*-*-linux*): Include linux-android.h.
4782         (arm*-*-eabi*): Don't include previous -mandroid implementation.
4783         * config/arm/eabi.h: Remove, move Android-specific parts ...
4784         * config/linux-android.h: ... here.  New file.
4785         * config/arm/eabi.opt: Rename to ...
4786         * config/linux-android.opt: ... this.
4787         (mandroid): Allow -mno-android option.  Initialize based on
4788         ANDROID_DEFAULT.
4789         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
4790         Move logic to corresponding LINUX_TARGET_* macros.
4791         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
4792         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
4793         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
4794         Android definitions.
4795         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
4796         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
4797         Document.
4798
4799 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
4800
4801         Add support for Bionic C library
4802
4803         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
4804         macro.
4805         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
4806         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
4807
4808         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
4809         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
4810         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
4811         to support multiple C libraries.  Handle Bionic.
4812         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
4813         (BIONIC_DYNAMIC_LINKER64): Define.
4814         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
4815         Update.
4816         (TARGET_HAS_SINCOS): Enable for Bionic.
4817
4818         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
4819         the last option specified on command line take effect.
4820         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
4821         (mbionic): New.
4822         (mglibc, muclibc): Update.
4823
4824         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
4825         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
4826         DEFAULT_LIBC.
4827
4828         * doc/invoke.texi (-mglibc, -muclibc): Update.
4829         (-mbionic): Document.
4830
4831 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4832
4833         * c-common.h (c_register_addr_space): Add prototype.
4834         (ADDR_SPACE_KEYWORD): Remove.
4835         * c-common.c (c_register_addr_space): New function.
4836         (c_addr_space_name): Reimplement.
4837         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
4838
4839         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
4840         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
4841
4842         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
4843         Remove TARGET_ADDR_SPACE_KEYWORDS.
4844
4845 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
4846
4847         * input.c: New file.
4848         * input.h (main_input_filename): Move declaration to toplev.h.
4849         * toplev.c (input_location, line_table): Move to input.c
4850         * toplev.h (main_input_filename): Move declaration from input.h.
4851         * tree.c (expand_location): Move to input.c.
4852         * Makefile.in (OBJS-common): Add input.o.
4853         (input.o): Add dependencies.
4854
4855 2010-05-27  Richard Guenther  <rguenther@suse.de>
4856
4857         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
4858         for non-existant files.
4859         (fork_execute): Mark args_name file as deleted.
4860
4861 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
4862
4863         PR bootstrp/44287
4864         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
4865         (narrow_signed_type): Likewise.
4866
4867 2010-05-26  Jan Hubicka  <jh@suse.cz>
4868
4869         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
4870         edge only when checking is enabled; check using former_clone_of;
4871         check inline clones too.
4872         (cgraph_materialize_clone): Record former_clone_of pointer.
4873         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
4874         combining redirections; dump args_to_skip bitmap
4875         (cgraph_materialize_all_clones): Do no redirection here.
4876         * ipa-inline.c (inline_transform): Do redirection here.
4877         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
4878         cheking only).
4879
4880 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
4881
4882         * config/avr/avr-c.c: Do not include regs.h.
4883         Include cpplib.h for cpp_define and tree.h for c-common.h.
4884         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
4885         * config/avr/t-avr: Fix dependencies for avr-c.o.
4886
4887 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
4888
4889         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
4890         string instead of SYMBOL_REF rtx.
4891         * rtl.h (set_stack_check_libfunc): Move prototype from here...
4892         * libfuncs.h: ...to here.  Adjust for explow.c change.
4893
4894 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
4895
4896         * pretty-print.c: Don't include ggc.h.
4897         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
4898         (identifier_to_locale): Use them for allocation.
4899         * pretty-print.h (identifier_to_locale_alloc,
4900         identifier_to_locale_free): Declare.
4901         * toplev.c (alloc_for_identifier_to_locale): New.
4902         (general_init): Set identifier_to_locale_alloc and
4903         identifier_to_locale_free.
4904         * Makefile.in (pretty-print.o): Update dependencies.
4905
4906 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4907
4908         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
4909         pointer types if they have different alignment or mode.
4910
4911 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
4912
4913         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4914         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4915         * config/sparc/sparc-protos.h (function_value): Remove declaration.
4916         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
4917         sparc_function_value_regno_p): New functions.
4918         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4919         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4920         (function_value): Rename to...
4921         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
4922         argument to 'outgoing'.
4923         (function_arg_record_value, function_arg_union_value,
4924         function_arg_vector_value): Update comment.
4925
4926 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4927
4928         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
4929         (fde_needed_for_eh_p): New predicate.
4930         (output_call_frame_info): Use it throughout to decide whether FDEs
4931         are needed for EH purpose.
4932         (dwarf2out_begin_prologue): Reorder assignments.
4933
4934 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4935
4936         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
4937         special case loop->header.
4938         (is_predicated): New.
4939         (if_convertible_loop_p): Call it.
4940
4941 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4942
4943         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
4944         iterator in parameter.  Do not generate code during the analysis.
4945         (tree_if_convert_cond_stmt): Removed.
4946         (tree_if_convert_stmt): Removed.
4947         (predicate_bbs): New.
4948         (if_convertible_loop_p): Call predicate_bbs.
4949         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
4950         now contains all the analysis part.
4951
4952 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4953
4954         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
4955         statements in the analysis part.
4956         (tree_if_convert_stmt): Update comment.
4957         (remove_conditions_and_labels): New.
4958         (combine_blocks): Call remove_conditions_and_labels.
4959         (tree_if_conversion): Update comment.
4960
4961 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4962
4963         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
4964         than 2 predecessors or more than 2 successors.
4965
4966 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4967
4968         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
4969         of loops in which the data dependence analysis fails.
4970
4971 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4972
4973         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
4974         CDI_POST_DOMINATORS.
4975         (tree_if_conversion): Same.
4976
4977 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4978
4979         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
4980
4981 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
4982
4983         * tree-if-conv.c: Update copyright years.  Fix comments.
4984         Fix indentation.
4985
4986 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
4987
4988         * builtin-types.def (BT_INT128): New primitive type.
4989         (BT_UINT128): Likewise.
4990         * c-common.c (c_common_r): Add __int128 keyword.
4991         (c_common_type_for_size): Handle __int128.
4992         (c_common_type_for_mode): Likewise.
4993         (c_common_signed_or_unsigned_type): Likewise.
4994         (c_common_nodes_and_builtins): Add builtin type
4995         if target supports 128-bit integer scalar.
4996         * c-common.h (enum rid): Add RID_INT128.
4997         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
4998         if target supports 128-bit integer scalar.
4999         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
5000         (finish_declspecs): Likewise.
5001         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
5002         (c_token_starts_declspecs): Likewise.
5003         (c_parser_declspecs): Likewise.
5004         (c_parser_attributes): Likewise.
5005         (c_parser_objc_selector): Likewise.
5006         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
5007         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
5008         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
5009         * tree.c (make_or_reuse_type): Likewise.
5010         (make_unsigned_type): Likewise.
5011         (build_common_tree_nodes_2): Likewise.
5012         * tree.h (enum integer_type_kind): Add itk_int128 and
5013         itk_unsigned_int128.
5014         (int128_integer_type_node): New define.
5015         (int128_unsigned_type_node): New define.
5016         * doc/extend.texi: Add documentation about __int128 type.
5017
5018 2010-05-26  Richard Guenther  <rguenther@suse.de>
5019
5020         * tree-ssa-sccvn.c (copy_nary): Adjust.
5021         (copy_phis): Rename to ...
5022         (copy_phi): ... this.  Adjust.
5023         (copy_references): Rename to ...
5024         (copy_reference): ... this.  Adjust.
5025         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
5026         result into the valid table.
5027
5028 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5029
5030         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
5031         insn-config.h, insn-codes.h, recog.h, and optabs.h.
5032
5033 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5034
5035         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
5036
5037 2010-05-26  Richard Guenther  <rguenther@suse.de>
5038
5039         * opts.c (common_handle_option): Handle OPT_Ofast.
5040
5041 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
5042
5043         * diagnostic.c: Don't include opts.h.
5044         (permissive_error_option): Define.
5045         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
5046         for classify_diagnostic.  Don't use memset for
5047         classify_diagnostic.  Initialize new and recently added fields.
5048         (diagnostic_classify_diagnostic): Use context->n_opts instead of
5049         N_OPTS.
5050         (diagnostic_report_diagnostic): Pass context parameter to
5051         diagnostic_report_warnings_p.  Use option_enabled and option_name
5052         hooks from context.
5053         (emit_diagnostic): Use permissive_error_option.
5054         (permerror): Likewise.
5055         * diagnostic.h: Don't include options.h.
5056         (struct diagnostic_context): Add n_opts, opt_permissive,
5057         inhibit_warnings, warn_system_headers, option_enabled and
5058         option_name fields.  Change classify_diagnostic to a pointer.
5059         * opts-diagnostic.h: New file.
5060         * opts.c: Include opts-diagnostic.h.
5061         (common_handle_option): Set global_dc fields for -Wfatal-errors,
5062         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
5063         (option_name): New function.
5064         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
5065         (c_common_handle_option): Set global_dc->permissive for
5066         -fpermissive.
5067         * c-common.c (c_cpp_error): Save and restore
5068         global_dc->warn_system_headers, not variable warn_system_headers.
5069         * toplev.c: Include opts-diagnostic.h.
5070         (general_init): Update call to diagnostic_initialize.  Set
5071         global_dc->show_column, global_dc->option_enabled and
5072         global_dc->option_name.
5073         (process_options): Don't set global_dc fields here.
5074         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
5075         (diagnostic.o, opts.o, toplev.o): Update dependencies.
5076
5077 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5078
5079         * config/picochip/picochip.md (movsi): Split a movsi from a
5080         const after reload.
5081
5082 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5083
5084         * ggc-zone.c: Update copyright year.
5085         (poison_region): Mark memory for Valgrind as undefined before
5086         memset () call and inaccessible afterwards.
5087         (ggc_pch_total_size): Change type of i to int.
5088
5089 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5090
5091         * ggc-common.c (ggc_free_overhead): Allow empty slot.
5092
5093 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5094
5095         * ggc-common.c: Update copyright year.
5096         (ggc_rlimit_bound): Remove prototype.  Compile only if
5097         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
5098         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
5099         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
5100         (ggc_min_heapsize_heuristic): Likewise.
5101
5102 2010-05-26  Richard Guenther  <rguenther@suse.de>
5103
5104         PR rtl-optimization/44164
5105         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
5106         no-common access-path disambiguation.
5107         (indirect_ref_may_alias_decl_p): Adjust.
5108         (indirect_refs_may_alias_p): Likewise.
5109         (refs_may_alias_p_1): Likewise.
5110
5111 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5112
5113         * c-typeck.c: Do not include expr.h.
5114
5115 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
5116
5117         * rtl.h (decl_default_tls_model): Move prototype from here...
5118         * output.h: ...to here.
5119         * c-decl.c: Do not include rtl.h.
5120         * c-pragma.c: Likewise.
5121         * c-parser.c: Likewise.
5122         * c-gimplify.c: Likewise.  And also not hard-reg-set.
5123         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
5124         FIXME note for it.  Add a FIXME note for expr.h.
5125         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
5126         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
5127         defined.
5128
5129 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
5130
5131         PR target/44199
5132         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
5133         or total_size is larger than red zone size for non-V4 ABI, emit a
5134         stack_tie resp. frame_tie insn before stack pointer restore.
5135         * config/rs6000/rs6000.md (frame_tie): New insn.
5136
5137 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5138
5139         * function.h (struct function): Add can_throw_non_call_exceptions bit.
5140         * lto-streamer-in.c (input_function): Stream it in.
5141         * lto-streamer-out.c (output_function): Stream it out.
5142         * function.c (allocate_struct_function): Set it.
5143         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
5144         for flag_non_call_exceptions.
5145         * cfgbuild.c (control_flow_insn_p): Likewise.
5146         (make_edges): Likewise.
5147         * cfgexpand.c (expand_stack_alignment): Likewise.
5148         * combine.c (distribute_notes): Likewise.
5149         * cse.c (cse_extended_basic_block): Likewise.
5150         * except.c (insn_could_throw_p): Likewise.
5151         * gcse.c (simple_mem): Likewise.
5152         * ipa-pure-const.c (check_call): Likewise.
5153         (check_stmt ): Likewise.
5154         * lower-subreg.c (lower-subreg.c): Likewise.
5155         * optabs.c (emit_libcall_block): Likewise.
5156         (prepare_cmp_insn): Likewise.
5157         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
5158         * postreload.c (rest_of_handle_postreload): Likewise.
5159         * reload1.c (reload_as_needed): Likewise.
5160         (emit_input_reload_insns): Likewise.
5161         (emit_output_reload_insns): Likewise.
5162         (fixup_abnormal_edges): Likewise.
5163         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
5164         * store-motion.c (find_moveable_store): Likewise.
5165         * tree-eh.c (stmt_could_throw_p): Likewise.
5166         (tree_could_throw_p): Likewise.
5167         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
5168         * config/arm/arm.c (arm_expand_prologue): Likewise.
5169         (thumb1_expand_prologue): Likewise.
5170         * config/rx/rx.md (cbranchsf4): Likewise.
5171         (cmpsf): Likewise.
5172         * config/s390/s390.c (s390_emit_prologue): Likewise.
5173         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
5174         (inline_forbidden_into_p): New predicate.
5175         (expand_call_inline): Use it to forbid inlining.
5176         (tree_can_inline_p): Likewise.
5177
5178 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5179
5180         * config/i386/i386-c.c: Do not include rtl.h.
5181         * config/i386/t-i386: Update dependencies.
5182
5183 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5184
5185         * attribs.c: Do not include rtl.h.
5186         * Makefile.in: Update dependencies.
5187
5188 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
5189
5190         * double-int.h (double_int_and): New.
5191         * combine.c (try_combine): Clean up, use double_int_* and
5192         immed_double_int_const functions.
5193
5194 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5195
5196         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
5197         stderr to /dev/null instead of grep -q.
5198         * configure: Regenerate.
5199
5200 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
5201
5202         * Makefile.in (EXCEPT_H): Fix typo.
5203
5204 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
5205
5206         * ira-build.c (update_conflict_hard_reg_costs): New.
5207         (ira_build): Call update_conflict_hard_reg_costs.
5208
5209 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5210
5211         PR debug/41371
5212         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
5213         ENABLE_CHECKING.
5214         (intersect_loc_chains): Walk the s2var's loc_chain together
5215         with s1node chain as long as the locations are equal, don't
5216         call find_loc_in_1pdv in that case.
5217
5218         PR debug/42801
5219         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
5220         (copy_bind_expr): ... instead of here.
5221         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
5222         if the block hasn't been remapped.
5223         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
5224         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
5225
5226 2010-05-25  Richard Guenther  <rguenther@suse.de>
5227
5228         PR middle-end/44069
5229         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
5230         out-of-bounds array accesses.
5231
5232 2010-05-25  Richard Guenther  <rguenther@suse.de>
5233
5234         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
5235         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
5236         (run_gcc): Re-organize to make cleanup easier.
5237
5238 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5239
5240         * config/s390/s390.c (optimization_options): Fix and move the
5241         flag_prefetch_loop_arrays override ...
5242         (override_options): ... here.
5243
5244 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
5245
5246         * diagnostic.c: Don't include plugin.h.
5247         (diagnostic_report_diagnostic): Don't handle plugins specially
5248         here.  Pass context to internal_error callback.
5249         * diagnostic.h (struct diagnostic_context): Add context parameter
5250         to internal_error callback.
5251         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
5252         * plugin.h (struct diagnostic_context): Declare.
5253         (warn_if_plugins, plugins_internal_error_function): Declare.
5254         * toplev.c (general_init): Set global_dc->internal_error.
5255         * Makefile.in (diagnostic.o): Update dependencies.
5256
5257 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
5258
5259         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
5260         * config/rs6000/t-darwin64: New.
5261         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
5262         build crt2.
5263
5264 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
5265
5266         PR 44203
5267         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
5268         match the original (and intended) behaviour before r159557.  This
5269         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
5270         in two ways.
5271
5272 2010-05-25  Richard Guenther  <rguenther@suse.de>
5273
5274         * doc/invoke.texi: Document -Ofast.
5275         * target.h (struct gcc_target): Add handle_ofast.
5276         * target-def.h (TARGET_HANDLE_OFAST): Add.
5277         (TARGET_INITIALIZER): Adjust.
5278         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
5279         * common.opt (Ofast): Add.
5280
5281 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5282
5283         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
5284         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
5285
5286 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
5287
5288         PR target/43610
5289         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
5290         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
5291         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
5292         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
5293
5294 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
5295
5296         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
5297         DW_OP_minus with negated offset instead of DW_OP_plus.
5298         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
5299
5300 2010-05-25  Wei Guozhi  <carrot@google.com>
5301
5302         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
5303         tst instruction and a new alternative.
5304         * config/arm/constraints.md (Pu): New constraint.
5305
5306 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
5307
5308         * function.c (assign_stack_local_1): Initialize variable
5309         to avoid warning when bootstrapping at -O3.
5310
5311 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
5312
5313         * configure.ac (all_lang_makefiles): Remove everything related to it.
5314         * configure: Regenerate.
5315         * Makefile.in: Fix reference to ada Make-lang.in.
5316         Remove support for LANG_MAKEFILES.
5317
5318 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
5319             Sandra Loosemore  <sandra@codesourcery.com>
5320
5321         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
5322         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
5323         description.  Add arm_neon_fp16_ok.
5324         (Add Options): Add arm_neon and arm_neon_fp16.
5325
5326 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
5327
5328         * diagnostic.c: Don't include flags.h.
5329         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
5330         context parameters.  Check flags in the context passed as a parameter.
5331         (diagnostic_build_prefix): Add context parameter.  Check
5332         show_column flag in context.
5333         (diagnostic_action_after_output): Check fatal_errors flag in context.
5334         (diagnostic_report_current_module): Check show_column flag in context.
5335         (default_diagnostic_starter): Update call to
5336         diagnostic_build_prefix.
5337         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
5338         (emit_diagnostic): Pass context to permissive_error_kind.
5339         (permerror): Pass context to permissive_error_kind.
5340         * diagnostic.h (struct diagnostic_context): Add show_column,
5341         pedantic_errors, permissive and fatal_errors fields.
5342         (diagnostic_build_prefix): Update prototype.
5343         * langhooks.c
5344         * toplev.c (process_options): Set flags in global_dc from
5345         flag_show_column, flag_pedantic_errors, flag_permissive,
5346         flag_fatal_errors.
5347         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
5348         to diagnostic_build_prefix.
5349         * Makefile.in (diagnostic.o): Update dependencies.
5350
5351 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5352
5353         * config/i386/ia32intrin.h (__crc32q): Define only if
5354         __SSE4_2__ is defined.
5355
5356 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
5357
5358         PR target/44132
5359         PR middle-end/43602
5360         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
5361         DECL_VISIBILITY_SPECIFIED.
5362         (emutls_decl): Set DECL_PRESERVE_P and copy
5363         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
5364         (emutls_finalize_control_var): New callback.
5365         (emutls_finish): Finalize emutls control variables.
5366         * toplev.c (compile_file): Move the call to emutls_finish ()
5367         before varpool_assemble_pending_decls ().
5368
5369 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
5370
5371         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
5372         added to the preprocessor condition.
5373
5374 2010-05-24  Paul Brook  <paul@codesourcery.com>
5375
5376         * gengtype-lex.l: Add HARD_REG_SET.
5377         * expr.c (expand_expr_real_1): Record writes to hard registers.
5378         * function.c (rtl_data): Add asm_clobbers.
5379         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
5380         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
5381         Use crtl->asm_clobbers.
5382
5383 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5384
5385         * doc/makefile.texi (Makefile): Mention stages 'profile'
5386         and 'feedback' for profiledbootstrap.
5387
5388 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
5389
5390         PR target/44245
5391         * config/i386/i386.c (def_builtin): Properly check
5392         OPTION_MASK_ISA_64BIT.
5393
5394 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
5395
5396         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
5397         typedefs with different but compatible types.  Allow duplicate
5398         typedefs with the same type except for pedantic non-C1X, but give
5399         warning for variably modified types.
5400         * c-typeck.c (tagged_types_tu_compatible_p,
5401         function_types_compatible_p, type_lists_compatible_p,
5402         comptypes_internal): Add parameter different_types_p; set
5403         *different_types_p for different but compatible types.  All
5404         callers changed.
5405         (comptypes_check_different_types): New.
5406         * c-tree.h (comptypes_check_different_types): Declare.
5407
5408 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5409
5410         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
5411         * jump.c: Include basic-block.h.
5412         * profile.c: Likewise.
5413         * tree-profile.c: Likewise.
5414         * coverage.c: Likewise.
5415         * basic-block.h (optimize_function_for_size_p): Move to function.h.
5416         (optimize_function_for_speed_p): Likewise.
5417         * function.h (optimize_function_for_size_p,
5418         optimize_function_for_speed_p): Moved here from basic-block.h.
5419         * Makefile.in: Update dependencies.
5420
5421 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5422
5423         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
5424         before calling make; allow override through $MAKE.
5425         * doc/invoke.texi (Optimize Options): Document override.
5426
5427 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
5428
5429         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
5430         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5431         (rs6000_mode_dependent_address_ptr): Make static.
5432         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5433         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
5434         Remove.
5435
5436 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
5437
5438         PR target/43869
5439         * config/i386/i386.c: Make sure that the correct regparm is passed.
5440
5441 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
5442
5443         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
5444         * sbitmap.c: ...to here to internalize sbitmap element access.
5445         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
5446         Explain why basic-block.h is included.
5447         * function.h: Include tm.h for CUMULATIVE_ARGS.
5448         * Makefile.in: Update dependencies.
5449
5450 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5451
5452         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
5453         New core types.
5454         * sbitmap.h (struct sbitmap_def): Do not typedef here.
5455         * sbitmap.c: Include sbitmap.h.
5456         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
5457         hard-reg-set.h.  Split everything related to regsets out from here...
5458         * regset.h: ...to here.  New file.
5459         * df.h: Include regset.h and sbitmap.h.
5460         * tree-flow.h: Likewise.
5461         * cfgloop.h: Likewise.
5462         * except.h: Do not include sbitmap.h.  Include hashtab.h.
5463         * cgraph.h: Include vec.h and function.h.
5464         * reload.h (struct insn_chain): Change types of live_throughout
5465         and dead_or_set from regset_head to bitmap_head.
5466         (compute_use_by_pseudos): Be defined also if regset.h is not included.
5467         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
5468         spilled_regs from regset_head to bitmap_head to avoid dependency
5469         in regset.h.
5470         * sel-sched-ir.h: Include regset.h.
5471         * reload.c: Include df.h before reload.h.
5472         * caller-save.c: Likewise.
5473         * reload1.c: Likewise.
5474         * ira.c: Likewise.
5475         (mark_elimination): Update type of r to bitmap, consistent with
5476         DF_LR_IN.
5477         * dominance.c: Include bitmap.h.
5478         * modulo-sched.c: Include df.h.
5479         * cfganal.c: Include bitmap.h and sbitmap.h.
5480         * cfgbuild.c: Include sbitmap.h.
5481         * lcm.c: Include sbitmap.h.
5482         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
5483         * domwalk.c: Include sbitmap.h, exclude ggc.h.
5484         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
5485         * cselib.c: Include bitmap.h.
5486         * tree-optimize.c: Include regset.h.
5487         * stmt.c: Include bitmap.h.
5488         * Makefile.in: Update dependencies.
5489
5490 2010-05-22  Jan Hubicka  <jh@suse.cz>
5491
5492         * cgraph.h (struct varpool_node): Add same_comdat_group.
5493         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
5494         pointer.
5495         (output_varpool): Update call of lto_output_varpool_node.
5496         (input_varpool): Read same_comdat_group pointer.
5497         (input_varpool_1): Fixup same_comdat_group pointer.
5498         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
5499         group is needed, all are.
5500         * varpool.c (varpool_remove_node): Remove node from same comdat group
5501         linklist too.
5502         (varpool_analyze_pending_decls): Walk same comdat groups.
5503
5504 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
5505
5506         * rtl.h (union rtunion_def): Remove rt_bit member.
5507         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
5508         * print-rtl (print_rtx): Do not print the member.
5509         * gengtype.c (adjust_field_rtx_def): Do not handle it.
5510         * gengenrtl.c (type_from_format): Likewise.
5511         (accessor_from_format): Likewise.
5512
5513 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
5514
5515         * dbgcnt.c: Include toplev.h instead of errors.h.
5516         * ira-emit.c: Don't include errors.h.
5517         * ira.c: Include toplev.h instead of errors.h.
5518         * lto-compress.c: Include toplev.h instead of errors.h.
5519         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
5520         ira.o, dbgcnt.o): Update dependencies.
5521
5522 2010-05-22  Richard Guenther  <rguenther@suse.de>
5523
5524         * gimple.c (gimple_types_compatible_p): Check type qualifications
5525         before merging pointer to complete and pointer to incomplete type.
5526         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
5527         we use our own resolution algorithm.  The gold linker plugin
5528         doesn't do the job we want it to do here.
5529
5530 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
5531
5532         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5533         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5534         (sparc_mode_dependent_address_p): New function.
5535
5536 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5537
5538         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
5539
5540         * timevar.c: Do not include any core headers.
5541         (timevar_print): De-i18n-ize.
5542         (print_time): Likewise.
5543         * timevar.h (timevar_push, timevar_pop): Make inline functions.
5544
5545 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
5546
5547         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
5548         langhooks-def.h.
5549         (diagnostic_initialize): Initialize x_data not last_function.
5550         (diagnostic_report_current_function): Move to tree-diagnostic.c.
5551         (default_diagnostic_starter): Call
5552         diagnostic_report_current_module not
5553         diagnostic_report_current_function.
5554         (diagnostic_report_diagnostic): Initialize x_data not
5555         abstract_origin.
5556         (verbatim): Likewise.
5557         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
5558         x_data.
5559         (struct diagnostic_context): Change last_function to x_data.
5560         (diagnostic_auxiliary_data): Replace with
5561         diagnostic_context_auxiliary_data and
5562         diagnostic_info_auxiliary_data.
5563         (diagnostic_last_function_changed, diagnostic_set_last_function,
5564         diagnostic_report_current_function): Move to tree-diagnostic.h.
5565         (print_declaration, dump_generic_node, print_generic_stmt,
5566         print_generic_stmt_indented, print_generic_expr,
5567         print_generic_decl, debug_c_tree, dump_omp_clauses,
5568         print_call_name, debug_generic_expr, debug_generic_stmt,
5569         debug_tree_chain, default_tree_printer): Move to
5570         tree-pretty-print.h.
5571         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
5572         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
5573         gimple-pretty-print.h.
5574         * pretty-print.c: Don't include tree.h
5575         (pp_base_format): Don't handle %K here.
5576         (pp_base_tree_identifier): Move to tree-pretty-print.c.
5577         * pretty-print.h (text_info): Change abstract_origin to x_data.
5578         (pp_tree_identifier, pp_unsupported_tree,
5579         pp_base_tree_identifier): Move to tree-pretty-print.h.
5580         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
5581         tree-pretty-print.h: New files.
5582         * tree-pretty-print.c: Include tree-pretty-print.h.
5583         (percent_K_format): New.  Moved from pretty-print.c.
5584         (pp_base_tree_identifier): Move from pretty-print.c.
5585         * c-objc-common.c: Include tree-pretty-print.h.
5586         (c_tree_printer): Handle %K here.
5587         * langhooks.c: Include tree-diagnostic.h.
5588         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
5589         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
5590         (default_tree_printer): Handle %K using percent_K_format.
5591         (general_init): Use default_tree_diagnostic_starter.
5592         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
5593         (free_lang_data): Use default_tree_diagnostic_starter.
5594         * c-pretty-print.c: Include tree-pretty-print.h.
5595         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5596         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5597         * dwarf2out.c: Include tree-pretty-print.h.
5598         * except.c: Include tree-pretty-print.h.
5599         * gimple-pretty-print.c: Include tree-pretty-print.h and
5600         gimple-pretty-print.h.
5601         * gimplify.c: Include tree-pretty-print.h.
5602         * graphite-poly.c: Include tree-pretty-print.h and
5603         gimple-pretty-print.h.
5604         * ipa-cp.c: Include tree-pretty-print.h.
5605         * ipa-inline.c: Include gimple-pretty-print.h.
5606         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5607         * ipa-pure-const.c: Include gimple-pretty-print.h.
5608         * ipa-struct-reorg.c: Include tree-pretty-print.h and
5609         gimple-pretty-print.h.
5610         * ipa-type-escape.c: Include tree-pretty-print.h.
5611         * print-rtl.c: Include tree-pretty-print.h.
5612         * print-tree.c: Include gimple-pretty-print.h.
5613         * sese.c: Include tree-pretty-print.h.
5614         * tree-affine.c: Include tree-pretty-print.h.
5615         * tree-browser.c: Include tree-pretty-print.h.
5616         * tree-call-cdce.c: Include gimple-pretty-print.h.
5617         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
5618         * tree-chrec.c: Include tree-pretty-print.h.
5619         * tree-data-ref.c: Include tree-pretty-print.h and
5620         gimple-pretty-print.h.
5621         * tree-dfa.c: Include tree-pretty-print.h.
5622         * tree-if-conv.c: Include tree-pretty-print.h and
5623         gimple-pretty-print.h.
5624         * tree-inline.c: Include tree-pretty-print.h.
5625         * tree-into-ssa.c: Include tree-pretty-print.h and
5626         gimple-pretty-print.h.
5627         * tree-nrv.c: Include tree-pretty-print.h.
5628         * tree-object-size.c: Include tree-pretty-print.h and
5629         gimple-pretty-print.h.
5630         * tree-outof-ssa.c: Include tree-pretty-print.h and
5631         gimple-pretty-print.h.
5632         * tree-parloops.c: Include tree-pretty-print.h and
5633         gimple-pretty-print.h.
5634         * tree-predcom.c: Include tree-pretty-print.h and
5635         gimple-pretty-print.h.
5636         * tree-scalar-evolution.c: Include tree-pretty-print.h and
5637         gimple-pretty-print.h.
5638         * tree-sra.c: Include tree-pretty-print.h.
5639         * tree-ssa-address.c: Include tree-pretty-print.h.
5640         * tree-ssa-alias.c: Include tree-pretty-print.h.
5641         * tree-ssa-ccp.c: Include tree-pretty-print.h and
5642         gimple-pretty-print.h.
5643         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
5644         * tree-ssa-copy.c: Include tree-pretty-print.h and
5645         gimple-pretty-print.h.
5646         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
5647         * tree-ssa-dce.c: Include tree-pretty-print.h and
5648         gimple-pretty-print.h.
5649         * tree-ssa-dom.c: Include tree-pretty-print.h and
5650         gimple-pretty-print.h.
5651         * tree-ssa-dse.c: Include gimple-pretty-print.h.
5652         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
5653         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
5654         * tree-ssa-live.c: Include tree-pretty-print.h and
5655         gimple-pretty-print.h.
5656         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
5657         gimple-pretty-print.h.
5658         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
5659         gimple-pretty-print.h.
5660         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
5661         gimple-pretty-print.h.
5662         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
5663         gimple-pretty-print.h.
5664         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
5665         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
5666         * tree-ssa-operands.c: Include tree-pretty-print.h and
5667         gimple-pretty-print.h.
5668         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
5669         gimple-pretty-print.h.
5670         * tree-ssa-pre.c: Include tree-pretty-print.h and
5671         gimple-pretty-print.h.
5672         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
5673         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
5674         gimple-pretty-print.h.
5675         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
5676         gimple-pretty-print.h.
5677         * tree-ssa-sink.c: Include gimple-pretty-print.h.
5678         * tree-ssa-ter.c: Include tree-pretty-print.h and
5679         gimple-pretty-print.h.
5680         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
5681         * tree-ssa.c: Include tree-pretty-print.h and
5682         gimple-pretty-print.h.
5683         * tree-stdarg.c: Include gimple-pretty-print.h.
5684         * tree-switch-conversion.c: Include gimple-pretty-print.h.
5685         * tree-tailcall.c: Include tree-pretty-print.h and
5686         gimple-pretty-print.h.
5687         * tree-vect-data-refs.c: Include tree-pretty-print.h and
5688         gimple-pretty-print.h.
5689         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
5690         gimple-pretty-print.h.
5691         * tree-vect-loop.c: Include tree-pretty-print.h and
5692         gimple-pretty-print.h.
5693         * tree-vect-patterns.c: Include gimple-pretty-print.h.
5694         * tree-vect-slp.c: Include tree-pretty-print.h and
5695         gimple-pretty-print.h.
5696         * tree-vect-stmts.c: Include tree-pretty-print.h and
5697         gimple-pretty-print.h.
5698         * tree-vectorizer.c: Include tree-pretty-print.h.
5699         * tree-vrp.c: Include tree-pretty-print.h and
5700         gimple-pretty-print.h.
5701         * value-prof.c: Include tree-pretty-print.h and
5702         gimple-pretty-print.h.
5703         * var-tracking.c: Include tree-pretty-print.h.
5704         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
5705         (tree-diagnostic.o): New dependencies.
5706         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
5707         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
5708         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
5709         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
5710         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
5711         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
5712         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
5713         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
5714         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
5715         tree-ssa-address.o, tree-ssa-loop-niter.o,
5716         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
5717         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
5718         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
5719         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
5720         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
5721         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
5722         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
5723         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
5724         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
5725         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
5726         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
5727         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
5728         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
5729         tree-switch-conversion.o, var-tracking.o, value-prof.o,
5730         cfgexpand.o, pretty-print.o): Update dependencies.
5731
5732 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
5733
5734         * tree-ssa-structalias.c: Remove tm_p.h from include.
5735
5736 2010-05-21  Jeff Law  <law@redhat.com>
5737
5738         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
5739
5740 2010-05-21  Jason Merrill  <jason@redhat.com>
5741
5742         * tree-eh.c (cleanup_is_dead_in): New.
5743         (lower_try_finally): Don't generate a dead cleanup region.
5744         (lower_cleanup): Likewise.
5745
5746 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
5747
5748         PR debug/44223
5749         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
5750         unchain each use from the cyclic next_regno_use chain first.
5751
5752 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5753
5754         * real: Do not include gmp.h, mpfr.h, and mpc.h.
5755         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
5756         (real_value_negate, real_value_abs): New prototypes.
5757         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
5758         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
5759         new include file for interface between MPFR and REAL_VALUE_TYPE.
5760         * real.c: Include realmpfr.h.
5761         (real_arithmetic2): Remove legacy function.
5762         (real_value_negate): New.
5763         (real_value_abs): New.
5764         (mfpr_from_real, real_from_mpfr): Move from here...
5765         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
5766         * builtins.c: Include realmpfr.h.
5767         * fold-const.c: Include realmpfr.h.
5768         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
5769         (fold_negate_const): Likewise.
5770         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
5771         * toplev.c: Include realmpfr.h.
5772         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
5773         and real_value_negate.
5774         * fixed-value.c (check_real_for_fixed_mode): Likewise.
5775         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
5776         (vfp3_const_double_index): Likewise.
5777         (arm_print_operand): Likewise.
5778         * Makefile.in: Update dependencies.
5779
5780 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5781
5782         * config/s390/s390.c (override_options): Increase the default
5783         of max-completely-peel-times.
5784
5785 2010-05-21  Julian Brown  <julian@codesourcery.com>
5786             Mark Mitchell  <mark@codesourcery.com>
5787
5788         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
5789         sibling calls for Thumb-1.
5790         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
5791         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
5792         Thumb-2.
5793         (*call_insn, *call_value_insn): Don't use for Thumb-2.
5794         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
5795         for Thumb-2.
5796         (return): New expander.
5797         (*arm_return): New name for ARM return insn.
5798         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
5799
5800 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
5801
5802         * config.gcc (sparc64-*-rtems*): New target.
5803
5804 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
5805
5806         * tree.c (build_function_decl_skip_args): Fix grammar.
5807         (build_function_type_list_1): Fix typos, adjust formatting.
5808
5809 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
5810
5811         * tree.h: Include real.h and fixed-value.h as basic datatypes.
5812         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
5813         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
5814         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
5815         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
5816         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
5817         tree-pretty-print.c, tree-loop-distribution.c,
5818         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
5819         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
5820         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
5821         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
5822         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
5823         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
5824         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
5825         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
5826         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
5827         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
5828         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
5829         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
5830         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
5831         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
5832         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
5833         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
5834         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
5835         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
5836         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
5837         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
5838         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
5839         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
5840         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
5841         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
5842         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
5843         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
5844         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
5845         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
5846         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
5847         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
5848         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
5849         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
5850         config/score/score7.c, config/score/score.c, config/arm/arm.c,
5851         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
5852         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
5853         config/bfin/bfin.c: Clean up redundant includes.
5854         * Makefile.in: Update accordingly.
5855
5856 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
5857
5858         PR middle-end/44204
5859         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
5860         statement has no arguments.
5861
5862 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
5863
5864         PR/44139
5865         * varasm.c (emutls_decl): Merge attributes to new decl.
5866
5867 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5868
5869         PR middle-end/44101
5870         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
5871         around the uniquized constructor if its type requires a conversion.
5872
5873 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
5874
5875         PR debug/44205
5876         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
5877         at -O0 goto_locus of any of the incoming edges differs from
5878         goto_locus of outgoing edge, or gimple_location of any of the
5879         labels differs.
5880
5881 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
5882
5883         * ira.c (ira_non_ordered_class_hard_regs): Define.
5884         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
5885         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
5886         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
5887         cost of unaligned hard regs when allocating multi-reg pseudos.
5888
5889 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
5890
5891         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
5892         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
5893         for TARGET_NO_FLOAT.
5894         * config/mips/mips.c (mips_file_start): Expand conditional expression
5895         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
5896         (mips_override_options): Move -mno-float override -msoft-float and
5897         -mhard-float.
5898         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
5899         Condition(TARGET_SUPPORTS_NO_FLOAT).
5900         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
5901         __mips_no_float here.
5902         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
5903         (TARGET_SUPPORTS_NO_FLOAT): Define.
5904         * config/mips/sdemtk.opt: Delete.
5905
5906 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
5907
5908         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
5909
5910 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
5911
5912         PR target/43733
5913         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
5914         * configure: Regenerate.
5915         * config.in: Regenerate.
5916         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
5917         instead of sahf only for 64bit targets.
5918
5919 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
5920
5921         PR debug/44178
5922         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
5923         setup_ref_regs for DEBUG_INSNs.
5924
5925 2010-05-20  Jan Hubicka  <jh@suse.cz>
5926
5927         PR middle-end/44197
5928         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
5929
5930 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
5931
5932         PR bootstrap/43870
5933         * df-scan.c (df_ref_compare): Stabilize sort.
5934
5935 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
5936
5937         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
5938         argument.  Don't use DW_OP_piece if offset is non-zero,
5939         put offset into second DW_OP_bit_piece argument.
5940         (dw_sra_loc_expr): Adjust callers.  For memory expressions
5941         compute offset.
5942
5943 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
5944
5945         PR target/44202
5946         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
5947         settings for 16-bit-constant "addo" alternative.
5948
5949 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
5950
5951         * config/mips/mips-dsp.md (add<DSPV:mode>3,
5952         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
5953
5954         PR target/43764
5955         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
5956         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
5957         Use it.
5958
5959 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
5960
5961         * diagnostic.c (FLOAT, FFS): Don't undefine.
5962         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
5963         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
5964         include ordering.
5965
5966 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
5967
5968         * combine.c (propagate_for_debug): Call make_compound_operation
5969         on the source value.
5970         (try_combine): When implementing a split chosen by find_split_point,
5971         either copy i2src or set it to null.  Assert that i2src is not null
5972         before substituting into CALL_INSN_FUNCTION_USAGE.
5973
5974 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
5975
5976         * double-int.h (double_int_ior): New function.
5977         * tree.h (build_int_cst_wide_type): Remove.
5978         * tree.c (build_int_cst_wide_type): Remove.
5979         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
5980         of build_int_cst_wide_type.
5981         * stor-layout.c (set_sizetype): (Ditto.).
5982         * dojump.c (do_jump): Use build_int_cstu instead of
5983         build_int_cst_wide_type.
5984
5985 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5986
5987         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
5988         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
5989         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
5990         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
5991         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
5992         propagate the 'data' argument to copy_tree_r.
5993         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
5994         Propagate 'data' argument to walk_tree.
5995         (copy_if_shared): New function.
5996         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
5997         (unmark_visited): New function.
5998         (unshare_body): Call copy_if_shared instead of doing it manually.
5999         (unvisit_body): Call unmark_visited instead of doing it manually.
6000
6001 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
6002
6003         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
6004         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
6005         * hooks.c: Likewise.
6006         * target-def.h (TARGET_FOLD_BUILTIN): Define to
6007         hook_tree_tree_int_treep_bool_null.
6008         * target.h (struct gcc_target): Update signature of fold_builtin
6009         field.
6010         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
6011         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
6012         instead of the call expression.
6013         (fold_builtin_call_array): Pass n and argarray directly.
6014         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
6015         consing a list.
6016         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
6017         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
6018         `i' and use it in place of `arity'.
6019         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
6020         Dereference `args' directly.
6021         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
6022
6023 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6024
6025         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6026         3dnow, sse3, sse2.
6027         (Directives): Document optional dg-require-effective-target
6028         selector.
6029
6030 2010-05-19  Richard Guenther  <rguenther@suse.de>
6031
6032         PR lto/44196
6033         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
6034
6035 2010-05-19  Richard Guenther  <rguenther@suse.de>
6036
6037         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
6038         * common.opt (fwhopr=): New.
6039         * opts.c (common_handle_option): Handle OPT_fwhopr.
6040         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
6041         * collect2.c (main): Match -fwhopr*.
6042         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
6043         Execute ltrans stage in parallel when jobs is bigger than 1.
6044
6045 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6046
6047         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
6048         pentiumpro on Solaris 8/x86 with Sun as.
6049         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
6050         hidden alias bug.
6051         (gcc_cv_as_ix86_quad): Check for .quad directive.
6052         * configure: Regenerate.
6053         * config.in: Regenerate.
6054         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
6055
6056 2010-05-19  Martin Jambor  <mjambor@suse.cz>
6057
6058         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
6059         also for indirect edges.  Actual printing moved...
6060         (ipa_print_node_jump_functions_for_edge): ...here.
6061         (ipa_compute_jump_functions): Renamed to
6062         ipa_compute_jump_functions_for_edge and made static.
6063         (ipa_compute_jump_functions): New function.
6064         (make_edge_direct_to_target): Check if the number of arguments on
6065         the newly direct edge is the same as the number of parametrs of
6066         the callee.
6067         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
6068         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
6069         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
6070         analysis functions unconditionally, call the new
6071         ipa_analyze_params_uses on the node instead of every edge.
6072
6073 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
6074
6075         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
6076         to tree.
6077         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
6078         also checks for a constant int vs.  non-constant but
6079         loop-invariant steps.
6080         (find_or_create_group): Change the sort algorithm to only consider
6081         steps that are constant ints.
6082         (idx_analyze_ref): Adopt code to handle a tree instead of a
6083         HOST_WIDE_INT for step.
6084         (gather_memory_references_ref): Handle tree instead of int and be
6085         prepared to see a NULL_TREE.
6086         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
6087         prefetches if the step cannot be calculated at compile time.
6088         (issue_prefetch_ref): Issue prefetches for non-constant but
6089         loop-invariant steps.
6090
6091 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6092
6093         Revert:
6094         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6095
6096         * tree.h (build_call_list): Remove.
6097         * tree.c (build_call_list): Remove.
6098
6099 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
6100
6101         * tree.h (build_call_list): Remove.
6102         * tree.c (build_call_list): Remove.
6103
6104 2010-05-18  Jan Hubicka  <jh@suse.cz>
6105
6106         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
6107
6108 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
6109
6110         PR rtl-optimization/43332
6111         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
6112
6113 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
6114
6115         * tree.h (build_int_cstu): Implement as static inline.
6116         * tree.c (build_int_cstu): Remove function.
6117         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
6118         sign extended.
6119
6120 2010-05-18  Richard Guenther  <rguenther@suse.de>
6121
6122         PR lto/44143
6123         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
6124         (debug): Initialize from -save-temps.
6125         (collect_execute): Print command-line when verbose.
6126         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
6127         for ltrans invocation.  Produce -dumpbase flag again.
6128         (process_args): Remove.
6129         (main): Simplify.
6130         * collect2.c (maybe_run_lto_and_relink): Only pass object
6131         files to lto-wrapper.
6132         * gcc.c (LINK_COMMAND_SPEC): Likewise.
6133
6134 2010-05-18  Jan Hubicka  <jh@suse.cz>
6135
6136         * opts.c (decode_options): Do not disable whopr at ipa_cp.
6137         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
6138
6139 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6140
6141         PR lto/44184
6142         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
6143         in a GIMPLE_ASM.
6144         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
6145         in a GIMPLE_ASM.
6146
6147 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
6148
6149         PR debug/41371
6150         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
6151         rtx_equal_p inline.
6152
6153 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
6154
6155         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
6156         lto-macho as lto_binary_reader.
6157
6158         * darwin.c (darwin_asm_named_section): Do not add assembler comment
6159         after .section directive; just print it before the directive instead.
6160
6161 2010-05-17  Jan Hubicka  <jh@suse.cz>
6162
6163         * cgraph.c (cgraph_create_virtual_clone): Only check
6164         versionable_function_p when not in wpa and checking is enabled.
6165         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
6166         there are no more functions to materialize.
6167
6168 2010-05-17  Jan Hubicka  <jh@suse.cz>
6169
6170         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
6171         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
6172         New functions.
6173         (output_cgraph): Call output_cgraph_opt_summary.
6174         (input_cgrpah): Call input_cgraph_opt_summary.
6175         (output_cgraph_opt_summary_p, output_node_opt_summary,
6176         input_node_opt_summary, input_cgraph_opt_section): New functions.
6177         * lto-section-in.c (lto_section_name): Add cgraphopt.
6178         * tree-inline.c (tree_function_versioning): Handle parm_num.
6179         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
6180         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
6181
6182 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6183
6184         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
6185         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
6186         the insn to prefetch ratio heuristic to loops with known trip count.
6187
6188 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
6189
6190         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
6191         (schedule_prefetches): Do not generate a prefetch if the unroll factor
6192         is far from what is required by the prefetch.
6193
6194 2010-05-17  Jan Hubicka  <jh@suse.cz>
6195
6196         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
6197         (ipcp_estimate_growth): Likewise.
6198         (ipcp_const_param_count): Likewise.
6199         (ipcp_insert_stage): Likewise.
6200         * ipa-prop.c (visit_load_for_mod_analysis): New function.
6201         (visit_store_addr_for_mod_analysis): Set used flag.
6202         (ipa_detect_param_modifications): Set used flag for SSE params;
6203         update use of walk_stmt_load_store_addr_ops.
6204         (ipa_print_node_params): Print used flag.
6205         (ipa_write_node_info): Stream used flag.
6206         (ipa_read_node_info): Likewise.
6207         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
6208         (ipa_is_param_used): New function.
6209         (lto_ipa_fixup_call_notes): Remove unused declaration.
6210
6211 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6212
6213         PR target/44074
6214         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
6215         * configure: Regenerate.
6216         * config.in: Regenerate.
6217         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
6218         !HAVE_AS_IX86_REP_LOCK_PREFIX.
6219         Don't emit whitespace.
6220         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
6221         (*rep_movsi): Likewise.
6222         (*rep_movsi_rex64): Likewise.
6223         (*rep_movqi): Likewise.
6224         (*rep_movqi_rex64): Likewise.
6225         (*rep_stosdi_rex64): Likewise.
6226         (*rep_stossi): Likewise.
6227         (*rep_stossi_rex64): Likewise.
6228         (*rep_stosqi): Likewise.
6229         (*rep_stosqi_rex64): Likewise.
6230         (*cmpstrnqi_nz_1): Use {%;} after repz.
6231         (*cmpstrnqi_nz_rex_1): Likewise.
6232         (*cmpstrnqi_1): Likewise.
6233         (*cmpstrnqi_rex_1): Likewise.
6234         (*strlenqi_1): Use {%;} after repnz.
6235         (*strlenqi_rex_1): Likewise.
6236         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
6237         (*sync_compare_and_swap<mode>): Likewise.
6238         (sync_double_compare_and_swap<mode>): Likewise.
6239         (*sync_double_compare_and_swapdi_pic): Likewise.
6240         (sync_old_add<mode>): Likewise.
6241         (sync_add<mode>): Likewise.
6242         (sync_sub<mode>): Likewise.
6243         (sync_<code><mode>): Likewise.
6244
6245 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6246
6247         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
6248         otr_token and polymorphic.
6249         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
6250         (cgraph_clone_edge): Copy the above fields.
6251         * tree.c (get_binfo_at_offset): New function.
6252         * tree.h (get_binfo_at_offset): Declare.
6253         * ipa-prop.h (enum jump_func_type): Added known_type jump function
6254         type, reordered items, updated comments.
6255         (union jump_func_value): Added base_type field, reordered fields.
6256         (enum ipa_lattice_type): Moved down in the file.
6257         (struct ipa_param_descriptor): New field polymorphic.
6258         (ipa_is_param_polymorphic): New function.
6259         * ipa-prop.c: Include gimple.h and gimple-fold.h.
6260         (ipa_print_node_jump_functions): Print known type jump functions.
6261         (compute_complex_pass_through): Renamed to...
6262         (compute_complex_assign_jump_func): this.
6263         (compute_complex_ancestor_jump_func): New function.
6264         (compute_known_type_jump_func): Likewise.
6265         (compute_scalar_jump_functions): Create known type and complex ancestor
6266         jump functions.
6267         (ipa_note_param_call): New parameter polymorphic, set the corresponding
6268         flag in the call note accordingly.
6269         (ipa_analyze_call_uses): Renamed to...
6270         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
6271         variable var only in the block where it is used.
6272         (ipa_analyze_virtual_call_uses): New function.
6273         (ipa_analyze_call_uses): Likewise.
6274         (combine_known_type_and_ancestor_jfs): Likewise.
6275         (update_jump_functions_after_inlining): Implemented handling of a
6276         number of new jump function types combination.
6277         (print_edge_addition_message): Removed.
6278         (make_edge_direct_to_target): New function.
6279         (try_make_edge_direct_simple_call): Likewise.
6280         (try_make_edge_direct_virtual_call): Likewise.
6281         (update_call_notes_after_inlining): Renamed to...
6282         (update_indirect_edges_after_inlining): this.  Moved edge creation for
6283         indirect calls to try_make_edge_direct_simple_call, also calls
6284         try_make_edge_direct_virtual_call for virtual calls.
6285         (ipa_print_node_params): Changed the header message.
6286         (ipa_write_jump_function): Stream also known type jump functions.
6287         (ipa_read_jump_function): Likewise.
6288         (ipa_write_indirect_edge_info): Stream new fields in
6289         cgraph_indirect_call_info.
6290         (ipa_read_indirect_edge_info): Likewise.
6291         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
6292         GIMPLE_FOLD_H.
6293
6294 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6295
6296         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
6297
6298 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6299
6300         * tree.h (CALL_EXPR_ARGS): Delete.
6301         (call_expr_arglist): Delete.
6302         * tree.c (call_expr_arglist): Delete.
6303         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
6304         targetm.fold_builtin.
6305         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
6306         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
6307         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
6308         arglist parameter.  Use CALL_EXPR_ARG.
6309         (picochip_expand_builtin_3op): Likewise.
6310         (picochip_expand_builtin_2opvoid): Likewise.
6311         (picochip_expand_array_get): Likewise.
6312         (picochip_expand_array_put): Likewise.
6313         (picochip_expand_array_testport): Likewise.
6314         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
6315         rather than arglist.
6316         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
6317         CALL_EXPR_ARGS.
6318         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
6319         than TREE_VALUE and TREE_CHAIN.
6320         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
6321         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
6322         the arglist.
6323
6324 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6325
6326         PR bootstrap/42347
6327         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
6328         to have no fallthru edge.
6329
6330         PR middle-end/44102
6331         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
6332         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
6333         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
6334         add BARRIER after previous bb if needed.
6335
6336 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
6337
6338         * tree.c (build_function_type_list_1): Remove bogus assert condition.
6339
6340 2010-05-17  Alan Modra  <amodra@gmail.com>
6341
6342         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
6343         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
6344         with copy_reg rtx param.
6345         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
6346         Correct cases where code for ABI_V4 did not initialise the reg
6347         used to access frame.  Also leave frame_reg_rtx as sp for large
6348         frames that save no regs.
6349
6350 2010-05-17  Martin Jambor  <mjambor@suse.cz>
6351
6352         PR middle-end/44133
6353         * tree-sra.c (create_access_replacement): New parameter rename, mark
6354         the replaement for renaming only when it is true.
6355         (get_access_replacement): Pass true in the rename parameter of
6356         create_access_replacement.
6357         (get_unrenamed_access_replacement): New function.
6358         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
6359         replacement declaration from it.
6360
6361 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
6362
6363         * function.c (try_fit_stack_local, add_frame_space): New static
6364         functions.
6365         (assign_stack_local_1): Use them.  Look for opportunities to use
6366         space previously wasted on alignment.
6367         * function.h (struct frame_space): New.
6368         (struct rtl_data): Add FRAME_SPACE_LIST member.
6369         * reload1.c (something_was_spilled): New static variable.
6370         (alter_reg): Set it.
6371         (reload): Test it in addition to testing if the frame size changed.
6372
6373 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
6374
6375         * config/s390/s390.c: Define sane prefetch settings and activate
6376         flag_prefetch_loop_arrays on -O3.
6377         * config/s390/s390.h: Declare that read can use write prefetch.
6378
6379 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
6380
6381         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
6382         build.
6383
6384 2010-05-16  Jan Hubicka  <jh@suse.cz>
6385
6386         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
6387         function body; do not check stdarg field of struct function.
6388
6389 2010-05-16  Jan Hubicka  <jh@suse.cz>
6390
6391         * cgraph.c (dump_cgraph_node): Dump versionable flag.
6392         * cgraph.h (cgraph_local_info): Add versionable flag.
6393         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
6394         (ipcp_versionable_function_p): Use it.
6395         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
6396         versionable flag.
6397
6398 2010-05-16  Jan Hubicka  <jh@suse.cz>
6399
6400         * cgraph.c (cgraph_clone_node): Take decl argument and insert
6401         clone into hash when it is different from orig.
6402         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
6403         * cgraph.h (cgraph_clone_node): Update prototype.
6404         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
6405         (lto_cgraph_encoder_delete): Delete body map.
6406         (lto_cgraph_encoder_size): Move to header.
6407         (lto_cgraph_encoder_encode_body_p,
6408         lto_set_cgraph_encoder_encode_body): New.
6409         (lto_output_node): Do not take written_decls argument; output clone_of
6410         pointer.
6411         (add_node_to): Add include_body_argument; call
6412         lto_set_cgraph_encoder_encode_body on master of the clone.
6413         (add_references): Update use of add_node_to.
6414         (compute_ltrans_boundary): Likewise.
6415         (output_cgraph): Do not create written_decls bitmap.
6416         (input_node): Take nodes argument; stream in clone_of correctly.
6417         (input_cgraph_1): Update use of input_node.
6418         * lto-streamer-out.c (lto_output): Use encoder info to decide
6419         what bodies to output.
6420         * ipa-inline.c (cgraph_clone_inlined_nodes,
6421         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
6422         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
6423         (lto_cgraph_encoder_size): Define here.
6424         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
6425         Declare.
6426
6427 2010-05-16  Richard Guenther  <rguenther@suse.de>
6428
6429         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
6430         -fipa-type-escape.
6431         * ipa-type-escape.c (gate_type_escape_vars): Run when
6432         -fipa-struct-reorg runs.
6433         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
6434         * common.opt (fipa-type-escape): Remove.
6435
6436 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6437
6438         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
6439         (decode_options): Likewise.
6440         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
6441
6442 2010-05-16  Jan Hubicka  <jh@suse.cz>
6443
6444         * ipa.c (function_and_variable_visibility): Also bring local all
6445         aliases.
6446
6447 2010-05-16  Richard Guenther  <rguenther@suse.de>
6448
6449         * alias.c (nonoverlapping_memrefs_p): Remove use of
6450         IPA type-escape information.
6451
6452 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
6453
6454         * c-common.c (c_common_reswords): Add _Static_assert for C.
6455         * c-parser.c (c_token_starts_declaration,
6456         c_parser_next_token_starts_declaration,
6457         c_parser_static_assert_declaration_no_semi,
6458         c_parser_static_assert_declaration): New.
6459         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
6460         Handle static assertions if static_assert_ok.
6461         (c_parser_external_declaration, c_parser_declaration_or_fndef,
6462         c_parser_compound_statement_nostart, c_parser_label,
6463         c_parser_for_statement, c_parser_objc_methodprotolist,
6464         c_parser_omp_for_loop): All callers of
6465         c_parser_declaration_or_fndef changed.
6466         (c_parser_struct_declaration): Handle static assertions.
6467         (c_parser_compound_statement_nostart): Use
6468         c_parser_next_token_starts_declaration and
6469         c_token_starts_declaration to detect start of declarations.
6470         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
6471         Likewise.
6472
6473 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
6474
6475         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
6476         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
6477         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6478         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6479         (mmix_function_outgoing_value): Rename to...
6480         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
6481         (mmix_function_value_regno_p): Make static.
6482         (mmix_libcall_value): New function.
6483         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
6484         mmix_function_value_regno_p): Remove declaration.
6485
6486 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6487
6488         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
6489         BUILT_IN_ALLOCA if stack checking is enabled.
6490
6491 2010-05-16  Richard Guenther  <rguenther@suse.de>
6492
6493         * var-tracking.c (vars_copy_1): Inline ...
6494         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6495         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
6496         (variable_merge_over_cur): Adjust.  Merge asserts.
6497         (variable_merge_over_src): Likewise.
6498         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
6499         (variable_post_merge_new_vals): Merge asserts.
6500         (variable_post_merge_perm_vals): Likewise.
6501         (find_mem_expr_in_1pdv): Likewise.
6502         (dataflow_set_different_value): Remove.
6503         (onepart_variable_different_p): Merge asserts.
6504         (variable_different_p): Likewise.
6505         (dataflow_set_different_1): Inline ...
6506         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
6507         (emit_notes_for_differences_1): Merge asserts.
6508
6509 2010-05-16  Richard Guenther  <rguenther@suse.de>
6510
6511         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
6512         * optabs.c (libfunc_decl_hash): Likewise.
6513         * varasm.c (emutls_decl): Likewise.
6514
6515 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
6516
6517         * c-decl.c: Don't include gimple.h.
6518         (merge_decls): Do not copy gimple_body.
6519
6520 2010-05-15  Jason Merrill  <jason@redhat.com>
6521
6522         * c.opt: Add -fnothrow-opt.
6523
6524 2010-05-15  Jan Hubicka  <jh@suse.cz>
6525
6526         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
6527         analyzed.
6528         * passes.c (ipa_write_summaries): Write all analyzed nodes.
6529
6530 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
6531
6532         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
6533         * Makefile.in: Add it.
6534         Fix all other Makefile dependencies for changes below.
6535         * tree.h: Include it instead of defining VEC primitives here.
6536         * gimple.h: Likewise.
6537         * rtl.h: Likewise.
6538         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
6539         * except.h: Include vecir.h, break dependence on tree.h.
6540
6541         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
6542         Move from here...
6543         * tree-iterator.c: ...to here.
6544         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
6545
6546         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
6547         tm_p.h.
6548         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
6549         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
6550         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
6551         tree-mudflap.h, and target.h.
6552         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
6553         predict.h, tree-inline.h, gimple.h, and langhooks.h.
6554         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
6555         Add FIXME for why gimple.h is still included (should be unnecessary
6556         since GCC 4.5 gimplification unit-at-a-time).
6557         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
6558         * c-pragma.c: Add FIXME for why function.h needs to be included just
6559         for cfun, at front-end level.
6560         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
6561         Do not include ggc.h, but include vecprim.h for VEC(char).
6562         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
6563         Explain why target.h is included.
6564         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
6565         Explain why gimple.h is included.
6566         * c-ppoutput.c: Do not include tm.h.
6567         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
6568         * c-parses.c: Explain why rtl.h is included, and that this (and only
6569         this) is also why tm.h must be included.
6570         Do not include except.h.
6571         * c-lang.c: Do not include ggc.h.
6572
6573 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
6574
6575         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
6576
6577 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
6578
6579         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
6580         unions by default if those structs and unions have no tags.  Do
6581         not condition anonymous struct and unions handling on flag_iso.
6582         Allow anonymous structs and unions for C1X.
6583         (finish_struct): Do not diagnose lack of named fields when
6584         anonymous structs and unions present for C1X.  Accept flexible
6585         array members in structure with anonymous structs or unions but no
6586         directly named fields.
6587         * doc/extend.texi (Unnamed Fields): Update.
6588
6589 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
6590
6591         * gimple.h (compare_field_offset): Rename into...
6592         (gimple_compare_field_offset): ...this.
6593         * gimple.c (compare_field_offset): Rename into...
6594         (gimple_compare_field_offset): ...this.  Compare the full access if
6595         the offset is self-referential.
6596         (gimple_types_compatible_p): Adjust for above renaming.
6597         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
6598         DECL_NONADDRESSABLE_P flag of fields before merging them.
6599
6600 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
6601
6602         * tree.h (ctor_to_list): Delete.
6603         * tree.c (ctor_to_list): Delete.
6604
6605 2010-05-15  Jan Hubicka  <jh@suse.cz>
6606
6607         * ipa-reference.c: Include toplev.h
6608         (is_proper_for_analysis): Only add to all_module_statics
6609         if it is allocated.
6610         (write_node_summary_p, stream_out_bitmap,
6611         ipa_reference_write_optimization_summary,
6612         ipa_reference_read_optimization_summary): New.
6613         (struct ipa_opt_pass_d pass_ipa_reference): Add
6614         optimization summary streaming.
6615         * lto-cgraph.c (referenced_from_this_partition_p,
6616         reachable_from_this_partition_p): New functions.
6617         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
6618         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
6619         * opts.c (decode_options): Enable ipa_reference.
6620         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
6621         * lto-streamer.h (referenced_from_this_partition_p,
6622         reachable_from_this_partition_p): Declare.
6623
6624 2010-05-15  Richard Guenther  <rguenther@suse.de>
6625
6626         PR tree-optimization/44038
6627         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
6628         taking the address of a V_C_E of a constant.
6629
6630 2010-05-14  Jan Hubicka  <jh@suse.cz>
6631
6632         * tree.h (memory_identifier_string): Remove.
6633         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
6634         (ipa_reference_global_vars_info_d): Remove statics_not_read and
6635         statics_not_written.
6636         (ipa_reference_optimization_summary_d): New structure.
6637         (ipa_reference_optimization_summary_t): New type and vector.
6638         (ipa_reference_vars_info_d): Embedd structures instead of using
6639         pointers.
6640         (reference_vars_to_consider): Remove out of GGC space.
6641         (module_statics_escape): Remove.
6642         (global_info_obstack): Rename to ...
6643         (optimization_summary_obstack): ... this one.
6644         (initialization_status_t): Remove.
6645         (memory_identifier_string): Remove.
6646         (get_reference_vars_info): Fix indenting.
6647         (set_reference_vars_info): Likewise.
6648         (get_reference_optimization_summary): New.
6649         (set_reference_optimization_summary): New.
6650         (get_global_reference_vars_info): Remove.
6651         (ipa_reference_get_read_global): Remove.
6652         (ipa_reference_get_written_global): Remove.
6653         (ipa_reference_get_not_read_global): Update.
6654         (ipa_reference_get_not_written_global): Update.
6655         (is_proper_for_analysis): Outlaw addressable.
6656         (propagate_bits): Update for new datastructures.
6657         (analyze_variable): Remove.
6658         (init_function_info): Update for new datastructures.
6659         (clean_function_local_data): Remove.
6660         (clean_function): Remove.
6661         (copy_global_bitmap): Use optimizations_summary_obstack.
6662         (duplicate_node_data): Duplicate optimization summary only.
6663         (remove_node_data): Remove optimization summary only.
6664         (generate_summary): Do not analyze variables; do not compute
6665         module_statics_escape; do not prune solutions by it.
6666         (read_write_all_from_decl): Fix typos in comments.
6667         (propagate): Doscover readonly and nonaddressable first;
6668         update for new datastructures; share global bitmaps.
6669         * ipa-reference.h (ipa_reference_get_read_global,
6670         ipa_reference_get_written_global): Remove.
6671         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
6672         * Makefile.in: Remove ipa-refereference from GT files.
6673
6674 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
6675
6676         PR debug/44112
6677         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
6678         for all SYMBOL_REF_DECLs.
6679
6680 2010-05-14  Jan Hubicka  <jh@suse.cz>
6681
6682         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
6683         (varpool_all_refs_explicit_p): New inline function.
6684         * ipa-reference.c: Update comment.
6685         (module_statics_written): Remove.
6686         (get_static_decl): Remove.
6687         (ipa_init): Do not initialize module_statics_written.
6688         (analyze_function): Likewise.
6689         (generate_summary): Likewise; do not compute module_statics_readonly
6690         and do not update variable flags.
6691         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
6692         * ipa.c: Inlucde flags.h
6693         (cgraph_local_node_p): New.
6694         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
6695         promote functions to local.
6696         (ipa_discover_readonly_nonaddressable_vars): New function.
6697         (function_and_variable_visibility): Use cgraph_local_node_p.
6698         * varpool.c (varpool_finalize_decl): Set force_output for
6699         DECL_PRESERVE_P vars.
6700
6701 2010-05-14  Jan Hubicka  <jh@suse.cz>
6702
6703         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
6704
6705 2010-05-14  Richard Guenther  <rguenther@suse.de>
6706
6707         PR tree-optimization/44119
6708         * tree-ssa-pre.c (eliminate): Properly mark replacement of
6709         a PHI node necessary.
6710
6711 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
6712
6713         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
6714
6715 2010-05-14  Jason Merrill  <jason@redhat.com>
6716
6717         PR c++/44127
6718         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
6719         (gimple_call_set_nothrow): New.
6720         * gimple.c (gimple_build_call_from_tree): Call it.
6721         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
6722
6723         PR c++/44127
6724         * gimplify.c (gimplify_seq_add_stmt): No longer static.
6725         * gimple.h: Declare it.
6726         * gimple.c (gimple_build_eh_filter): No ops.
6727
6728 2010-05-14  Jan Hubicka  <jh@suse.cz>
6729
6730         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
6731         nodes already in queue.
6732         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
6733         re-enqueueing node.
6734
6735 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
6736
6737         PR debug/44136
6738         * cfgexpand.c (expand_debug_expr): If non-memory op0
6739         has BLKmode, return NULL.
6740
6741 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
6742
6743         * config.gcc: Add support for --with-cpu option for bdver1.
6744         * config/i386/i386.h (TARGET_BDVER1): New macro.
6745         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
6746         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
6747         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
6748         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
6749         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
6750         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
6751         (processor_type): Add PROCESSOR_BDVER1.
6752         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
6753         processor_type in config/i386/i386.h.
6754         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
6755         movaps <reg, reg> instead of movapd <reg, reg> when replacing
6756         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
6757         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
6758         to emit packed xor instead of packed double/packed integer
6759         xor for SSE and AVX when moving a zero value.
6760         * config/i386/sse.md: Add check for
6761         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
6762         movapd/movdqa for SSE and AVX.
6763         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
6764         single logical operations i.e and, or and xor instead of packed double
6765         logical operations for SSE and AVX.
6766         * config/i386/i386-c.c (ix86_target_macros_internal):
6767         Add PROCESSOR_BDVER1.
6768         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
6769         (has_fma4, has_xop): New.
6770         * config/i386/i386.c (bdver1_cost): New variable.
6771         (m_BDVER1): New macro.
6772         (m_AMD_MULTIPLE): Add m_BDVER1.
6773         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
6774         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
6775         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
6776         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
6777         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
6778         x86_tune_sse_partial_reg_dependency,
6779         x86_tune_sse_unaligned_load_optimal,
6780         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
6781         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
6782         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
6783         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
6784         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
6785         Enable/disable for bdver1.
6786         (processor_target_table): Add bdver1_cost.
6787         (cpu_names): Add bdver1.
6788         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
6789          processor_alias_table.
6790         (ix86_expand_vector_move_misalign): Change.
6791         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
6792         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
6793         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
6794         of movupd/movdqu for SSE and AVX.
6795         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
6796         (ix86_tune_adjust_cost): Add code for bdver1.
6797         (standard_sse_constant_opcode): Add check for
6798         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
6799         of packed double xor for SSE and AVX.
6800
6801 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
6802
6803         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
6804         result to unsigned.
6805
6806 2010-05-14  Tristan Gingold  <gingold@adacore.com>
6807
6808         * toplev.c (default_debug_hooks): Remove this variable.
6809         (process_options): Remove assignments to default_debug_hooks.
6810
6811 2010-05-14  Martin Jambor  <mjambor@suse.cz>
6812
6813         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
6814         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
6815         * langhooks.h (struct lang_hooks_for_decls): Removed field
6816         fold_obj_type_ref.
6817         * tree.c (free_lang_data): Remove assignment to
6818         lang_hooks.fold_obj_type_ref.
6819         * tree.def (OBJ_TYPE_REF): Update comment.
6820
6821 2010-05-14  Richard Guenther  <rguenther@suse.de>
6822
6823         PR tree-optimization/44124
6824         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
6825
6826 2010-05-14  Alan Modra  <amodra@gmail.com>
6827
6828         PR target/44075
6829         * config/rs6000/rs6000.c (struct machine_function): Reorder
6830         fields for better packing.  Add lr_save_state.
6831         (rs6000_ra_ever_killed): Return lr_save_state if set.
6832         (rs6000_emit_eh_reg_restore): Set lr_save_state.
6833
6834 2010-05-13  Jan Hubicka  <jh@suse.cz>
6835
6836         * varpool.c (decide_is_variable_needed): Drop code checking
6837         TREE_SYMBOL_REFERENCED.
6838
6839 2010-05-13  Jan Hubicka  <jh@suse.cz>
6840
6841         * final.c (output_addr_const): Do not call mark_decl_referenced.
6842         * cgraphunit.c (process_function_and_variable_attributes): Use
6843         mark_needed_node dirrectly.
6844         (assemble_thunk): Do not call mark_decl_referenced.
6845
6846 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
6847
6848         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
6849
6850 2010-05-13  Jeff Law  <law@redhat.com>
6851
6852         * ira-conflicts.c (print_allocno_conflicts): New function broken out
6853         from...
6854         (print_conflicts): Call print_allocno_conflicts.
6855
6856 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
6857
6858         PR debug/44104
6859         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
6860         if it is NULL.
6861
6862 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
6863
6864         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
6865         t-mingw-w64 or t-mingw-w32 for multilib configuration.
6866         * config/i386/t-mingw-w32: New.
6867         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
6868
6869 2010-05-13  Martin Jambor  <mjambor@suse.cz>
6870
6871         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
6872         gimple-fold.c).
6873         * gimple-fold.c (get_base_binfo_for_type): New function.
6874         (gimple_get_relevant_ref_binfo): Likewise.
6875         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6876         (gimple_fold_obj_type_ref): Likewise.
6877         (fold_gimple_call): Simplify condition for folding virtual calls
6878         and call gimple_fold_obj_type_ref.
6879         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
6880         (gimple_fold_obj_type_ref_known_binfo): Likewise.
6881
6882 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
6883
6884         * config/rs6000/rs6000-protos.h
6885         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
6886         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
6887         (rs6000_debug_mode_dependent_address)
6888         (rs6000_mode_dependent_address_ptr): Likewise.
6889
6890 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
6891
6892         PR debug/43983
6893         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
6894         by SRA.
6895         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
6896         * tree-sra.c (create_access_replacement): Call unshare_expr before
6897         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
6898         * dwarf2out.c: Include tree-flow.h.
6899         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
6900         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
6901         Handle DW_OP_bit_piece.
6902         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
6903         construct_piece_list, adjust_piece_list): New functions.
6904         (add_var_loc_to_decl): Handle SRA optimized variables.
6905         Adjust for var_loc_note to loc field renaming.
6906         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
6907         in VAR_LOCATION note.
6908         (new_loc_descr_op_bit_piece): New function.
6909         (dw_sra_loc_expr): New function.
6910         (dw_loc_list): Use it.  Don't handle the last range after the
6911         loop, handle it inside of the loop.  Adjust for var_loc_note
6912         to loc field renaming.
6913         (add_location_or_const_value_attribute): Only special case
6914         single entry loc lists if loc is NOTE_P.  Adjust for
6915         var_loc_note to loc field renaming.
6916         (dwarf2out_var_location): Don't set newloc->var_loc_note
6917         and newloc->next here.
6918
6919 2010-05-12  Jan Hubicka  <jh@suse.cz>
6920
6921         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
6922         flag.
6923         * cgraph.h (cgraph_only_called_directly_p,
6924         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
6925         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
6926         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
6927         (assemble
6928         * ipa.c (cgraph_remove_unreachable_nodes): Use
6929         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
6930         flags.
6931         * tree-inline.c (copy_bb): Check address_taken flag.
6932         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
6933         externally_visible flag.
6934
6935 2010-05-12  Jason Merrill  <jason@redhat.com>
6936
6937         PR bootstrap/44048
6938         PR target/44099
6939         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
6940         * sdbout.c (plain_type_1): Likewise.
6941         * dwarf2out.c (is_base_type): Likewise.
6942         (gen_type_die_with_usage): Likewise.  Generate
6943         DW_TAG_unspecified_type for any LANG_TYPE.
6944
6945 2010-05-12  Jan Hubicka  <jh@suse.cz>
6946
6947         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
6948         indrect edges too.
6949         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
6950         (cgraph_clone_edge): Update.
6951         (cgraph_node_remove_callees): Remove indirect calls too.
6952         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
6953         (cgraph_create_indirect_edge): Update prototype.
6954         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
6955         is_proper_for_analysis.
6956         (add_new_function, visited_nodes, function_insertion_hook_holder,
6957         get_local_reference_vars_info, mark_address_taken, mark_address,
6958         mark_load, mark_store, check_asm_memory_clobber, check_call,
6959         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
6960         (ipa_init): Do not initialize visited_nodes;
6961         function_insertion_hook_holder.
6962         (analyze_variable): Rewrite.
6963         (analyze_function): Rewrite.
6964         (copy_local_bitmap): Remove.
6965         (duplicate_node_dat): Do not duplicate local info.
6966         (generate_summary): Simplify to only walk cgraph.
6967         (write_node_summary_p, ipa_reference_write_summary,
6968         ipa_reference_read_summary): Remove.
6969         (propagate): Do not remove function insertion;
6970         generate summary.
6971         (pass_ipa_reference): NULLify summary handling fields.
6972         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
6973         (input_edge): Input ecf_flags.
6974         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
6975         (update_indirect_edges_after_inlining): Ignore edges with unknown
6976         param.
6977
6978 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
6979
6980         * implicit-zee.c: New file.
6981         * tree-pass.h (pass_implicit_zee): Declare.
6982         * passes.c (init_optimization_passes): Add zee pass.
6983         * common.opt (fzee): New flag.
6984         * timevar.def (TV_ZEE): Define.
6985         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
6986         and beyond.
6987         * Makefile.in (implicit-zee.o): Add new build file.
6988
6989 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
6990             Nathan Froyd  <froydnj@codesourcery.com>
6991
6992         * c-common.c (sync_resolve_params): Remove write-only variable.
6993
6994 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
6995
6996         * target.h (struct gcc_target): Add mode_dependent_address_p field.
6997         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
6998         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
6999         * targhooks.c (default_mode_dependent_address_p): New function.
7000         * targhooks.h (default_mode_dependent_address_p): Declare function.
7001         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
7002         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
7003         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
7004         target hook. Change return type to bool.
7005         * recog.h (mode_dependent_address_p): Change return type to bool.
7006
7007 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7008             Nathan Froyd  <froydnj@codesourcery.com>
7009
7010         * tree-mudflap.c (build_function_type_0, build_function_type_1,
7011         build_function_type_2, build_function_type_3): Remove.
7012         (mudflap_init): Use build_function_type_list.
7013
7014 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
7015             Nathan Froyd  <froydnj@codesourcery.com>
7016
7017         * coverage.c (build_fn_info_value): Call build_constructor instead of
7018         build_constructor_from_list.
7019         (build_ctr_info_value): Likewise.
7020         (build_gcov_info): Likewise.
7021
7022 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
7023
7024         * tree.c (build_constructor): Compute TREE_CONSTANT for the
7025         resultant constructor.
7026         (build_constructor_single): Don't set TREE_CONSTANT.
7027         (build_constructor_from_list): Don't compute TREE_CONSTANT.
7028
7029 2010-05-12  Jan Hubicka  <jh@suse.cz>
7030
7031         * cgraph.h (struct varpool_node): Add aux.
7032         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
7033         * varpool.c (varpool_remove_node): Do not remove initializer.
7034         (varpool_reset_queue): Export.
7035         (varpool_finalize_decl): Volatile vars are forced to be output.
7036         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
7037         replaced decl.
7038         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
7039         process_references, varpool_can_remove_if_no_refs): New functions.
7040         (cgraph_remove_unreachable_nodes): Handle variables too.
7041
7042 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7043
7044         PR target/44088
7045         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
7046
7047 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
7048
7049         PR middle-end/44085
7050         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
7051         change value of ORT_TASK.
7052         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
7053         (omp_notice_threadprivate_variable): New function.
7054         (omp_notice_variable): Call it for threadprivate variables.
7055         If enclosing ctx is a task, print enclosing task rather than
7056         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
7057         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
7058         if task has untied clause.
7059
7060         PR debug/42278
7061         * dwarf2out.c (base_type_die): Don't add name attribute here.
7062         (modified_type_die): Instead of sizetype use
7063         its underlying original type.  If a DW_TAG_base_type doesn't
7064         have name added, add __unknown__.
7065         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
7066         always call force_type_die instead.
7067
7068 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
7069
7070         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
7071         for __stack_chk_guard.
7072
7073 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7074
7075         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
7076         don't call start_source_file debug hook here...
7077         (finish_options): ... but here, after outputting predefined and
7078         command line defines and undefs.
7079
7080         PR middle-end/44071
7081         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
7082         no fallthru edge.
7083         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
7084         optimizing away empty bb with no successors, move over its
7085         footer chain to fallthru predecessor.
7086         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
7087         (rtl_split_edge): For asm goto call patch_jump_insn even if
7088         splitting fallthru edge.
7089
7090         PR c++/44059
7091         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
7092         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
7093         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
7094         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
7095         on DW.ref.* decls.
7096
7097         PR c++/44062
7098         * c-parser.c (c_parser_expression): Mark LHS of a comma
7099         expression as read if it is a decl, handled component or
7100         COMPOUND_EXPR with that on the RHS.
7101         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
7102         if it is a decl or handled component.
7103
7104 2010-05-11  Jan Hubicka  <jh@suse.cz>
7105
7106         * lto-symtab.c (lto_symtab_free): New function.
7107         * lto-streamer.h (lto_symtab_free): Declare.
7108
7109 2010-05-11  Jan Hubicka  <jh@suse.cz>
7110
7111         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
7112         that if function is needed it is reachable.
7113         (lto_output_node): See if it the function is reachable or referenced.
7114         (output_cgraph): Update call of lto_output_node.
7115         * lto-streamer.h (reachable_from_other_partition_p): Declare.
7116
7117 2010-05-11  Jan Hubicka  <jh@suse.cz>
7118
7119         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
7120         Mark as used.
7121
7122 2010-05-11  Jan Hubicka  <jh@suse.cz>
7123
7124         PR tree-optimize/44063
7125         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
7126         queue.
7127         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
7128         limits.
7129         (estimate_function_body_sizes): Compute sizes even when disregarding.
7130
7131 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
7132
7133         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
7134
7135 2010-05-11  Jan Hubicka  <jh@suse.cz>
7136
7137         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
7138         into every boundary.
7139
7140 2010-05-11  Jan Hubicka  <jh@suse.cz>
7141
7142         * matrix-reorg.c (matrix_reorg): Rebuild edges.
7143
7144 2010-05-11  Jan Hubicka  <jh@suse.cz>
7145
7146         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
7147         lto_streamer_cache_delete): Put nodes into heap.
7148         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
7149         heap.
7150
7151 2010-05-11  Jan Hubicka  <jh@suse.cz>
7152
7153         * cgraphbuild.c (cgraph_rebuild_references): New.
7154         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
7155         out extern inlines.
7156         * cgraph.h (cgraph_rebuild_references): Declare.
7157         * tree-inline.c (tree_function_versioning): Use it.
7158         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
7159
7160 2010-05-11  Jan Hubicka  <jh@suse.cz>
7161
7162         * cgraph.c: Include ipa-utils.h
7163         (cgraph_create_virtual_clone): Update references.
7164         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
7165
7166 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7167
7168         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
7169         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
7170         cache size.
7171
7172 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
7173
7174         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
7175
7176 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
7177
7178         * gcc.c (execute): For -### don't quote arguments that
7179         contain just alphanumerics and _/-. characters.
7180         * doc/invoke.texi: Document that change for -###.
7181
7182         PR debug/44023
7183         * df-problems.c (struct dead_debug): Add to_rescan field.
7184         (dead_debug_init): Clear to_rescan field.
7185         (dead_debug_finish): Rescan all debug insns in to_rescan
7186         bitmap and free the bitmap.
7187         (dead_debug_insert_before): Instead of rescanning debug insns
7188         immediately queue their rescanning until dead_debug_finish.
7189         (df_note_bb_compute): After dead_debug_add do continue instead
7190         of break.
7191
7192 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
7193
7194         PR debug/44028
7195         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
7196         clear also INSN_REG_USE_LIST.
7197
7198 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7199
7200         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
7201
7202 2010-05-10  Jan Hubicka  <jh@suse.cz>
7203
7204         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
7205         commited change.
7206
7207 2010-05-10  Jan Hubicka  <jh@suse.cz>
7208
7209         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
7210         Allocate encoders.
7211         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
7212         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
7213         (lto_streamer_cache_create): Init alloc pool.
7214         (lto_streamer_cache_delete): Free alloc pool.
7215         * lto-streamer.h: Include alloc pool.
7216         (lto_streamer_cache_d): Use alloc pool.
7217         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
7218
7219 2010-05-10  Jan Hubicka  <jh@suse.cz>
7220
7221         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
7222         * cgraphbuild.c: Include except.h
7223         (record_type_list, record_eh_tables): New function.
7224         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
7225
7226 2010-05-10  Jan Hubicka  <jh@suse.cz>
7227
7228         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
7229         __frame_dummy_init_array_entry, force_to_data): Attribute as used
7230         rather than unused.
7231
7232 2010-05-10  Michael Matz  <matz@suse.de>
7233
7234         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
7235         (can_reassociate_p): Use FLOAT_TYPE_P.
7236         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
7237         (vect_force_simple_reduction): ... this.
7238         * tree-parloops.c (gather_scalar_reductions): Use
7239         vect_force_simple_reduction.
7240         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
7241         vect_is_simple_reduction, add modify argument, if true rewrite
7242         "a-b" into "a+(-b)".
7243         (vect_is_simple_reduction, vect_force_simple_reduction): New
7244         functions.
7245         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
7246
7247 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7248             Vladimir Makarov  <vmakarov@redhat.com>
7249
7250         PR rtl-optimization/44012
7251         * ira-build.c (remove_unnecessary_allocnos): Nullify
7252         regno_allocno_map of the removed allocno.
7253
7254 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7255
7256         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
7257         to /dev/null.
7258         * configure: Regenerate.
7259
7260 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7261
7262         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
7263         unused.
7264         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
7265         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
7266         support in Sun ld.
7267         * configure: Regenerate.
7268
7269 2010-05-10  Richard Guenther  <rguenther@suse.de>
7270
7271         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
7272         marked if the entry identifier is marked.
7273
7274 2010-05-10  Richard Guenther  <rguenther@suse.de>
7275
7276         * c-common.c (struct c_common_attributes): Add fnspec attribute.
7277         (handle_fnspec_attribute): New function.
7278         * gimple.h (gimple_call_return_flags): Declare.
7279         (gimple_call_arg_flags): Likewise.
7280         * gimple.c (gimple_call_arg_flags): New function.
7281         (gimple_call_return_flags): Likewise.
7282         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
7283         New argument flags.
7284         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
7285         return value flags.
7286         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
7287         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
7288         main work to ...
7289         (make_heapvar_for): ... this new function.
7290         (handle_rhs_call): Handle fnspec attribute argument specifiers.
7291         (handle_lhs_call): Likewise.
7292         (find_func_aliases): Adjust.
7293
7294 2010-05-10  Richard Guenther  <rguenther@suse.de>
7295
7296         PR tree-optimization/44050
7297         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
7298
7299 2010-05-10  Wei Guozhi  <carrot@google.com>
7300
7301         PR target/42879
7302         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
7303
7304 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7305
7306         PR c/10676
7307         * c-typeck.c (lookup_field): Take a type directly.  Update
7308         recursive calls.
7309         (build_component_ref): Update call to lookup_field.
7310         (set_init_label): Use lookup_field to find initialized field.
7311         Handle returned list of fields like a sequence of designators.
7312
7313 2010-05-09  Richard Guenther  <rguenther@suse.de>
7314
7315         PR middle-end/44024
7316         * fold-const.c (tree_single_nonzero_warnv_p): Properly
7317         handle &FUNCTION_DECL.
7318
7319 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
7320
7321         PR c/4784
7322         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
7323         structures and unions recursively.
7324         (detect_field_duplicates): Move duplicate detection with a hash to
7325         detect_field_duplicates_hash.  Always use a hash if anonymous
7326         structures or unions are present.
7327         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
7328         give errors.
7329
7330 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7331
7332         PR target/44046
7333         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
7334         detect Atom, Core 2 and Core i7.
7335
7336 2010-05-09  Richard Guenther  <rguenther@suse.de>
7337
7338         * gcc.c (store_arg): Handle temporary file deletion for
7339         joined arguments.
7340
7341 2010-05-09  Richard Guenther  <rguenther@suse.de>
7342
7343         PR middle-end/44043
7344         * ipa-inline.c (estimate_function_body_sizes): Return after
7345         disregarding inline limits.
7346
7347 2010-05-09  Richard Guenther  <rguenther@suse.de>
7348
7349         * gcc.c (store_arg): Revert last change.
7350
7351 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
7352
7353         PR middle-end/28685
7354         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
7355         (optimize_ops_list): Call it.
7356
7357 2010-05-08  Richard Guenther  <rguenther@suse.de>
7358
7359         PR tree-optimization/44030
7360         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
7361         NECESSARY flag if we propagate from a inserted expression.
7362
7363 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7364
7365         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
7366         domain types as equal if they are both PLACEHOLDER_EXPRs.
7367
7368 2010-05-08  Richard Guenther  <rguenther@suse.de>
7369
7370         * lto-wrapper.c (run_gcc): Remove linker output from
7371         command line for LTRANS invocation.
7372
7373 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7374
7375         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7376         lto-macho as lto_binary_reader.
7377         * target.h (struct gcc_target): New hooks lto_start and lto_end.
7378         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
7379         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
7380         in lto_start and lto_end calls.
7381         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
7382         magic numbers.
7383         (scan_prog_file): Update is_elf_or_coff call.
7384         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
7385
7386         * collect2.c (main): Fix enum comparison.
7387
7388         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
7389         Add prototypes.
7390         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
7391         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
7392         and TARGET_ASM_LTO_END.
7393         * darwin.c: Include obstack.h and lto-streamer.h.
7394         (lto_section_names_offset, lto_section_names_obstack,
7395         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
7396         global variables.
7397         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
7398         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
7399         to a temporary file.
7400         (darwin_asm_lto_end): New function.  Restore asm_out_file.
7401         (darwin_asm_named_section): For LTO sections, replace the name with
7402         the offset of the section name in a string table, and build this
7403         table.
7404         (darwin_file_start): Initialize global vars for LTO support.
7405         (darwin_file_end): If output to asm_out_file was redirected, append it
7406         to the proper asm_out_file here.  Add the section names section.
7407
7408 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
7409
7410         * c-pragma.c (pending_weak_d, pending_weak): New.
7411         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
7412         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
7413         handle_pragma_weak): Update the uses of pending_weaks.
7414
7415 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7416
7417         PR documentation/44016
7418         * doc/standards.texi (Standards): Link to unversioned
7419         cxx0x_status.html page.
7420
7421 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
7422
7423         PR target/43708
7424         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
7425         in addition to TREE_USED, to avoid "set but unused" warnings.
7426
7427 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7428
7429         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
7430         (is_loop_prefetching_profitable): Do not insert prefetches
7431         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
7432         times the prefetch ahead distance.
7433
7434 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7435
7436         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
7437         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
7438         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
7439         the unroll_factor.
7440
7441 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
7442
7443         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
7444         a diagnostic info when the insn-to-mem ratio is too small.
7445
7446 2010-05-07  Richard Guenther <rguenther@suse.de>
7447
7448         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
7449         the linker plugin.
7450         (store_arg): Queue temp_filename for deletion instead of
7451         the whole argument.
7452
7453 2010-05-07  Richard Guenther  <rguenther@suse.de>
7454
7455         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
7456         (run_gcc): Handle LTRANS phase invocation.
7457         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
7458
7459 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
7460
7461         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
7462         this is also meaningful on PARM_DECLs and RESULT_DECLs.
7463
7464 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7465
7466         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
7467
7468 2010-05-07  Richard Guenther  <rguenther@suse.de>
7469
7470         PR tree-optimization/44020
7471         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
7472         code when PRE is not yet initialized.
7473
7474 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7475
7476         * config/mips/dbxmdebug.h: Remove.
7477         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
7478
7479 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
7480
7481         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
7482         with null pointer and also warn about ordered comparison of zero with
7483         pointer if -Wextra.
7484
7485 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7486
7487         * graphite-blocking.c
7488         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
7489         * graphite-clast-to-gimple.c
7490         (clast_to_gcc_expression): Same.
7491         (precision_for_value): Same.
7492         (precision_for_interval): Same.
7493         (gcc_type_for_interval): Same.
7494         (graphite_create_new_guard): Same.
7495         (compute_bounds_for_level): Same.
7496         (graphite_create_new_loop_guard): Same.
7497         * graphite-interchange.c
7498         (build_linearized_memory_access): Same.
7499         (pdr_stride_in_loop): Same.
7500         (memory_strides_in_loop_1): Same.
7501         (memory_strides_in_loop): Same.
7502         (extend_scattering): Same.
7503         (psct_scattering_dim_for_loop_depth): Same.
7504         (pbb_number_of_iterations): Same.
7505         * graphite-poly.h
7506         (debug_iteration_domains): Same.
7507         * graphite-ppl.c
7508         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7509         (ppl_set_inhomogeneous_gmp): Same.
7510         (ppl_strip_loop): Same.
7511         (ppl_lexico_compare_linear_expressions): Same.
7512         (ppl_read_polyhedron_matrix): Same.
7513         (ppl_max_for_le_pointset): Same.
7514         * graphite-ppl.h
7515         (ppl_read_polyhedron_matrix): Same.
7516         (tree_int_to_gmp): Same.
7517         (gmp_cst_to_tree): Same.
7518         (ppl_set_inhomogeneous): Same.
7519         (ppl_set_inhomogeneous_tree): Same.
7520         (ppl_set_coef): Same.
7521         (ppl_set_coef_tree): Same.
7522         * graphite-sese-to-poly.c
7523         (build_pbb_scattering_polyhedrons): Same.
7524         (build_scop_scattering): Same.
7525         (scan_tree_for_params_right_scev): Same.
7526         (scan_tree_for_params): Same.
7527         (find_params_in_bb): Same.
7528         (find_scop_parameters): Same.
7529         (add_upper_bounds_from_estimated_nit): Same.
7530         (build_loop_iteration_domains): Same.
7531         (add_condition_to_domain): Same.
7532         (pdr_add_memory_accesses): Same.
7533
7534 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7535
7536         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
7537         CLooG's value_* macros to their respective mpz_* counterparts.
7538         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
7539         (graphite_create_new_loop_guard): Same.
7540         * graphite-interchange.c (build_linearized_memory_access): Same.
7541         (pdr_stride_in_loop): Same.
7542         (memory_strides_in_loop_1): Same.
7543         (1st_interchange_profitable_p): Same.
7544         * graphite-poly.c (extend_scattering): Same.
7545         (psct_scattering_dim_for_loop_depth): Same.
7546         (pbb_number_of_iterations): Same.
7547         (pbb_number_of_iterations_at_time): Same.
7548         * graphite-poly.h (new_1st_loop): Same.
7549         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
7550         (oppose_constraint): Same.
7551         (insert_constraint_into_matrix): Same.
7552         (ppl_set_inhomogeneous_gmp): Same.
7553         (ppl_set_coef_gmp): Same.
7554         (ppl_strip_loop): Same.
7555         (ppl_lexico_compare_linear_expressions): Same.
7556         (ppl_max_for_le_pointset): Same.
7557         (ppl_min_for_le_pointset): Same.
7558         (ppl_build_realtion): Same.
7559         * graphite-ppl.h (gmp_cst_to_tree): Same.
7560         (ppl_set_inhomogeneous): Same.
7561         (ppl_set_inhomogeneous_tree): Same.
7562         (ppl_set_coef): Same.
7563         (ppl_set_coef_tree): Same.
7564         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
7565         (build_scop_scattering): Same.
7566         (add_value_to_dim): Same.
7567         (scan_tree_for_params_right_scev): Same.
7568         (scan_tree_for_params_int): Same.
7569         (scan_tree_for_params): Same.
7570         (find_params_in_bb): Same.
7571         (find_scop_parameters): Same.
7572         (add_upper_bounds_from_estimated_nit): Same.
7573         (build_loop_iteration_domains): Same.
7574         (create_linear_expr_from_tree): Same.
7575         (add_condition_to_domain): Same.
7576         (pdr_add_memory_accesses): Same.
7577
7578 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
7579             Jason Merrill  <jason@redhat.com>
7580
7581         * c-common.c (c_common_reswords): Add nullptr.
7582         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
7583         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
7584         (gen_type_die_with_usage): Likewise.
7585         * dbxout.c (dbxout_type): Likewise.
7586         * sdbout.c (plain_type_1): Likewise.
7587
7588 2010-05-06  Jason Merrill  <jason@redhat.com>
7589
7590         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
7591         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
7592         ret appropriately.
7593         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
7594
7595         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
7596         stripping WITH_SIZE_EXPR.
7597         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
7598         change.
7599
7600 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7601
7602         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
7603         list of obsolete configurations.
7604         Disabled check for obsolete configurations.
7605         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
7606         Removed support for previous versions.
7607         * config/mips/iris.h: Removed.
7608         * config/mips/iris5.h: Removed.
7609         * config/mips/iris6.h: Merged old iris.h contents.
7610         (TARGET_IRIX): Removed.
7611         (DRIVER_SELF_SPECS): Removed mabi=32.
7612         (IDENT_ASM_OP): Removed undef.
7613         (STARTFILE_SPEC): Removed mabi=32.
7614         (ENDFILE_SPEC): Likewise.
7615         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
7616         (MACHINE_TYPE): Update for IRIX 6.5.
7617         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
7618         TARGET_IRIX by TARGET_IRIX6.
7619         (mips_file_start): Likewise.
7620         (mips_output_external): Remove IRIX 5/6 O32 support.
7621         (mips_output_function_prologue): Likewise.
7622         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
7623         TARGET_IRIX6.
7624         (TARGET_CPU_CPP_BUILTINS): Likewise.
7625         (TARGET_IRIX): Removed.
7626         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
7627         (MULTILIB_DIRNAMES): Removed 32.
7628         (MULTILIB_OSDIRNAMES): Removed ../lib.
7629         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
7630         (Specific, mips-sgi-irix5): Document removal.
7631         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
7632         Remove references to older IRIX 6 releases and the O32 ABI.
7633
7634 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
7635
7636         PR bootstrap/43994
7637         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
7638         instead of DF_REF_REAL_REG.
7639
7640 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
7641
7642         PR target/43888
7643         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
7644         handling to still return true for x64 targets.
7645
7646 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7647
7648         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
7649
7650 2010-05-06  Jan Hubicka  <jh@suse.cz>
7651
7652         PR tree-optimization/43791
7653         * ipa-inline.c (update_caller_keys): Remove bogus
7654         disregard_inline_limits check.
7655
7656 2010-05-06  Michael Matz  <matz@suse.de>
7657
7658         PR tree-optimization/43984
7659         * tree-ssa-pre.c (inserted_phi_names): Remove.
7660         (inserted_exprs): Change to bitmap.
7661         (create_expression_by_pieces): Set bits, don't append to vector.
7662         (insert_into_preds_of_block): Don't handle inserted_phi_names.
7663         (eliminate): Don't look at inserted_phi_names, remove deleted
7664         insns from inserted_exprs.
7665         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
7666         (init_pre, fini_pre): Allocate and free bitmaps.
7667         (execute_pre): Insert insns on edges before elimination.
7668
7669 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
7670
7671         * tree.c (initializer_zerop): Handle STRING_CST.
7672
7673 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7674
7675         PR 40989
7676         * doc/invoke.texi (Wimplicit): Document as C only.
7677         * opts.c (common_handle_option): Add argument kind.
7678         (handle_option): Rename as read_cmdline_option. Factor out code to...
7679         (handle_option): ... here. New.
7680         (handle_options): Rename as read_cmdline_options.
7681         (decode_options): Update call.
7682         (set_option): Use option index instead of option pointer. Classify
7683         diagnostics correctly.
7684         (enable_warning_as_error): Call handle_option.
7685         * opts.h (set_option): Update declaration.
7686         (handle_option): Declare.
7687         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
7688         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
7689         * c-opts.c (set_Wimplicit): Delete.
7690         (c_family_lang_mask): New static constant.
7691         (c_common_handle_option): Add argument kind. Use handle_option
7692         instead of set_Wimplicit.
7693         (c_common_post_options): warn_implicit and warn_implicit_int
7694         are disabled by default.
7695         * c-common.c (warn_implicit): Do not define here.
7696         * c-common.h (warn_implicit): Do not declare here.
7697         (c_common_handle_option): Update declaration.
7698         * lto-opts.c (lto_reissue_options): Update call to set_option.
7699
7700 2010-05-06  Richard Guenther  <rguenther@suse.de>
7701
7702         PR tree-optimization/43571
7703         * domwalk.c (walk_dominator_tree): Walk the dominator
7704         sons in more optimal order.
7705
7706 2010-05-06  Richard Guenther  <rguenther@suse.de>
7707
7708         PR tree-optimization/43934
7709         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
7710         (stmt_cost): Likewise.
7711         (extract_true_false_args_from_phi): New helper.
7712         (determine_max_movement): For PHI nodes verify we can hoist them
7713         and compute their cost.
7714         (determine_invariantness_stmt): Handle PHI nodes.
7715         (move_computations_stmt): Likewise.  Hoist PHI nodes in
7716         if-converted form using COND_EXPRs.
7717         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
7718         (tree_ssa_lim): Likewise.
7719         * tree-flow.h (tree_ssa_lim): Adjust prototype.
7720         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
7721
7722 2010-05-06  Richard Guenther  <rguenther@suse.de>
7723
7724         PR tree-optimization/43987
7725         * tree-ssa-structalias.c (could_have_pointers): For possibly
7726         address-taken variables force pointers to be recorded.
7727         (create_variable_info_for_1): Likewise.
7728         (push_fields_onto_fieldstack): Pass in wheter all fields
7729         must have pointers.
7730         (find_func_aliases): Query types instead of vars whether
7731         they contain pointers where appropriate.
7732
7733 2010-05-06  Jan Hubicka  <jh@suse.cz>
7734
7735         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
7736         (record_reference, mark_address, mark_load, mark_store): Record
7737         references.
7738         (record_references_in_initializer): Update call of record_references.
7739         (rebuild_cgraph_edges): Remove all references before rebuiding.
7740         * cgraph.c (cgraph_create_node): Clear ref list.
7741         (cgraph_remove_node): Remove references.
7742         (dump_cgraph_node): Dump references.
7743         (cgraph_clone_node): Clone references.
7744         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
7745         (struct cgraph_node, varpool_node): Add ref_lst.
7746         * ipa-ref.c: New file.
7747         * ipa-ref.h: New file.
7748         * ipa-ref-inline.h: New file.
7749         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
7750         (referenced_from_other_partition_p): New function.
7751         (lto_output_varpool_node): Take set arugment; call
7752         referenced_from_other_partition.
7753         (lto_output_ref): New.
7754         (add_references): New.
7755         (output_refs): New.
7756         (output_cgraph): Compute boundary based on references; output refs.
7757         (output_varpool): Accept cgraph_node_set argument.
7758         (input_ref): New.
7759         (input_refs): New.
7760         (input_cgraph): Call input_refs.
7761         * lto-section-in.c (lto_section_name): Add refs.
7762         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
7763         (ipa-ref.o): New file.
7764         * varpool.c (varpool_node): Clear ipa ref list.
7765         (varpool_remove_node): Remove references.
7766         (dump_varpool_node): Dump references.
7767         (varpool_assemble_decl): Only compile finalized ones.
7768         (varpool_extra_name_alias): Initialize ref list.
7769         * lto-streamer.c (lto-get_section_name): Add .refs section.
7770         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
7771         (referenced_from_other_partition_p): Declared.
7772
7773 2010-05-06  Ira Rosen  <irar@il.ibm.com>
7774
7775         PR tree-optimization/43901
7776         * tree-vect-stmts.c (vectorizable_call): Assert that vector
7777         type is not NULL if it's transformation phase, and return
7778         FALSE if it's analysis.
7779         (vectorizable_conversion, vectorizable_operation,
7780         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
7781
7782 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
7783
7784         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
7785         Delete.
7786         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
7787         New define.
7788         * config/mips/mips-protos.h
7789         (mips_small_register_classes_for_mode_p): Delete prototype.
7790
7791 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
7792
7793         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
7794         * config/arm/arm.c (multiple_operation_profitable_p,
7795         compute_offset_order): New static functions.
7796         (load_multiple_sequence, store_multiple_sequence): Use them.
7797         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
7798         memory offsets, not register numbers.
7799         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
7800
7801 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
7802
7803         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
7804         (get_pending_sizes, put_pending_size, put_pending_sizes):
7805         Update the uses of pending_sizes.
7806         * c-decl.c (store_parm_decls): Likewise.
7807         * c-tree.h (struct c_arg_info): Likewise.
7808         * tree.h: Update the prototype for get_pending_sizes and
7809         put_pending_sizes.
7810
7811 2010-05-05  Jason Merrill  <jason@redhat.com>
7812
7813         PR debug/43370
7814         * c-common.c (handle_aligned_attribute): Respect
7815         ATTR_FLAG_TYPE_IN_PLACE.
7816
7817         PR testsuite/43758
7818         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
7819         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
7820         (TARGET_INITIALIZER): Use it.
7821         * c-common.c (attribute_takes_identifier_p): Call it.
7822         * c-common.h: Update prototype.
7823         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
7824         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
7825
7826 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
7827
7828         PR debug/43950
7829         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
7830         DW_ID_down_case for Fortran compilation units.
7831
7832 2010-05-05  Jan Hubicka  <jh@suse.cz>
7833
7834         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
7835         handle aliases.
7836
7837 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7838
7839         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
7840         a variable-sized RESULT_DECL.
7841
7842 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
7843
7844         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
7845
7846 2010-05-05  Jason Merrill  <jason@redhat.com>
7847
7848         PR c++/43787
7849         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
7850         returns GS_OK.
7851         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
7852
7853 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
7854             Jakub Jelinek  <jakub@redhat.com>
7855
7856         PR debug/43478
7857         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
7858         (dead_debug_init, dead_debug_finish): New functions.
7859         (dead_debug_add, dead_debug_insert_before): Likewise.
7860         (df_note_bb_compute): Initialize a dead_debug object, add dead
7861         debug uses to it, insert debug bind insns before death insns,
7862         reset debug insns that refer to pending uses at the end.
7863         * rtl.h (make_debug_expr_from_rtl): New prototype.
7864         * varasm.c (make_debug_expr_from_rtl): New function.
7865
7866 2010-05-05  Jan Hubicka  <jh@suse.cz>
7867
7868         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
7869         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
7870         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
7871         lto_varpool_encoder_deref, lto_varpool_encoder_size,
7872         lto_varpool_encoder_encode_initializer_p,
7873         lto_set_varpool_encoder_encode_initializer): New functions.
7874         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
7875         call output_varpool.
7876         (input_varpool_node): Do not always set analyzed.
7877         (input_cgraph_1): Return vector of cgraph nodes.
7878         (input_varpool_1): Return vector of varpools.
7879         (input_cgraph): Free the vectors.
7880         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
7881         output only initializers needed.
7882         (lto_output): Only call output_cgraph.
7883         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
7884         * lto-section-out.c (lto_new_out_decl_state): Initialize
7885         state->varpool_node_encoder.
7886         * lto-streamer.h (lto_varpool_encoder_d): New.
7887         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
7888         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
7889         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
7890         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
7891         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
7892         Declare.
7893         (output_varpool, input_varpool): Remove declarations.
7894
7895 2010-05-05  Jan Hubicka  <jh@suse.cz>
7896
7897         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
7898         with body can prevail.
7899
7900 2010-05-05  Jan Hubicka  <jh@suse.cz>
7901
7902         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
7903         size.
7904
7905 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7906
7907         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
7908
7909         * gengtype.h (erro_at_line): Constify pos argument.
7910
7911         * gengtype.c: Include hashtab.h.
7912         (enum gc_used): Document GC_MAYBE_POINTED_TO.
7913         (error_at_line): Constify pos argument.
7914         (do_typedef): Initialize p->opt field.
7915         (get_file_gtfilename): Fix comment typo.
7916         (struct walk_type_data): Constify line field.
7917         (get_output_file_for_structure): New function.
7918         (write_local_func_for_structure): Constify orig_s argument.
7919         Use get_output_file_for_structure.
7920         (write_func_for_structure): Use get_output_file_for_structure.
7921         (INDENT): New define.
7922         (dump_pair, dump_type, dump_type_list, dump_typekind)
7923         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
7924         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
7925         functions.
7926         (seen_types): New variable.
7927         (main): New variable do_dump.  Process "-d" command line option.
7928         Call dump_everything if dump requested.
7929
7930 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
7931
7932         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
7933         in a temporary instead of invoking the macro multiple times.
7934         (track_expr_p): Likewise.
7935
7936 2010-05-04  Neil Vachharajani <nvachhar@google.com>
7937
7938         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
7939         per new semantics.
7940         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
7941         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
7942         conditions for printing notes.
7943         * common.opt (-Wcoverage-mismatch): Allow negative, default to
7944         true, update documentation.
7945         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
7946
7947 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
7948
7949         PR c/43981
7950         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
7951         on dimen.
7952
7953 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7954
7955         PR target/43799
7956         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
7957         (*sse_prologue_save_insn1): Likewise.
7958         (SSE prologue save splitter): Likewise.
7959
7960 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7961
7962         * tree.c (free_lang_data_in_one_sizepos): New inline function.
7963         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
7964         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
7965         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
7966         all decls.  Call it on DECL_FIELD_OFFSET of fields.
7967         (find_decls_types_r): Follow DECL_VALUE_EXPR.
7968         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
7969
7970 2010-05-04  Martin Jambor  <mjambor@suse.cz>
7971
7972         * tree-sra.c (build_access_from_expr_1): The first parameter type
7973         changed to simple tree.
7974         (build_access_from_expr): Likewise, gsi parameter was eliminated.
7975         (scan_assign_result): Renamed to assignment_mod_result, enum elements
7976         renamed as well.
7977         (build_accesses_from_assign): Removed all parameters except for a
7978         simple gimple statement.  Now returns a simple bool.
7979         (scan_function): All non-analysis parts moved to separate functions
7980         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
7981         parameters and updated both callers.
7982         (sra_modify_expr): Removed parameter data.
7983         (sra_modify_function_body): New function.
7984         (perform_intra_sra): Call sra_modify_function_body to modify the
7985         function body.
7986         (replace_removed_params_ssa_names): Parameter data changed into
7987         adjustments vector.
7988         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
7989         changed the parameter dont_convert to convert with the opposite
7990         meaning.
7991         (sra_ipa_modify_assign): Parameter data changed into adjustments
7992         vector, return value changed to bool.
7993         (ipa_sra_modify_function_body): New function.
7994         (sra_ipa_reset_debug_stmts): Updated a comment.
7995         (modify_function): Use ipa_sra_modify_function_body to modify function
7996         body.
7997
7998 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7999
8000         PR middle-end/43671
8001         * alias.c (true_dependence): Handle the same VALUE in x and mem.
8002         (canon_true_dependence): Likewise.
8003         (write_dependence_p): Likewise.
8004
8005 2010-05-04  Jan Hubicka  <jh@suse.cz>
8006
8007         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
8008         * cgraphbuild.c: Include ipa-utils.h
8009         (record_reference_ctx): New struct.
8010         (record_reference): Simplify to work on initializers; not statements.
8011         (mark_address, mark_load, mark_store): New.
8012         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8013         walk PHI nodes too.
8014         (record_references_in_initializer): Update use of record_reference.
8015         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
8016         walk PHI nodes too.
8017
8018 2010-05-04  Jan Hubicka  <jh@suse.cz>
8019
8020         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
8021         node will be removed anyway.
8022         (lto_varpool_replace_node): Allow also unanalyzed nodes;
8023         relink aliases of node into prevailing node.
8024         * varpool.c (varpool_remove_node): Remove aliases properly;
8025         when removing node, remove all its aliases too; remove DECL_INITIAL
8026         of removed node; ggc_free the varpool node.
8027
8028 2010-05-04  Richard Guenther  <rguenther@suse.de>
8029
8030         PR tree-optimization/43879
8031         * tree-ssa-structalias.c (alias_get_name): Use
8032         DECL_ASSEMBLER_NAME if available.
8033         (create_function_info_for): Return the varinfo node.
8034         (ipa_pta_execute): Associate same-body aliases and extra names
8035         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
8036
8037 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8038
8039         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
8040
8041 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
8042
8043         PR bootstrap/43964
8044         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
8045         only if HONOR_REG_ALLOC_ORDER is not defined.
8046
8047 2010-05-04  Richard Guenther  <rguenther@suse.de>
8048
8049         PR tree-optimization/43949
8050         * tree-vrp.c (extract_range_from_binary_expr): Only handle
8051         TRUNC_MOD_EXPR.
8052
8053 2010-04-26  Jason Merrill  <jason@redhat.com>
8054
8055         * c.opt (-fstrict-enums): New.
8056         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
8057
8058 2010-05-03  David Ung <davidu@mips.com>
8059             James E. Wilson  <wilson@codesourcery.com>
8060
8061         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
8062         emit the trap instruction before the divide for TUNE_74K.
8063
8064 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
8065
8066         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
8067         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
8068         based on the above, for new target hook.
8069
8070         * hooks.c (hook_bool_mode_true): New generic hook.
8071         * hooks.h (hook_bool_mode_true): Add prototype.
8072
8073         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
8074         target hook.
8075         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
8076         target hook, set to hook_bool_mode_false.
8077         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
8078         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
8079         with targetm.small_register_classes_for_mode_p.
8080         (find_reusable_reload): Likewise.
8081         (combine_reloads): Likewise.
8082         * reload1.c (reload_as_needed): Likewise.
8083         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
8084         * ifcvt.c (noce_process_if_block, check_cond_move_block,
8085         dead_or_predicable): Likewise.
8086         * regmove.c (optimize_reg_copy_1): Likewise.
8087         * calls.c (prepare_call_address): Likewise.
8088         (precompute_register_parameters): Likewise.
8089
8090         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
8091         hook definition.
8092         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
8093         implementation of the hook that considers all register classes
8094         small except for SH64.
8095         (sh_override_options): Use the new hook.
8096         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
8097         Add prototype.
8098
8099         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
8100         hook definition.
8101         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
8102         implementation of the hook that considers all register classes
8103         small for THUMB1.
8104         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
8105         Add prototype.
8106
8107         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
8108         hook definition.
8109         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
8110         implementation of the hook that considers all register classes
8111         small for MIPS16.
8112         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
8113         Add prototype.
8114
8115         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
8116         hook definition.
8117         * config/m32c/m32c.h: Likewise.
8118         * config/pdp11/pdp11.h: Likewise.
8119         * config/avr/avr.h: Likewise.
8120         * config/xtensa/xtensa.h: Likewise.
8121         * config/m68hc11/m68hc11.h: Likewise.
8122         * config/mn10300/mn10300.h: Likewise.
8123         * config/mcore/mcore.h: Likewise.
8124         * config/h8300/h8300.h: Likewise.
8125         * config/bfin/bfin.h: Likewise.
8126
8127         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
8128         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
8129
8130 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
8131
8132         * double-int.h (tree_to_double_int): Remove macro.
8133         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
8134         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8135         (tree_to_double_int): New function.
8136         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
8137         Move ...
8138         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
8139
8140 2010-05-03  Richard Guenther  <rguenther@suse.de>
8141
8142         PR tree-optimization/43971
8143         * tree-ssa-structalias.c (get_constraint_for_1): Fix
8144         constraints in the !flag_delete_null_pointer_checks case.
8145
8146 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
8147
8148         PR debug/43972
8149         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
8150         result mode matches original rtl mode.
8151
8152 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
8153
8154         PR target/43888
8155         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
8156
8157 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8158
8159         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
8160         when processing flag options.
8161
8162 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8163
8164         * gcov-iov.c (main): Change format string placeholder
8165         from %#08x to 0x%08x.
8166         * genchecksum.c (dosum): Change format string placeholder
8167         from %#02x to 0x%02x.
8168
8169 2010-05-02  Richard Guenther  <rguenther@suse.de>
8170
8171         PR tree-optimization/43879
8172         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
8173
8174 2010-05-02  Bruno Haible  <bruno@clisp.org>
8175
8176         * doc/extend.texi (Function Attributes): Fix a typo.
8177
8178 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8179
8180         Revert:
8181         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
8182         placeholder from 0x%x to %#x.
8183         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8184         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
8185         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
8186         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
8187         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
8188         * config/i386/i386.c (ix86_target_string): Ditto.
8189         * config/i386/i386.c (output_pic_addr_const): Ditto.
8190         (print_operand): Ditto.
8191
8192 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
8193
8194         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
8195         placeholder from 0x%x to %#x.
8196         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
8197         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
8198         (ASM_OUTPUT_DEBUG_DATA): Ditto.
8199         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
8200         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
8201         * optc-gen.awk: Ditto.
8202         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
8203         (HOST_WIDE_INT_PRINT_HEX): Ditto.
8204         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
8205         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
8206
8207 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8208
8209         * target.h (struct calls): Add function_value_regno_p field.
8210         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
8211         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
8212         * targhooks.c (default_function_value_regno_p): New function.
8213         * targhooks.h (default_function_value_regno_p): Declare function.
8214         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
8215         * builtins.c. (apply_result_size): (Ditto.).
8216         * combine.c. (likely_spilled_retval_p): (Ditto.).
8217         * mode-switching.c. Include 'target.h'.
8218         (create_pre_exit): Use function_value_regno_p hook.
8219         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
8220         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
8221         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
8222
8223         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
8224         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
8225         (ix86_function_value_regno_p): Declare as static, change argument
8226         type to const unsigned int.
8227         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
8228
8229 2010-05-01  Richard Guenther  <rguenther@suse.de>
8230
8231         PR tree-optimization/43949
8232         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
8233         types.
8234         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
8235
8236 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
8237
8238         * rtl.h (CONST_DOUBLE_P): Define.
8239         (rtx_to_double_int): Declare.
8240         * emit-rtl.c (rtx_to_double_int): New function.
8241         * dwarf2out.c (insert_double): New function.
8242         (loc_descriptor, add_const_value_attribute): Clean up, use
8243         rtx_to_double_int and insert_double functions.
8244
8245 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
8246
8247         * doc/extend.texi (Inline): Add missing return keyword to examples.
8248         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
8249         "command-line".
8250
8251 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
8252
8253         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
8254         the variable part of the offset as well.  Use highest_pow2_factor for
8255         all alignment checks.
8256
8257 2010-04-30  Richard Guenther  <rguenther@suse.de>
8258
8259         PR tree-optimization/43879
8260         * tree-ssa-structalias.c (type_could_have_pointers): Functions
8261         can have pointers.
8262
8263 2010-04-30  Jan Hubicka  <jh@suse.cz>
8264
8265         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
8266         varpool.
8267         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
8268
8269 2010-04-30  Jan Hubicka  <jh@suse.cz>
8270
8271         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
8272         New.
8273         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
8274         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
8275         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
8276         cgraph_node_set_needs_ltrans_p): Remove.
8277
8278 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8279
8280         * sdbout.c: Include vec.h, do not include varray.h.
8281         (deferred_global_decls, sdbout_global_decl,
8282         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
8283         * toplev.c: Do not include varray.h.
8284         (dump_memory_report): Do not dump VARRAY statistics.
8285         * gengtype.c (open_base_file): Ignore varray.h.
8286         * Makefile.in: Update for abovementioned changes.
8287         Remove all traces of varray.c and varray.h.
8288         * varray.c: Remove file.
8289         * varray.h: Remove file.
8290
8291 2010-04-30  Jan Hubicka  <jh@suse.cz>
8292
8293         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
8294         references.
8295
8296 2010-04-30  Jan Hubicka  <jh@suse.cz>
8297
8298         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
8299         needed.
8300
8301 2010-04-30  Richard Guenther  <rguenther@suse.de>
8302
8303         * tree-ssa-structalias.c (get_constraint_for_1): Generate
8304         constraints for CONSTRUCTOR.
8305
8306 2010-04-30  Richard Guenther  <rguenther@suse.de>
8307
8308         PR lto/43946
8309         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
8310         first after all lowering passes.
8311
8312 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
8313
8314         * toplev.c: Include varray.h for statistics dumping.
8315         * tree.h: Do not declare varray_head_tag.
8316         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
8317         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
8318         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
8319         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
8320         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
8321         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
8322         c-common.c, c-common.h, reg-stack.c, basic-block.h,
8323         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
8324         include varray.h.
8325         * Makefile.in: Update for abovementioned changes.
8326
8327 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
8328
8329         PR debug/43942
8330         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
8331
8332 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8333
8334         * config/picochip/picochip.c (picochip_legitimize_address): Define.
8335         Use this function to do machine-specific conversion.
8336         (picochip_legitimize_reload_address): Likewise.
8337         (picochip_legitimate_address_p): Check valid base register only if
8338         strict.
8339         (picochip_check_conditional_copy): Check for modw only if opnd is
8340         register.
8341         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
8342         to call the function in c.
8343         * config/picochip/picochip-protos.h
8344         (picochip_legitimize_reload_address): Define.
8345         * config/picochip/picochip.md (supported_compare1): Define.
8346
8347 2010-04-30  Jan Hubicka  <jh@suse.cz>
8348
8349         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
8350         (cgraph_global_info): Remove inlined.
8351         (LTO_cgraph_tag_names): Remove.
8352         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
8353         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
8354         simplify cgraph tags and document.
8355         (lto_output_node): Use only LTO_cgraph_unavail_node and
8356         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
8357         for_functions_valid, global info, process and output flags.
8358         (input_overwrite_node): Initialize estimated stack size and
8359         estimated growth.  Do not read flags we no longer store.
8360         (input_node): Likewise do not read info no longer stored.
8361         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
8362         flag.
8363
8364 2010-04-30  Richard Guenther  <rguenther@suse.de>
8365
8366         PR tree-optimization/43879
8367         * tree-ssa-structalias.c (get_constraint_for_1): Properly
8368         handle non-zero initializers.
8369
8370 2010-04-30  Richard Guenther  <rguenther@suse.de>
8371
8372         * builtins.c (fold_builtin_1): Delete free (0).
8373
8374 2010-04-29  Jan Hubicka  <jh@suse.cz>
8375
8376         * gengtype.c (open_base_files): Add lto-streamer.h
8377         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
8378         (pass_ipa_cp): GGC collect.
8379         * toplev. (compile_file): Do not output symbols.
8380         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
8381         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
8382         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
8383         * lto-section-in.c: Include ggc.h
8384         (lto_new_in_decl_state): Alloc in GGC.
8385         (lto_delete_in_decl_state): Likewise.
8386         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
8387         Collect.
8388
8389 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8390
8391         PR target/42895
8392         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
8393         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
8394         (HONOR_REG_ALLOC_ORDER): Describe new macro.
8395         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
8396         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
8397         account only if HONOR_REG_ALLOC_ORDER is not defined.
8398         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
8399         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
8400
8401 2010-04-29  Jon Grant  <04@jguk.org>
8402
8403         * collect2.c (vflag): Change type from int to bool.
8404         (debug): Likewise.
8405         (helpflag): New global bool.
8406         (main): Set vflag and debug with boolean, not integer truth values.
8407         Accept new "--help" option and output usage text if found.
8408         * collect2.h (vflag): Update prototype.
8409         (debug): Likewise.
8410
8411 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8412
8413         PR bootstrap/43936
8414         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
8415
8416 2010-04-29  Richard Guenther  <rguenther@suse.de>
8417
8418         PR bootstrap/43935
8419         * plugin.h (invoke_plugin_callbacks): Annotate arguments
8420         with ATTRIBUTE_UNUSED.
8421
8422 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8423
8424         PR target/43921
8425         * config/i386/i386.c (get_some_local_dynamic_name): Replace
8426         INSN_P with NONDEBUG_INSN_P.
8427         (distance_non_agu_define): Likewise.
8428         (distance_agu_use): Likewise.
8429
8430 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
8431
8432         From Dominique d'Humieres <dominiq@lps.ens.fr>
8433         PR bootstrap/43858
8434         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
8435         test_set.
8436
8437 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
8438
8439         * plugin.h (invoke_plugin_callbacks): New inline function.
8440         * plugin.c (flag_plugin_added): New global flag.
8441         (add_new_plugin): Initialize above flag.
8442         (invoke_plugin_callbacks): Rename to ...
8443         (invoke_plugin_callbacks_full): ... this.
8444
8445 2010-04-28  Jan Hubicka  <jh@suse.cz>
8446
8447         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
8448         (lto_varpool_replace_node): New.
8449         (lto_symtab_resolve_symbols): Resolve varpool nodes.
8450         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
8451         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
8452         * cgraph.h (varpool_node_ptr): New type.
8453         (varpool_node_ptr): New vector.
8454         (varpool_node_set_def): New structure.
8455         (varpool_node_set): New type.
8456         (varpool_node_set): New vector.
8457         (varpool_node_set_element_def): New structure.
8458         (varpool_node_set_element, const_varpool_node_set_element): New types.
8459         (varpool_node_set_iterator): New type.
8460         (varpool_node): Add prev pointers, add used_from_other_partition,
8461         in_other_partition.
8462         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
8463         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
8464         varpool_get_node, varpool_remove_node): Declare.
8465         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
8466         varpool_node_set_size): New inlines.
8467         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
8468         * tree-pass.h (varpool_node_set_def): Forward declare.
8469         (ipa_opt_pass_d): Summary writting takes vnode sets too.
8470         (ipa_write_optimization_summaries): Update prototype.
8471         * ipa-cp.c (ipcp_write_summary): Update.
8472         * ipa-reference.c (ipa_reference_write_summary): Update.
8473         * lto-cgraph.c (lto_output_varpool_node): New static function.
8474         (output_varpool): New function.
8475         (input_varpool_node): New static function.
8476         (input_varpool_1): New function.
8477         (input_cgraph): Input varpool.
8478         * ipa-pure-const.c (pure_const_write_summary): Update.
8479         * lto-streamer-out.c (lto_output): Update, output varpool too.
8480         (write_global_stream): Kill WPA hack.
8481         (produce_asm_for_decls): Update.
8482         (output_alias_pair_p): Handle variables.
8483         (output_unreferenced_globals): Output only needed partition of varpool.
8484         * ipa-inline.c (inline_write_summary): Update.
8485         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
8486         cgraph.
8487         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
8488         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
8489         varpool_node_set_new, varpool_node_set_add,
8490         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
8491         debug_varpool_node_set): New functions.
8492         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
8493         (execute_one_pass): Process new decls too.
8494         (ipa_write_summaries_2): Pass around vsets.
8495         (ipa_write_summaries_1): Likewise.
8496         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
8497         to add.
8498         (ipa_write_optimization_summaries_1): Pass around vsets.
8499         (ipa_write_optimization_summaries): Likewise.
8500         * varpool.c (varpool_get_node): New.
8501         (varpool_node): Update doubly linked lists.
8502         (varpool_remove_node): New.
8503         (dump_varpool_node): More dumping.
8504         (varpool_enqueue_needed_node): Update doubly linked lists.
8505         (decide_is_variable_needed): Kill ltrans hack.
8506         (varpool_finalize_decl): Kill lto hack.
8507         (varpool_assemble_decl): Skip decls in other partitions.
8508         (varpool_assemble_pending_decls): Update doubly linkes lists.
8509         (varpool_empty_needed_queue): Likewise.
8510         (varpool_extra_name_alias): Likewise.
8511         * lto-streamer.c (lto_get_section_name): Add vars section.
8512         * lto-streamer.h (lto_section_type): Update.
8513         (output_varpool, input_varpool): Declare.
8514
8515 2010-04-28  Mike Stump  <mikestump@comcast.net>
8516
8517         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
8518
8519 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8520
8521         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
8522         record or union type with RECORD_OR_UNION_TYPE_P predicate.
8523         (lto_input_ts_type_tree_pointers): Likewise.
8524         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
8525         (lto_output_ts_type_tree_pointers): Likewise.
8526
8527 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8528
8529         Uniquization of constants at the Tree level
8530         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
8531         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
8532         bit to the end.
8533         (tree_output_constant_def): Declare.
8534         * gimplify.c (gimplify_init_constructor): When using block copy, first
8535         uniquize the constant constructor on the RHS.
8536         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
8537         DECL_IN_CONSTANT_POOL flag.
8538         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
8539         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
8540         constant pool.
8541         (assemble_variable): Deal with symbols belonging to the tree constant
8542         pool.
8543         (get_constant_section): Add ALIGN parameter and simplify.
8544         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
8545         (assemble_constant_contents): Use the expression of the VAR_DECL.
8546         (output_constant_def_contents): Use the alignment of the VAR_DECL.
8547         (tree_output_constant_def): New global function.
8548         (mark_constant): Use the expression of the VAR_DECL.
8549         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
8550         its expression.
8551         (output_object_block): Likewise and assemble the expression.
8552
8553 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
8554
8555         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
8556         hash_tree, eq_tree): New tree hash table.
8557         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
8558         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
8559         lto_orig_address_remove): Reimplement.
8560
8561 2010-04-28  Xinliang David Li  <davidxl@google.com>
8562
8563         PR c/42643
8564         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
8565         (compute_uninit_opnds_pos): New function.
8566         (is_non_loop_exit_postdominating): New function.
8567         (compute_control_dep_chain): New function.
8568         (find_pdom): New function.
8569         (convert_control_dep_chain_into_preds): New function.
8570         (find_predicates): New function.
8571         (find_control_equiv_block): New function.
8572         (collect_phi_def_edges): New function.
8573         (find_def_preds): New function.
8574         (find_dom): New function.
8575         (dump_predicates): New function.
8576         (get_cmp_code): New function.
8577         (is_value_included_in): New function.
8578         (find_matching_predicate_in_rest_chains): New function.
8579         (use_pred_not_overlap_with_undef_path_pred): New function.
8580         (is_use_properly_guarded): New function.
8581         (normalize_cond_1): New function.
8582         (is_and_or_or): New function.
8583         (normalize_cond): New function.
8584         (is_gcond_subset_of): New function.
8585         (is_subset_of_any): New function.
8586         (is_or_set_subset_of): New function.
8587         (is_and_set_subset_of): New function.
8588         (is_norm_cond_subset_of): New function.
8589         (is_pred_expr_subset_of): New function.
8590         (is_pred_chain_subset_of): New function.
8591         (is_included_in): New function.
8592         (is_superset_of): New function.
8593         (find_uninit_use): New function.
8594         (warn_uninitialized_phi): New function.
8595         (compute_possibly_undefined_names): New function.
8596         (ssa_undefined_value_p): New function.
8597         (execute_late_warn_uninitialized): New function.
8598         * tree-ssa.c (ssa_undefined_value_p): Removed.
8599         (warn_uninit): Changed to extern.
8600         (warn_uninitialized_phi): Removed.
8601         (warn_uninitialized_vars): Changed to extern.
8602         (execute_late_warn_uninitialized): Removed
8603         * tree-flow.h: Add new prototypes.
8604         * timevar.def: Add new time variable.
8605         * Makefile.in: Add new build file.
8606
8607 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
8608
8609         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
8610         type if available.
8611
8612 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8613
8614         PR target/22224
8615         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
8616
8617 2010-04-28  Martin Jambor  <mjambor@suse.cz>
8618
8619         * cgraph.h (struct cgraph_node): New field indirect_calls.
8620         (struct cgraph_indirect_call_info): New type.
8621         (struct cgraph_edge): Removed field indirect_call. New fields
8622         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
8623         (cgraph_create_indirect_edge): Declare.
8624         (cgraph_make_edge_direct): Likewise.
8625         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
8626         * ipa-prop.h (struct ipa_param_call_note): Removed.
8627         (struct ipa_node_params): Removed field param_calls.
8628         (ipa_create_all_structures_for_iinln): Declare.
8629         * cgraph.c: Described indirect edges and uids in initial comment.
8630         (cgraph_add_edge_to_call_site_hash): New function.
8631         (cgraph_edge): Search also among the indirect edges, use
8632         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
8633         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
8634         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
8635         site hash.
8636         (initialize_inline_failed): Assign a reason to indirect edges.
8637         (cgraph_create_edge_1): New function.
8638         (cgraph_create_edge): Moved some functionality to
8639         cgraph_create_edge_1.
8640         (cgraph_create_indirect_edge): New function.
8641         (cgraph_edge_remove_callee): Add an assert checking for
8642         non-indirectness.
8643         (cgraph_edge_remove_caller): Special-case indirect edges.
8644         (cgraph_remove_edge): Likewise.
8645         (cgraph_set_edge_callee): New function.
8646         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
8647         (cgraph_make_edge_direct): New function.
8648         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
8649         the declaration of the call statement matches.
8650         (cgraph_node_remove_callees): Special-case indirect edges.
8651         (cgraph_clone_edge): Likewise.
8652         (cgraph_clone_node): Clone also the indirect edges.
8653         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
8654         indirect_call, dump count of indirect_calls edges.
8655         * ipa-prop.c (iinlining_processed_edges): New variable.
8656         (ipa_note_param_call): Create indirect edges instead of
8657         creating notes.  New parameter node.
8658         (ipa_analyze_call_uses): New parameter node, pass it on to
8659         ipa_note_param_call.
8660         (ipa_analyze_stmt_uses): Likewise.
8661         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
8662         (print_edge_addition_message): Work on edges rather than on notes.
8663         (update_call_notes_after_inlining): Likewise, renamed to
8664         update_indirect_edges_after_inlining.
8665         (ipa_create_all_structures_for_iinln): New function.
8666         (ipa_free_node_params_substructures): Do not free notes.
8667         (ipa_edge_duplication_hook): Propagate bits within
8668         iinlining_processed_edges bitmap.
8669         (ipa_node_duplication_hook): Do not duplicate notes.
8670         (free_all_ipa_structures_after_ipa_cp): Renamed to
8671         ipa_free_all_structures_after_ipa_cp.
8672         (free_all_ipa_structures_after_iinln): Renamed to
8673         ipa_free_all_structures_after_iinln.
8674         (ipa_write_param_call_note): Removed.
8675         (ipa_read_param_call_note): Removed.
8676         (ipa_write_indirect_edge_info): New function.
8677         (ipa_read_indirect_edge_info): Likewise.
8678         (ipa_write_node_info): Do not stream notes, do stream information
8679         in indirect edges.
8680         (ipa_read_node_info): Likewise.
8681         (lto_ipa_fixup_call_notes): Removed.
8682         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
8683         * ipa-inline.c (pass_ipa_inline): Likewise.
8684         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
8685         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
8686         * tree-inline.c (copy_bb): Removed an unnecessary double check for
8687         is_gimple_call.
8688         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
8689         edges.
8690         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
8691         (output_cgraph): Stream also indirect edges.
8692         (lto_output_edge): Added capability to stream indirect edges.
8693         (input_edge): Likewise.
8694         (input_cgraph_1): Likewise.
8695         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
8696         of indirect edges.
8697
8698 2010-04-28  Richard Guenther  <rguenther@suse.de>
8699
8700         PR tree-optimization/43879
8701         PR tree-optimization/43909
8702         * tree-ssa-structalias.c (struct variable_info): Add
8703         only_restrict_pointers flag.
8704         (new_var_info): Initialize it.  Increment stats.total_vars here.
8705         (create_function_info_for): Do not increment stats.total_vars here.
8706         (get_function_part_constraint): Fix build with C++.
8707         (insert_into_field_list): Remove.
8708         (push_fields_onto_fieldstack): Properly merge fields.
8709         (create_variable_info_for): Split and simplify.
8710         (create_variable_info_for_1): New piece.
8711         (intra_create_variable_infos): Properly make restrict constraints
8712         from parameters.
8713
8714 2010-04-28  Richard Guenther  <rguenther@suse.de>
8715
8716         PR c++/43880
8717         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
8718
8719 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8720             Jan Hubicka <hubicka@ucw.cz>
8721
8722         * doc/invoke.texi (-Wsuggest-attribute=const,
8723         -Wsuggest-attribute=pure): Document.
8724         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
8725         (function_always_visible_to_compiler_p,
8726         suggest_attribute, warn_function_pure, warn_function_const):
8727         New functions.
8728         (check_call): Improve debug info.
8729         (analyze_function): Do not check availability.
8730         (add_new_function): Check availability.
8731         (propagate): Output warnings.
8732         (skip_function_for_local_pure_const): New function.
8733         (local_pure_const): Use it; output warnings.
8734         * common.opt (Wsuggest-attribute=const,
8735         Wsuggest-attribute=pure): New.
8736
8737 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
8738
8739         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
8740         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
8741         or DW_CFA_def_cfa_offset{,_sf}.
8742
8743 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8744
8745         * tree.h: Fix truncated long macros.
8746
8747 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
8748
8749         * collect2.c (TARGET_64BIT): Redefine to target's default.
8750         * tlink.c: Likewise.
8751         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
8752         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
8753         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
8754         for underscoring __USER_LABEL_PREFIX__.
8755         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
8756         (SUB_LINK_ENTRY32): New.
8757         (SUB_LINK_ENTRY64): New.
8758         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
8759         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
8760         (SUB_LINK_ENTRY64): New.
8761         (SUB_LINK_ENTRY): New.
8762         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
8763         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
8764         x64 target is choosen.
8765         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
8766         * configure: Regenerated.
8767         * configure.ac (leading-mingw64-underscores): Option added.
8768
8769 2010-04-27  Jan Hubicka  <jh@suse.cz>
8770
8771         * doc/invoke.texi (-fipa-profile): Document.
8772         * opts.c (decode_options): Enable ipa-profile at -O1.
8773         * timevar.def (TV_IPA_PROFILE): Define.
8774         * common.opt (fipa-profile): Add.
8775         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
8776         flag for clones.
8777         (cgraph_propagate_frequency): Handle only local ones.
8778         * tree-pass.h (pass_ipa_profile): Declare.
8779         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
8780         (pass_ipa_profile): Use TV_IPA_PROFILE.
8781         * ipa.c (ipa_profile): New function.
8782         (gate_ipa_profile): Likewise.
8783         (pass_ipa_profile): New global variable.
8784         * passes.c (pass_ipa_profile): New.
8785
8786 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
8787
8788         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
8789
8790 2010-04-27  Martin Jambor  <mjambor@suse.cz>
8791
8792         PR middle-end/43812
8793         * ipa.c (dissolve_same_comdat_group_list): New function.
8794         (function_and_variable_visibility): Call
8795         dissolve_same_comdat_group_list when comdat group contains external or
8796         newly local nodes.
8797         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
8798         lists are circular and that they contain only DECL_ONE_ONLY nodes.
8799
8800 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8801
8802         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
8803         (const_hash_1) <VECTOR_CST>: New case.
8804         (compare_constant) <VECTOR_CST>: Likewise.
8805         <ADDR_EXPR>: Deal with LABEL_REFs.
8806         (copy_constant) <VECTOR_CST>: New case.
8807
8808 2010-04-27  Jan Hubicka  <jh@suse.cz>
8809
8810         * cgraph.c (cgraph_propagate_frequency): New function.
8811         * cgraph.h (cgraph_propagate_frequency): Declare.
8812         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
8813         cgraph_propagate_frequency.
8814
8815 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
8816
8817         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
8818
8819 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
8820
8821         PR target/40657
8822         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
8823         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
8824         here to determine which regs to push and how much stack to reserve.
8825
8826 2010-04-27  Jie Zhang  <jie@codesourcery.com>
8827
8828         * doc/gimple.texi (gimple_statement_with_ops): Remove
8829         addresses_taken field.
8830         (gimple_statement_with_memory_ops): Likewise.
8831
8832 2010-04-27  Jan Hubicka  <jh@suse.cz>
8833
8834         * tree-inline.c (eni_inlining_weights): Remove.
8835         (estimate_num_insns): Special case more builtins.
8836
8837 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
8838
8839         PR c/32207
8840         * c-typeck.c (build_binary_op): Move forward check for comparison
8841         pointer with null pointer constant and adjust the diagnostic message.
8842
8843 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
8844
8845         PR lto/42776
8846         * configure.ac (gcc_cv_as_section_has_align): Set if installed
8847         binutils supports extended .section directive needed by LTO, or
8848         warn if older binutils found.
8849         (LTO_BINARY_READER): New AC_SUBST'd variable.
8850         (LTO_USE_LIBELF): Likewise.
8851         * gcc/config.gcc (lto_binary_reader): New target-specific configure
8852         variable.
8853         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
8854         (LTO_USE_LIBELF): Likewise.
8855         * configure: Regenerate.
8856
8857         * collect2.c (is_elf): Rename from this ...
8858         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
8859          object files in addition to ELF-formatted ones.
8860         (scan_prog_file): Caller updated.  Also allow for LTO info marker
8861         symbol to be prefixed or not by an extra underscore.
8862
8863         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
8864         * config/i386/winnt.c: Also #include lto-streamer.h
8865         (i386_pe_asm_named_section): Specify 1-byte section alignment for
8866         LTO named sections.
8867         (i386_pe_asm_output_aligned_decl_common): Add comment.
8868         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
8869
8870 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
8871
8872         PR target/43889
8873         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
8874         Add missing earlyclobber for second alternative.
8875
8876 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
8877
8878         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
8879         bits for artificial defs at the top of the block.
8880         * fwprop.c (single_def_use_enter_block): Don't call it.
8881
8882 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
8883
8884         PR 43715
8885         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
8886         instead of "$gcc_cv_objdump -T".
8887         Use "-undefined dynamic_lookup" on darwin.
8888         * gcc/configure: Regenerate.
8889
8890 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR c/43893
8893         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
8894
8895 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
8896
8897         * c-parser.c (struct c_token): Move location field up.
8898         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
8899         (struct c_declspecs): Convert typespec_word, storage_class, and
8900         default_int_p into bitfields.
8901         (struct c_declarator): Move loc field up.
8902
8903 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
8904
8905         * cfgloop.h (struct loop): Move can_be_parallel field up.
8906         * ipa-prop.h (struct ip_node_params): Move bitfields up.
8907         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
8908         down.
8909         (struct iv_cand): Convert pos field into a bitfield.
8910         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
8911         field up.
8912         (struct _stmt_vec_info): Shuffle fields for better packing.
8913
8914 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
8915
8916         * varasm.c (IN_NAMED_SECTION): Remove guard.
8917         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
8918         (IN_NAMED_SECTION_P): ...this.
8919         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
8920         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
8921
8922 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
8923
8924         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
8925         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
8926         of shadowing it.  Fix comments.
8927
8928 2010-04-26  Jan Hubicka  <jh@suse.cz>
8929
8930         * cgraph.c (cgraph_create_node): Set node frequency to normal.
8931         (cgraph_clone_node): Copy function frequency.
8932         * cgraph.h (node_frequency): New enum
8933         (struct cgraph_node): Add.
8934         * final.c (rest_of_clean_state): Update.
8935         * lto-cgraph.c (lto_output_node): Output node frequency.
8936         (input_overwrite_node): Input node frequency.
8937         * tre-ssa-loop-ivopts (computation_cost): Update.
8938         * lto-streamer-out.c (output_function): Do not output function
8939         frequency.
8940         * predict.c (maybe_hot_frequency_p): Update and handle functions
8941         executed once.
8942         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
8943         attribute lookup.
8944         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
8945         (compute_function_frequency): Set noreturn functions to be executed
8946         once.
8947         (choose_function_section): Update.
8948         * lto-streamer-in.c (input_function): Do not input function frequency.
8949         * function.c (allocate_struct_function): Do not initialize function
8950         frequency.
8951         * function.h (function_frequency): Remove.
8952         (struct function): Remove function frequency.
8953         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
8954         (try_update): Update.
8955         * tree-inline.c (initialize_cfun): Do not update function frequency.
8956         * passes.c (pass_init_dump_file): Update.
8957         * i386.c (ix86_compute_frame_layout): Update.
8958         (ix86_pad_returns): Update.
8959
8960 2010-04-26  Jie Zhang  <jie@codesourcery.com>
8961
8962         PR tree-optimization/43833
8963         * tree-vrp.c (range_int_cst_p): New.
8964         (range_int_cst_singleton_p): New.
8965         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
8966         when both operands are constants.  Use range_int_cst_p in
8967         BIT_IOR_EXPR case.
8968
8969 2010-04-26  Jan Hubicka  <jh@suse.cz>
8970
8971         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
8972
8973 2010-04-26  Richard Guenther  <rguenther@suse.de>
8974
8975         PR lto/43080
8976         * gimple.c (gimple_decl_printable_name): Deal gracefully
8977         with a NULL DECL_NAME.
8978
8979 2010-04-26  Richard Guenther  <rguenther@suse.de>
8980
8981         PR lto/42425
8982         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
8983         if emitting debug information and it is either a function
8984         or a namespace decl.
8985
8986 2010-04-26  Ira Rosen  <irar@il.ibm.com>
8987
8988         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
8989         determine if the statement is vectorizable, and a macro to access it.
8990         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8991         Skip statements that can't be vectorized. If the analysis fails,
8992         mark the statement as unvectorizable if vectorizing basic block.
8993         (vect_compute_data_refs_alignment): Likewise.
8994         (vect_verify_datarefs_alignment): Skip statements marked as
8995         unvectorizable. Add print.
8996         (vect_analyze_group_access): Skip statements that can't be
8997         vectorized. If the analysis fails, mark the statement as
8998         unvectorizable if vectorizing basic block.
8999         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
9000         * tree-vect-stmts.c (vectorizable_store): Fix the number of
9001         generated stmts for SLP.
9002         (new_stmt_vec_info): Initialize the new field.
9003         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
9004         statements marked as unvectorizable.
9005
9006 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
9007
9008         * c-common.c (flag_isoc1x): New.
9009         (flag_isoc99): Update comment.
9010         * c-common.h (flag_isoc1x): New.
9011         (flag_isoc99): Update comment.
9012         * c-cppbuiltin.c (builtin_define_float_constants): Also define
9013         __<type>_DECIMAL_DIG__.
9014         * c-opts.c (set_std_c1x): New.
9015         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
9016         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
9017         * c.opt (-std=c1x, -std=gnu1x): New options.
9018         * doc/cpp.texi: Mention -std=c1x.
9019         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
9020         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
9021         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
9022         * doc/standards.texi: Mention C1X.
9023         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
9024         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
9025         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
9026         Define for C1X.
9027
9028 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
9029
9030         * config/i386/gmon-sol2.c (_mcleanup): Change format string
9031         placeholder from 0x%x to %#x.
9032         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
9033         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
9034         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
9035         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
9036         * config/i386/i386.c (ix86_target_string): Ditto.
9037         (output_pic_addr_const): Ditto.
9038         (print_operand): Ditto.
9039
9040 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
9041
9042         * combine.c (find_split_point): Add third argument.  Use it
9043         to find nested multiply-accumulate instructions.  Adjust calls.
9044         (try_combine): Adjust call to find_split_point.
9045
9046 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9047
9048         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
9049
9050 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
9051
9052         PR tree-optimization/41442
9053         * fold-const.c (merge_truthop_with_opposite_arm): New function.
9054         (fold_binary_loc): Call it.
9055
9056 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9057
9058         * toplev.c (general_init): Set default for fdiagnostics-show-option.
9059         * opts.c (common_handle_option): Allow disabling it.
9060         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
9061
9062 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
9063
9064         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
9065         between modes if both types are integral.
9066
9067 2010-04-23  Richard Guenther  <rguenther@suse.de>
9068
9069         PR tree-optimization/43572
9070         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
9071
9072 2010-04-23  Richard Guenther  <rguenther@suse.de>
9073
9074         PR lto/43455
9075         * tree-inline.c (tree_can_inline_p): Also check compatibility
9076         of return types.
9077
9078 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9079
9080         PR tree-optimization/43846
9081         * tree-sra.c (struct access): New flag grp_assignment_read.
9082         (build_accesses_from_assign): Set grp_assignment_read.
9083         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
9084         (enum mark_read_status): New type.
9085         (analyze_access_subtree): Propagate grp_assignment_read, create
9086         accesses also if both direct_read and root->grp_assignment_read.
9087
9088 2010-04-23  Martin Jambor  <mjambor@suse.cz>
9089
9090         PR middle-end/43835
9091         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
9092         function does not have type attributes.
9093
9094 2010-04-23  Richard Guenther  <rguenther@suse.de>
9095
9096         PR lto/42653
9097         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
9098         of FUNCTION_DECLs.
9099
9100 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9101
9102         * sese.h (create_if_region_on_edge): Remove.
9103
9104         * sese.c (create_if_region_on_edge): Make static.
9105
9106         * tree-inline.c: Do not include ggc.h.
9107
9108         * expr.c: Do not include ggc.h.
9109
9110         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
9111         dependencies.
9112
9113 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
9114
9115         PR target/43744
9116         * config/sh/sh.c (find_barrier): Don't emit a constant pool
9117         in the middle of insns for casesi_worker_2.
9118
9119 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
9120
9121         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
9122
9123 2010-04-22  Ira Rosen  <irar@il.ibm.com>
9124
9125         PR tree-optimization/43842
9126         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
9127         loop unrolling in update of exit phis. Fix comment.
9128         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
9129         least two reduction statements in the loop before starting SLP
9130         analysis.
9131
9132 2010-04-22  Nick Clifton  <nickc@redhat.com>
9133
9134         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
9135
9136 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
9137
9138         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
9139         to simplify a + ~a.
9140
9141 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9142
9143         * tree-parloops.c (loop_parallel_p): New argument
9144         parloop_obstack.  Pass it down.
9145         (parallelize_loops): New variable parloop_obstack.  Initialize it,
9146         pass it down, free it.
9147
9148         * tree-loop-linear.c (linear_transform_loops): Pass down
9149         lambda_obstack.
9150
9151         * tree-data-ref.h (lambda_compute_access_matrices): New argument
9152         of type struct obstack *.
9153
9154         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
9155         scratch_obstack.  Initialize it, pass down, free it.
9156
9157         * lambda.h (lambda_loop_new): Remove.
9158         (lambda_matrix_new, lambda_matrix_inverse)
9159         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
9160         argument of type struct obstack *.
9161
9162         * lambda-trans.c (lambda_trans_matrix_new): New argument
9163         lambda_obstack.  Pass it down, use obstack allocation for ret.
9164         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
9165         it down.
9166
9167         * lambda-mat.c (lambda_matrix_get_column)
9168         (lambda_matrix_project_to_null): Remove.
9169         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
9170         allocation for mat.
9171         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
9172         lambda_obstack.
9173
9174         * lambda-code.c (lambda_loop_new): New function.
9175         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
9176         (lambda_compute_auxillary_space, lambda_compute_target_space)
9177         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
9178         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
9179         (build_access_matrix): New argument lambda_obstack.  Use obstack
9180         allocation for am.
9181         (lambda_compute_step_signs, lambda_compute_access_matrices): New
9182         argument lambda_obstack.  Pass it down.
9183
9184 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9185
9186         * optabs.h (expand_widening_mult): Declare.
9187
9188 2010-04-22  Richard Guenther  <rguenther@suse.de>
9189
9190         PR tree-optimization/43845
9191         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
9192         lookup the CALL_EXPR function and arguments.
9193
9194 2010-04-22  Nick Clifton  <nickc@redhat.com>
9195
9196         * config/stormy16/stormy16.c
9197         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
9198         * config/stormy16/stormy16.h: Tidy up formatting.
9199         (DONT_USE_BUILTIN_SETJMP): Remove definition.
9200         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
9201         (ineqbranchsi): Delete pattern.
9202         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
9203         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
9204         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
9205         stormy16-lib2-ucmpsi2.c.
9206
9207 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9208
9209         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
9210         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
9211         extra set merge_set_noclobber, and use it to relax the final test
9212         slightly.
9213         * df.h (df_simulate_find_noclobber_defs): Declare.
9214         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
9215         conditional defs.
9216         (df_simulate_find_noclobber_defs): New function.
9217
9218 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
9219
9220         * config/i386/i386.md: Use {} around multi-line preparation statements.
9221
9222 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9223
9224         * c-tree.h (push_init_level, pop_init_level, set_init_index)
9225         (process_init_element): New argument of type struct obstack *.
9226
9227         * c-typeck.c (push_init_level, pop_init_level, set_designator)
9228         (set_init_index, set_init_label, set_nonincremental_init)
9229         (set_nonincremental_init_from_string, find_init_member)
9230         (output_init_element, output_pending_init_elements)
9231         (process_init_element): New argument braced_init_obstack.  Pass it
9232         down.
9233         (push_range_stack, add_pending_init): New argument
9234         braced_init_obstack.  Use obstack allocation.
9235
9236         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
9237         braced_init_obstack.  Pass it down.
9238         (c_parser_braced_init): New variables ret, braced_init_obstack.
9239         Initialize obstack, pass it down and finally free it.
9240
9241 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
9242
9243         PR middle-end/29274
9244         * tree-pass.h (pass_optimize_widening_mul): Declare.
9245         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
9246         gate_optimize_widening_mul): New static functions.
9247         (pass_optimize_widening_mul): New.
9248         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
9249         <case MULT_EXPR>: Remove support for widening multiplies.
9250         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
9251         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
9252         simplify_gen_unary rather than directly building extensions.
9253         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
9254         WIDEN_MULT_EXPR.
9255         * expmed.c (expand_widening_mult): New function.
9256         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
9257
9258 2010-04-21  Jan Hubicka  <jh@suse.cz>
9259
9260         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
9261         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
9262         * lto-wpa-fixup.c: Remove.
9263         * Makefile.in (lto-wpa-fixup.o): Remove.
9264         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
9265         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
9266         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
9267
9268 2010-04-21  Jan Hubicka  <jh@suse.cz>
9269
9270         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
9271         add write_optimization_summary, read_optimization_summary.
9272         (ipa_write_summaries_of_cgraph_node_set): Remove.
9273         (ipa_write_optimization_summaries): Declare.
9274         (ipa_read_optimization_summaries): Declare.
9275         * ipa-cp.c (pass_ipa_cp): Update.
9276         * ipa-reference.c (pass_ipa_reference): Update.
9277         * ipa-pure-const.c (pass_ipa_pure_const): Update.
9278         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
9279         Update.
9280         * ipa-inline.c (pass_ipa_inline): Update.
9281         * ipa.c (pass_ipa_whole_program): Update.
9282         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
9283         * passes.c (ipa_write_summaries_1): Do not test wpa.
9284         (ipa_write_optimization_summaries_1): New.
9285         (ipa_write_optimization_summaries): New.
9286         (ipa_read_summaries): Do not test ltrans.
9287         (ipa_read_optimization_summaries_1): New.
9288         (ipa_read_optimization_summaries): New.
9289
9290 2010-04-21  Jan Hubicka  <jh@suse.cz>
9291
9292         * lto-cgraph.c (lto_output_node): Do not output comdat groups
9293         for boundary nodes.
9294         (output_cgraph): Do not arrange comdat groups for boundary nodes.
9295
9296 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9297
9298         PR debug/40040
9299         * dwarf2out.c (add_name_and_src_coords_attributes): Add
9300         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
9301
9302 2010-04-21  Jan Hubicka  <jh@suse.cz>
9303
9304         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
9305
9306 2010-04-21  Jan Hubicka  <jh@suse.cz>
9307
9308         * varpool.c (decide_is_variable_needed): Variable is always needed
9309         during ltrans.
9310
9311 2010-04-21  Jan Hubicka  <jh@suse.cz>
9312
9313         * opts.c (decode_options): Enable pure-const pass for whopr.
9314
9315 2010-04-21  Jan Hubicka  <jh@suse.cz>
9316
9317         * cgraph.c (dump_cgraph_node): Dump also assembler name.
9318         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
9319         at WPA dumping.
9320         (cgraph_decide_inlining): Do not expect callee to be removed in all
9321         cases.
9322
9323 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
9324
9325         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
9326
9327 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9328
9329         * config/i386/i386.md (x86_shrd): Add athlon_decode and
9330         amdfam10_decode attributes.
9331
9332 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9333
9334         PR middle-end/43570
9335         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
9336         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
9337         (lower_copyprivate_clauses): Use private var in outer
9338         context instead of original var.  Make sure the types
9339         are correct for VLAs.
9340
9341 2010-04-21  Richard Guenther  <rguenther@suse.de>
9342
9343         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
9344         to non-pointer objects.
9345
9346 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
9347
9348         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
9349         last chain entry if it starts with the still current label.
9350         (add_location_or_const_value_attribute): Check that
9351         loc_list->first->next is NULL instead of comparing ->first with ->last.
9352         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
9353         to add_var_loc_to_decl.
9354
9355         * dwarf2out.c (output_call_frame_info): For dw_cie_version
9356         >= 4 add also address size and segment size fields into CIE header.
9357
9358         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
9359         long as address size is the same as sizeof (void *) and
9360         segment size is 0.
9361         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
9362         address size or segment size is unexpected, return DW_EH_PE_omit.
9363         (classify_object_over_fdes): If get_cie_encoding returned
9364         DW_EH_PE_omit, return -1.
9365         (init_object): If classify_object_over_fdes returned -1,
9366         pretend there were no FDEs at all.
9367
9368 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/i386/i386.md (bswap<mode>2): Macroize expander from
9371         bswap{si,di}2 using SWI48 mode iterator.
9372         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
9373         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
9374         set modrm attribute of bswap insn to 0 and remove length attribute.
9375         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
9376         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
9377         set mode attribute to <MODE> and remove length attribute.
9378
9379 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
9380
9381         PR rtl-optimization/43520
9382         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
9383         zero available registers.
9384
9385 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9386
9387         * builtins.c (fold_builtin_cproj): Fold more cases.
9388
9389 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9390
9391         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
9392         (fold_builtin_1): Fold builtin cproj.
9393         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
9394         Use ATTR_CONST_NOTHROW_LIST.
9395
9396 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
9397
9398         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
9399         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
9400         ffsi2_no_cmove for !TARGET_CMOVE.
9401         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
9402         (ffssi2): Remove expander.
9403         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
9404         mode iterator.
9405         (ctz<mode>2): Ditto from ctz{si,di}2.
9406         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
9407         mode iterator.
9408         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
9409         mode iterator.
9410
9411 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9412
9413         * dwarf2out.c (AT_linkage_name): Define.
9414         (clone_as_declaration): Handle DW_AT_linkage_name.
9415         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
9416         of DW_AT_MIPS_linkage_name.
9417         (move_linkage_attr): Likewise.
9418         (dwarf2out_finish): Likewise.
9419
9420 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
9421
9422         PR middle-end/41952
9423         * fold-const.c (fold_comparison): New folding rule.
9424
9425 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
9426
9427         * double-int.h (double_int_setbit): Declare.
9428         * double-int.c (double_int_setbit): New function.
9429         * rtl.h (immed_double_int_const): Declare.
9430         * emit-rtl.c (immed_double_int_const): New function.
9431         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
9432         and immed_double_int_const functions.
9433         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
9434         expand_copysign_bit):  (Ditto.).
9435         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
9436         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
9437         * dojump.c (prefer_and_bit_test): (Ditto.).
9438         * expr.c (convert_modes, reduce_to_bit_field_precision,
9439         const_vector_from_tree): (Ditto.).
9440         * expmed.c (mask_rtx, lshift_value): (Ditto.).
9441
9442 2010-04-20  Jan Hubicka  <jh@suse.cz>
9443
9444         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
9445         (dump_cgraph_node): Dump new flags.
9446         * cgraph.h (struct cgraph_node): Add flags
9447         reachable_from_other_partition and in_other_partition.
9448         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
9449         other partition can not be removed.
9450         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
9451         the other partition must be output; silence sanity checking on
9452         leaking functions bodies from other paritition.
9453         * lto-cgraph.c (reachable_from_other_partition_p): New function.
9454         (lto_output_node): Output new flags; do not sanity check that inline
9455         clones are output; drop lto_forced_extern_inline_p code; do not mock
9456         visibility flags at partition boundaries.
9457         (add_node_to): New function.
9458         (output_cgraph): Use it to sort functions so masters appear before
9459         clones.
9460         (input_overwrite_node): Input new flags.
9461         * passes.c (ipa_write_summaries): Do not call
9462         lto_new_extern_inline_states.
9463         * lto-section-out.c (forced_extern_inline,
9464         lto_new_extern_inline_states lto_delete_extern_inline_states,
9465         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
9466         * lto-streamer.h (lto_new_extern_inline_states,
9467         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
9468         lto_forced_extern_inline_p): Kill.
9469
9470 2010-04-20  Richard Guenther  <rguenther@suse.de>
9471
9472         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
9473         from vars that can have pointers.
9474         (process_constraint): Dump useless constraints.
9475
9476 2010-04-20  Richard Guenther  <rguenther@suse.de>
9477
9478         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
9479         (dump_sa_points_to_info): Remove asserts.
9480         (init_base_vars): nothing_id isn't an escape point nor does it
9481         have pointers.
9482
9483 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
9484
9485         * tree.h (TYPE_REF_IS_RVALUE): Define.
9486         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
9487         should_move_die_to_comdat, prune_unused_types_walk): Handle
9488         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
9489         (modified_type_die, gen_reference_type_die): Emit
9490         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
9491         if TYPE_REF_IS_RVALUE and -gdwarf-4.
9492
9493 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9494
9495         PR target/43635
9496         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
9497         calls for -fpic -m31 if they have been sibcall optimized.
9498
9499 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
9500
9501         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
9502         ar.lc fixed and call-used.
9503
9504         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
9505
9506 2010-04-19  Jan Hubicka  <jh@suse.cz>
9507
9508         * opts.c (decode_options): Disable whpr incompatible passes.
9509         * lto/lto.c (lto_1_to_1_map): Skip clones.
9510         (read_cgraph_and_symbols): Do not mark everything as needed.
9511         (do_whole_program_analysis): Do map only after optimizing;
9512         set proper cgraph_state; use passmanager.
9513
9514 2010-04-19  DJ Delorie  <dj@redhat.com>
9515
9516         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
9517         POINTER_PLUS_EXPR and fix them.
9518
9519 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
9520
9521         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
9522         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
9523         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
9524         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
9525         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
9526         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
9527         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
9528         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
9529         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
9530         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
9531         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
9532
9533 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9534
9535         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
9536         (check_cond_move_block): Likewise.
9537         (cond_move_process_if_block): Likewise.
9538         (noce_find_if_block): Improve formatting.
9539         (find_if_header): Pass 0 to memset and tweak conditions.
9540         (cond_exec_find_if_block): Fix long lines and tweak conditions.
9541
9542 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
9543
9544         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
9545         for -gdwarf-4.
9546
9547         PR middle-end/43337
9548         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
9549         with non-local decl doesn't need chain.
9550
9551 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
9552
9553         * ira-color.c (allocno_reload_assign): Avoid accumulating
9554         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
9555
9556 2010-04-19  Martin Jambor  <mjambor@suse.cz>
9557
9558         * gimple.h (create_tmp_reg): Declare.
9559         * gimplify.c (create_tmp_reg): New function.
9560         (gimplify_return_expr): Use create_tmp_reg.
9561         (gimplify_omp_atomic): Likewise.
9562         (gimple_regimplify_operands): Likewise.
9563         * tree-dfa.c (make_rename_temp): Likewise.
9564         * tree-predcom.c (predcom_tmp_var): Likewise.
9565         (reassociate_to_the_same_stmt): Likewise.
9566         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
9567         (get_replaced_param_substitute): Likewise.
9568         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
9569         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
9570         * tree-ssa-pre.c (get_representative_for): Likewise.
9571         (create_expression_by_pieces): Likewise.
9572         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
9573         (create_tailcall_accumulator): Likewise.
9574
9575 2010-04-19  Martin Jambor  <mjambor@suse.cz>
9576
9577         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
9578         new_stmt.
9579         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
9580
9581 2010-04-19  Richard Guenther  <rguenther@suse.de>
9582
9583         PR tree-optimization/43796
9584         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
9585         from SCEV in the lattice.
9586         (vrp_visit_phi_node): Dump change.
9587
9588 2010-04-19  Richard Guenther  <rguenther@suse.de>
9589
9590         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
9591         * configure: Re-generated.
9592
9593 2010-04-19  Richard Guenther  <rguenther@suse.de>
9594
9595         PR tree-optimization/43783
9596         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
9597         constant ARRAY_REF operands two and three if possible.
9598
9599 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
9600
9601         PR target/43766
9602         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
9603
9604 2010-04-19  Jie Zhang  <jie@codesourcery.com>
9605
9606         PR target/43662
9607         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
9608
9609 2010-04-19  Ira Rosen  <irar@il.ibm.com>
9610
9611         PR tree-optimization/37027
9612         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
9613         and macro to access it.
9614         (vectorizable_reduction): Add argument.
9615         (vect_get_slp_defs): Likewise.
9616         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
9617         statements for possible use in SLP.
9618         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
9619         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
9620         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
9621         add new argument.
9622         (vectorizable_reduction): Likewise.
9623         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
9624         vect_get_slp_defs.
9625         (vectorizable_type_demotion, vectorizable_type_promotion,
9626         vectorizable_store): Likewise.
9627         (vect_analyze_stmt): Update call to vectorizable_reduction.
9628         (vect_transform_stmt): Likewise.
9629         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
9630         (vect_build_slp_tree): Fix indentation. Check that there are no loads
9631         from different interleaving chains in same node.
9632         (vect_slp_rearrange_stmts): New function.
9633         (vect_supported_load_permutation_p): Allow load permutations for
9634         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
9635         inside SLP nodes if necessary.
9636         (vect_analyze_slp_instance): Handle reductions.
9637         (vect_analyze_slp): Try to build SLP instances originating from groups
9638         of reductions.
9639         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
9640         (vect_get_constant_vectors): Create initial vectors for reductions
9641         according to reduction code. Add new argument.
9642         (vect_get_slp_defs): Add new argument, pass it to
9643         vect_get_constant_vectors.
9644         (vect_schedule_slp_instance): Remove SLP tree root statements.
9645
9646 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
9647
9648         * tree.h (ENUM_IS_SCOPED): Define.
9649         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
9650         for ENUM_IS_SCOPED enums.
9651
9652 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9653
9654         * fold-const.c (fold_comparison): Use ssizetype.
9655         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
9656         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
9657         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
9658         * tree-object-size.c (compute_object_sizes): Use size_type_node.
9659
9660         * tree.h (initialize_sizetypes): Remove parameter.
9661         (build_common_tree_nodes): Remove second parameter.
9662         * stor-layout.c (initialize_sizetypes): Remove parameter.
9663         Always create an unsigned type.
9664         (set_sizetype): Assert that the passed type is unsigned and simplify.
9665         * tree.c (build_common_tree_nodes): Remove second parameter.
9666         Adjust call to initialize_sizetypes.
9667         * c-decl.c (c_init_decl_processing): Remove second argument in call to
9668         build_common_tree_nodes.
9669
9670 2010-04-18  Matthias Klose  <doko@ubuntu.com>
9671
9672         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
9673
9674 2010-04-18  Ira Rosen  <irar@il.ibm.com>
9675
9676         PR tree-optimization/43771
9677         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
9678         load permutation doesn't have gaps.
9679
9680 2010-04-18  Jan Hubicka  <jh@suse.cz>
9681
9682         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
9683         (sse_prologue_save_insn expander): Use new pattern.
9684         (sse_prologue_save_insn1): New pattern and splitter.
9685         (sse_prologue_save_insn): Update to deal also with 64bit aligned
9686         blocks.
9687         * i386.c (setup_incoming_varargs_64): Do not compute jump
9688         destination here.
9689         (ix86_gimplify_va_arg): Update alignment needed.
9690         (ix86_local_alignment): Do not align all local arrays to 128bit.
9691
9692 2010-04-17  Jan Hubicka  <jh@suse.cz>
9693
9694         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
9695
9696 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9697
9698         * arm.md (negdi2): Remove redundant code to force values into a
9699         register.
9700
9701 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9702
9703         * arm/bpabi.S: Add EABI alignment attributes to objects.
9704         * arm/bpabi-v6m.S: Likewise.
9705         * arm/crti.asm: Likewise.
9706         * arm/crtn.asm: Likewise.
9707         * arm/lib1funcs.asm: Likewise.
9708         * arm/libunwind.S: Likewise.
9709
9710 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
9711
9712         * arm-protos.h (tune_params): New structure.
9713         * arm.c (current_tune): New variable.
9714         (arm_constant_limit): Delete.
9715         (struct processors): Add pointer to the tune parameters.
9716         (arm_slowmul_tune): New tuning option.
9717         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
9718         (all_cores): Adjust to pick up the tuning model.
9719         (arm_constant_limit): New function.
9720         (arm_override_options): Select the appropriate tuning model.  Delete
9721         initialization of arm_const_limit.
9722         (arm_split_constant): Use the new constant-limit model.
9723         (arm_rtx_costs): Pick up the current tuning model.
9724         * arm.md (is_strongarm, is_xscale): Delete.
9725         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
9726         for Xscale variant architectures.
9727         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
9728
9729 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9730
9731         * config/arm/arm.c (arm_gen_constant): Remove unused variable
9732         can_shift.
9733         (arm_rtx_costs_1): Remove unused variable extra_cost.
9734         (arm_unwind_emit_set): Use variable offset.
9735         (thumb1_output_casesi): Remove unused variable flags.
9736
9737 2010-04-16  Jeff Law  <law@redhat.com>
9738
9739         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
9740         needing assignment rather than doing a two-phase assignment.  Remove
9741         unused variable 'm'.
9742
9743 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9744
9745         PR bootstrap/43767
9746         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
9747
9748 2010-04-16  Doug Kwan  <dougkwan@google.com>
9749
9750         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
9751         (next_operand_entry_id): New static variable.
9752         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
9753         (add_to_ops_vec): Assigned unique ID to operand entry.
9754         (struct oecount_s): New field ID.
9755         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
9756         (undistribute_ops_list): Assign unique IDs to oecounts.
9757         (init_reassoc): reset next_operand_entry_id.
9758
9759 2010-04-16  Doug Kwan  <dougkwan@google.com>
9760
9761         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
9762         missing left parenthesis.
9763
9764 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
9765
9766         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
9767         *btdi_rex64 using SWI48 mode iterator.
9768         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
9769         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
9770         *jcc_btdi_mask_rex64.
9771
9772 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
9773
9774         * double-int.h (tree_to_double_int): Convert to macro.
9775         * double-int.c (tree_to_double_int): Remove.
9776
9777 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9778
9779         PR debug/43762
9780         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
9781         with want_address 2 and in case a single element list might be
9782         possible, call it again with want_address 0.
9783
9784 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9785
9786         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
9787         case 'W' print operands for HI mode.
9788         * config/h8300/h8300.h (Y0, Y2) : New constraints.
9789         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
9790         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
9791         * config/h8300/predicate.md (bit_register_indirect_operand): New.
9792
9793         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
9794
9795         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
9796         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
9797         #xx:3 and #xx:4 mode.
9798
9799         * config/h8300/h8300.md (inverted load with HImode dest): Add
9800         support for H8300SX.
9801
9802         * config/h8300/predicate.md (bit_operand): Allow immediate values that
9803         satisfy 'U' constraint.
9804
9805 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9806
9807         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
9808         * configure: Regenerate.
9809         * config.in: Regenerate.
9810         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
9811         works.
9812
9813 2010-04-16  Richard Guenther  <rguenther@suse.de>
9814
9815         * tree.h (struct tree_decl_minimal): Move pt_uid ...
9816         (struct tree_decl_common): ... here.
9817         (DECL_PT_UID): Adjust.
9818         (SET_DECL_PT_UID): Likewise.
9819         (DECL_PT_UID_SET_P): Likewise.
9820
9821 2010-04-16  Richard Guenther  <rguenther@suse.de>
9822
9823         PR tree-optimization/43572
9824         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
9825         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
9826         * tree-flow.h (is_call_clobbered): Remove.
9827         * tree-flow-inline.h (is_call_clobbered): Likewise.
9828         * tree-dfa.c (dump_variable): Do not dump call clobber state.
9829         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
9830         (execute_return_slot_opt): Adjust.
9831         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
9832         check for call clobbered vars here.
9833         (find_tail_calls): Move tailcall verification to the
9834         proper place.
9835
9836 2010-04-16  Diego Novillo  <dnovillo@google.com>
9837
9838         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
9839
9840 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9841
9842         PR target/40603
9843         * config/arm/arm.md (cbranchqi4): New pattern.
9844         * config/arm/predicates.md (const0_operand,
9845         cbranchqi4_comparison_operator): New predicates.
9846
9847 2010-04-16  Richard Guenther  <rguenther@suse.de>
9848
9849         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
9850         (dump_gimple_stmt): Likewise.
9851
9852 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
9853
9854         * recog.h (struct recog_data): New field is_operator.
9855         (struct insn_operand_data): New field is_operator.
9856         * recog.c (extract_insn): Set recog_data.is_operator.
9857         * genoutput.c (output_operand_data): Emit code to set the
9858         is_operator field.
9859         * reload.c (find_reloads): Use it rather than testing for an
9860         empty constraint string.
9861
9862         PR target/41514
9863         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
9864         If the previous insn is a cbranchsi4_insn with the same arguments,
9865         omit the compare instruction.
9866
9867         * config/arm/arm.md (addsi3_cbranch): If destination is a high
9868         register, inputs must be low registers and we need a low register
9869         scratch.  Handle alternative 2 like alternative 3.
9870
9871 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
9872
9873         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
9874         don't call get_addr on both.  If one expression is a VALUE and
9875         the other a REG, check VALUE's locs if the REG isn't among them.
9876
9877 2010-04-16  Christian Bruel  <christian.bruel@st.com>
9878
9879         * config/sh/sh.h (sh_frame_pointer_required): New function.
9880         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
9881         (flag_omit_frame_pointer) Set.
9882         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
9883         (rounded_frame_size): Adjust size with outgoing_args_size.
9884         (sh_set_return_address): Must return from stack pointer.
9885         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
9886         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
9887         (ACCUMULATE_OUTGOING_ARGS): Define.
9888         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
9889         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
9890
9891 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
9892
9893         PR target/43471
9894         * config/sh/sh.c (sh_legitimize_reload_address): Use
9895         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
9896         Remove a unneeded check for offset_base.
9897
9898 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
9899
9900         * configure: Regenerated.
9901
9902 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9903
9904         * config/s390/s390.c (s390_call_save_register_used): Switch back
9905         to HARD_REGNO_NREGS.
9906
9907 2010-04-15  Richard Guenther  <rguenther@suse.de>
9908
9909         * alias.c (alias_set_subset_of): Handle alias-set zero
9910         child properly.
9911
9912 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
9913             Julian Brown  <julian@codesourcery.com>
9914
9915         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
9916         alternatives according to use of high and low regs.
9917         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
9918         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
9919         optimizing for size on Thumb-2.
9920
9921 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
9922
9923         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
9924
9925 2010-04-15  Richard Guenther  <rguenther@suse.de>
9926
9927         * tree-ssa-structalias.c (struct variable_info): Add
9928         is_fn_info flag.
9929         (new_var_info): Initialize it.
9930         (dump_constraints): Support printing last added constraints.
9931         (debug_constraints): Adjust.
9932         (dump_constraint_graph): Likewise.
9933         (make_heapvar_for): Check for NULL cfun.
9934         (get_function_part_constraint): New function.
9935         (get_fi_for_callee): Likewise.
9936         (find_func_aliases): Properly implement IPA PTA constraints.
9937         (process_ipa_clobber): New function.
9938         (find_func_clobbers): Likewise.
9939         (insert_into_field_list_sorted): Remove.
9940         (create_function_info_for): Properly allocate vars for IPA mode.
9941         Do not use insert_into_field_list_sorted.
9942         (create_variable_info_for): Properly generate constraints for
9943         global vars in IPA mode.
9944         (dump_solution_for_var): Always dump the solution.
9945         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
9946         (find_what_var_points_to): Adjust.
9947         (pt_solution_set): Change.
9948         (pt_solution_ior_into): New function.
9949         (pt_solution_empty_p): Export.
9950         (pt_solution_includes_global): Adjust.
9951         (pt_solution_includes_1): Likewise.
9952         (pt_solutions_intersect_1): Likewise.
9953         (dump_sa_points_to_info): Check some invariants.
9954         (solve_constraints): Move constraint dumping ...
9955         (compute_points_to_sets): ... here.
9956         (ipa_pta_execute): ... and here.
9957         (compute_may_aliases): Do not re-compute points-to info
9958         locally if IPA info is available.
9959         (ipa_escaped_pt): New global var.
9960         (ipa_pta_execute): Properly implement IPA PTA.
9961         * tree-into-ssa.c (dump_decl_set): Support dumping
9962         decls not in referenced-vars.
9963         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
9964         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
9965         (dump_points_to_solution): Likewise.
9966         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
9967         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
9968         (remap_gimple_stmt): Reset call clobber/use information if necessary.
9969         (copy_decl_to_var): Copy DECL_PT_UID.
9970         (copy_result_decl_to_var): Likewise.
9971         * tree.c (make_node_stat): Initialize DECL_PT_UID.
9972         (copy_node_stat): Copy it.
9973         * tree.h (DECL_PT_UID): New macro.
9974         (SET_DECL_PT_UID): Likewise.
9975         (DECL_PT_UID_SET_P): Likewise.
9976         (struct tree_decl_minimal): Add pt_uid member.
9977         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
9978         (pt_solution_empty_p): Declare.
9979         (pt_solution_set): Adjust.
9980         (ipa_escaped_pt): Declare.
9981         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
9982         * gimple-pretty-print.c (pp_points_to_solution): New function.
9983         (dump_gimple_call): Dump call clobber/use information.
9984         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
9985         * tree-pass.h (TDF_ALIAS): New dump option.
9986         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
9987         * doc/invoke.texi (-fipa-pta): Update documentation.
9988
9989 2010-04-15  Richard Guenther  <rguenther@suse.de>
9990
9991         * Makefile.in (OBJS-common): Add gimple-fold.o.
9992         (gimple-fold.o): New rule.
9993         * tree.h (maybe_fold_offset_to_reference,
9994         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
9995         prototypes ...
9996         * gimple.h: ... here.
9997         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
9998         may_propagate_address_into_dereference): Move prototypes ...
9999         * gimple.h: ... here.
10000         * tree-ssa-ccp.c (get_symbol_constant_value,
10001         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
10002         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
10003         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
10004         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
10005         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
10006         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
10007         gimplify_and_update_call_from_tree): Move ...
10008         * gimple-fold.c: ... here.  New file.
10009         (ccp_fold_builtin): Rename to ...
10010         (gimple_fold_builtin): ... this.
10011         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
10012
10013 2010-04-15  Richard Guenther  <rguenther@suse.de>
10014
10015         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
10016         fit_double_type, force_fit_type_double, add_double_with_sign,
10017         neg_double, mul_double_with_sign, lshift_double, rshift_double,
10018         lrotate_double, rrotate_double, div_and_round_double): Move ...
10019         * double-int.c: ... here.
10020         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
10021         add_double, neg_double, mul_double_with_sign, mul_double,
10022         lshift_double, rshift_double, lrotate_double, rrotate_double,
10023         div_and_round_double): Move prototypes ...
10024         * double-int.h: ... here.
10025
10026 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
10027
10028         PR target/43742
10029         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
10030         matching constraints to ensure inputs match the output.
10031
10032 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
10033
10034         PR target/43742
10035         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
10036         in an input-only operand.
10037
10038 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
10039
10040         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
10041         (double_int_not, double_int_lshift, double_int_rshift): Declare.
10042         (double_int_negative_p): Convert to static inline function.
10043         * double-int.c (double_int_lshift, double_int_lshift): New functions.
10044         (double_int_negative_p): Remove.
10045         * tree.h (lshift_double, rshift_double):
10046         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
10047         * fold-const.c (fold_convert_const_int_from_real,
10048         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
10049         (lshift_double): Change type of arith argument to bool.
10050         (rshift_double): Change type of arith argument to bool. Correct
10051         comment.
10052         * expmed.c (mask_rtx, lshift_value): (Ditto.).
10053
10054 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
10055
10056         PR target/21803
10057         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
10058         at the start and end of the then/else blocks, and omit them from the
10059         conversion.
10060         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
10061         argument; all callers changed.  Pass zero to old_insns_match_p instead.
10062         (flow_find_head_matching_sequence): New function.
10063         (old_insns_match_p): Check REG_EH_REGION notes for calls.
10064         * basic-block.h (flow_find_cross_jump,
10065         flow_find_head_matching_sequence): Declare functions.
10066
10067 2010-04-14  Jason Merrill  <jason@redhat.com>
10068
10069         PR c++/36625
10070         * c-common.c (attribute_takes_identifier_p): New fn.
10071         * c-common.h: Declare it.
10072
10073 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10074
10075         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
10076         splitter condition.
10077         (*udivmod<mode>4): Ditto.
10078
10079 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10080
10081         * config/i386/i386.md (maxmin_int): Rename code attribute from
10082         maxminiprefix and update all users.
10083         (maxmin_float): Ditto from maxminfprefix.
10084         (logic): Ditto from logicprefix.
10085         (absneg_mnemonic): Ditto from absnegprefix.
10086         * config/i386/mmx.md: Update all users of maxminiprefix,
10087         maxminfprefix and logicprefix for rename.
10088         * config/i386/sse.md: Ditto.
10089         * config/i386/sync.md (sync_<code><mode>): Update for
10090         logicprefix rename.
10091
10092 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10093
10094         PR 42966
10095         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
10096         warnings converted to errors.
10097
10098 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10099
10100         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
10101         used insn_type variable.
10102         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
10103         to avoid set-but-not-used warning.
10104
10105 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10106
10107         * df-core.c (df_ref_debug): Change format string placeholder
10108         from 0x%x to %#x.
10109         * dwarf2asm.c (dw2_asm_output_data_raw,
10110         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
10111         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
10112         * dwarf2out.c (output_cfi, output_cfi_directive,
10113         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
10114         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
10115         Ditto.
10116         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
10117         * print-rtl.c (print_rtx): Ditto.
10118
10119 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10120
10121         PR middle-end/42694
10122         * builtins.c (expand_builtin_pow_root): New function to expand pow
10123         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
10124         series of sqrt and cbrt calls under -ffast-math.
10125         (expand_builtin_pow): Call it.
10126
10127 2010-04-14  Michael Matz  <matz@suse.de>
10128
10129         PR tree-optimization/42963
10130         * tree-cfg.c (touched_switch_bbs): New static variable.
10131         (group_case_labels_stmt): New function broken out from ...
10132         (group_case_labels): ... here, use the above.
10133         (start_recording_case_labels): Allocate touched_switch_bbs.
10134         (end_recording_case_labels): Deallocate it, call
10135         group_case_labels_stmt.
10136         (gimple_redirect_edge_and_branch): Remember index of affected BB.
10137
10138 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10139
10140         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
10141         from insn template.
10142
10143 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
10144
10145         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
10146
10147 2010-04-13  Jan Hubicka  <jh@suse.cz>
10148
10149         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
10150         of optimized out static functions.
10151         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
10152         cost computation.  Also sanity check for overflows.
10153         (update_caller_keys): Update cgraph_edge_badness call; properly
10154         update fibheap and sanity check that it is up to date.
10155         (add_new_edges_to_heap): Update cgraph_edge_badness.
10156         (cgraph_decide_inlining_of_small_function): Likewise;
10157         add sanity checking that badness in heap is up to date;
10158         improve dumping of reason; Update badness of calls to the
10159         offline copy of function currently inlined; dump badness
10160         of functions not inlined because of unit growth limits.
10161
10162 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10163
10164         PR middle-end/32628
10165         * c-common.c (pointer_int_sum): Disregard overflow that occured only
10166         because of sign-extension change when converting to sizetype here...
10167         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
10168
10169         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
10170         the folding to constants.  Remove redundant final conversion.
10171         (fold_binary) <associate>: Do not associate if the re-association of
10172         constants alone overflows.
10173         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
10174         to the end of the list.
10175         (multiple_of_p) <COND_EXPR>: New case.
10176
10177 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10178
10179         * opt-functions.awk (opt_sanitized_name): New.
10180         (opt_enum): New.
10181         * optc-gen.awk: Use it
10182         * opth-gen.awk: Use it.
10183
10184 2010-04-13  Martin Jambor  <mjambor@suse.cz>
10185
10186         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
10187         (sra_modify_assign): Delete stmts loading dead data even if racc has no
10188         children.  Call replace_uses_with_default_def_ssa_name to handle
10189         SSA_NAES on lhs.
10190
10191 2010-04-13  Michael Matz  <matz@suse.de>
10192
10193         PR middle-end/43730
10194         * builtins.c (expand_builtin_interclass_mathfn): Also create
10195         a register if the predicate doesn't match.
10196
10197 2010-04-13  Diego Novillo  <dnovillo@google.com>
10198
10199         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
10200         * c-pch.c: Include timevar.h.
10201         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
10202         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
10203         * ggc-common.c: Include timevar.h.
10204         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
10205         * timevar.def (TV_PCH_SAVE): Define.
10206         (TV_PCH_CPP_SAVE): Define.
10207         (TV_PCH_PTR_REALLOC): Define.
10208         (TV_PCH_PTR_SORT): Define.
10209         (TV_PCH_RESTORE): Define.
10210         (TV_PCH_CPP_RESTORE): Define.
10211
10212 2010-04-13  Michael Matz  <matz@suse.de>
10213
10214         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
10215         into MINUS_EXPRs.
10216         (can_reassociate_p): New function.
10217         (break_up_subtract_bb, reassociate_bb): Use it.
10218
10219 2010-04-13  Richard Guenther  <rguenther@suse.de>
10220
10221         PR bootstrap/43737
10222         * builtins.c (c_readstr): Fix assert.
10223
10224 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
10225
10226         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
10227         when generating cltd insn.
10228
10229         (*ashl<mode>3_1): Remove special handling for register operand 2.
10230         (*ashlsi3_1_zext): Ditto.
10231         (*ashlhi3_1): Ditto.
10232         (*ashlhi3_1_lea): Ditto.
10233         (*ashlqi3_1): Ditto.
10234         (*ashlqi3_1_lea): Ditto.
10235         (*<shiftrt_insn><mode>3_1): Ditto.
10236         (*<shiftrt_insn>si3_1_zext): Ditto.
10237         (*<shiftrt_insn>qi3_1_slp): Ditto.
10238         (*<rotate_insn><mode>3_1): Ditto.
10239         (*<rotate_insn>si3_1_zext): Ditto.
10240         (*<rotate_insn>qi3_1_slp): Ditto.
10241
10242 2010-04-13  Richard Guenther  <rguenther@suse.de>
10243
10244         * tree-ssa-structalias.c (callused_id): Remove.
10245         (call_stmt_vars): New.
10246         (get_call_vi): Likewise.
10247         (lookup_call_use_vi): Likewise.
10248         (lookup_call_clobber_vi): Likewise.
10249         (get_call_use_vi): Likewise.
10250         (get_call_clobber_vi): Likewise.
10251         (make_transitive_closure_constraints): Likewise.
10252         (handle_const_call): Adjust to do per-call call-used handling.
10253         (handle_pure_call): Likewise.
10254         (find_what_var_points_to): Remove general callused handling.
10255         (init_base_vars): Likewise.
10256         (init_alias_vars): Initialize call_stmt_vars.
10257         (compute_points_to_sets): Process call-used and call-clobbered
10258         vars for call statements.
10259         (delete_points_to_sets): Free call_stmt_vars.
10260
10261 2010-04-13  Richard Guenther  <rguenther@suse.de>
10262
10263         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
10264         Only add RW dependence for dependence distance zero.
10265         Adjust maximal vectorization factor according to dependences.
10266         Move alignment handling ...
10267         (vect_find_same_alignment_drs): ... here.  New function.
10268         (vect_analyze_data_ref_dependences): Adjust.
10269         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
10270         (vect_analyze_data_refs): Adjust minimal vectorization factor
10271         according to data references.
10272         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
10273         dependences before determining the vectorization factor.
10274         Analyze alignment after determining the vectorization factor.
10275         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
10276         dependences before alignment.
10277         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
10278         Adjust prototype.
10279         (vect_analyze_data_refs): Likewise.
10280         (MAX_VECTORIZATION_FACTOR): New define.
10281
10282 2010-04-13  Duncan Sands  <baldrick@free.fr>
10283
10284         * except.h (lang_eh_type_covers): Remove.
10285         * except.c (lang_eh_type_covers): Likewise.
10286
10287 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10288             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10289
10290         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
10291         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
10292         UNITS_PER_LONG where it is ABI relevant.
10293         (s390_return_addr_rtx): Likewise.
10294         (s390_back_chain_rtx): Likewise.
10295         (s390_frame_area): Likewise.
10296         (s390_frame_info): Likewise.
10297         (s390_initial_elimination_offset): Likewise.
10298         (save_gprs): Likewise.
10299         (s390_emit_prologue): Likewise.
10300         (s390_emit_epilogue): Likewise.
10301         (s390_function_arg_advance): Likewise.
10302         (s390_function_arg): Likewise.
10303         (s390_va_start): Likewise.
10304         (s390_gimplify_va_arg): Likewise.
10305         (s390_function_profiler): Likewise.
10306         (s390_optimize_prologue): Likewise.
10307         (s390_rtx_costs): Likewise.
10308         (s390_secondary_reload): Likewise.
10309         (s390_promote_function_mode): Likewise.
10310         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
10311         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
10312         registers available.
10313         (s390_unwind_word_mode): New function.
10314         (s390_function_value): Split 64 bit values into register pair if
10315         used as return value.
10316         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
10317         function call parameters.  Handle parallels.
10318         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
10319         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
10320         (DWARF_CIE_DATA_ALIGNMENT): New macro.
10321         (s390_expand_setmem): Remove unused variable src_addr.
10322         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
10323         deal with 64 bit registers.
10324         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
10325         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
10326         (UNITS_PER_LONG): New macro.
10327         * libjava/include/s390-signal.h: Define extended ucontext
10328         structure containing the upper halfs of the 64 bit registers.
10329
10330 2010-04-13  Simon Baldwin  <simonb@google.com>
10331
10332         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
10333
10334 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
10335
10336         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
10337         rvalue on the RHS if the LHS is of a non-renamable type.
10338         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
10339
10340 2010-04-13  Matthias Klose  <doko@ubuntu.com>
10341
10342         * gcc.c (cc1_options): Handle -iplugindir before processing
10343         the cc1 spec. Only add -iplugindir once.
10344         (cpp_unique_options): Add -iplugindir option if -fplugin* options
10345         found.
10346         * common.opt (iplugindir): Remove `Separate' property, initialize.
10347         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
10348         option.
10349         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
10350         (distclean): Remove plugin dir.
10351         * doc/invoke.texi: Document -iplugindir.
10352
10353 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
10354
10355         * doc/plugins.texi (Loading Plugins): Document short
10356         -fplugin=foo option.
10357         (Plugin API): Mention default_plugin_dir_name function.
10358
10359         * gcc.c (find_file_spec_function): Add new declaration.
10360         (static_spec_func): Use it for "find-file".
10361         (find_file_spec_function): Add new function.
10362         (cc1_options): Add -iplugindir option if -fplugin* options found.
10363
10364         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
10365
10366         * plugin.c (add_new_plugin): Updated comment, and handle short
10367         plugin name.
10368         (default_plugin_dir_name): Added new function.
10369
10370         * common.opt (iplugindir): New option to set the plugin directory.
10371
10372 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
10373
10374         * config/i386/i386.md (any_rotate): New code iterator.
10375         (rotate_insn): New code attribute.
10376         (rotate): Ditto.
10377         (SWIM124): New mode iterator.
10378         (<rotate_insn>ti3): New expander.
10379         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
10380         any_rotate code iterator.
10381         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
10382         using any_rotate code iterator and SWIM124 mode iterator.
10383         (ix86_rotlti3): New insn_and_split pattern.
10384         (ix86_rotrti3): Ditto.
10385         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
10386         ix86_rotl{di,ti}3 patterns.
10387         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
10388         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
10389         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
10390         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
10391         code iterator and SWI mode iterator.
10392         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
10393         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
10394         code iterator.
10395         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
10396         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
10397         (bswap rotatert splitter): Add splitter.
10398         (bswap splitter): Macroize splitter using any_rotate code iterator.
10399         Add insn predicate to split only for TARGET_USE_XCHGB or when
10400         optimizing function for size.
10401
10402 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10403
10404         * config/pa/pa.c (emit_move_sequence): Remove use of
10405         deleted variable flag_argument_noalias.
10406
10407 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10408
10409         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
10410         configurations.
10411         Add to unsupported targets list.
10412         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
10413         sparc*-sun-solaris2.[567]* from target lists.
10414         * configure: Regenerate.
10415         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
10416         removal.
10417         Remove Solaris 7 patch references.
10418         (Specific, sparc-sun-solaris2.7): Removed.
10419         (sparc-sun-solaris2*): Update Solaris 7 example.
10420         (sparc64-*-solaris2*): Likewise.
10421
10422 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10423
10424         * config.build (alpha*-dec-osf4*): Remove.
10425         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
10426         of obsolete configurations.
10427         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
10428         support.
10429         * config/alpha/t-osf4: Renamed to ...
10430         * config/alpha/t-osf5: ... this.
10431         * config/alpha/osf.h: Renamed to ...
10432         * config/alpha/osf5.h: ... this.
10433         Merged old osf5.h contents.
10434         Update comments.
10435         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
10436         (EXTRA_SPECS): Removed.
10437         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
10438         reflect removal of Tru64 UNIX V4.0/V5.0 support.
10439         Document that.
10440
10441 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10442
10443         * doc/contrib.texi (Contributors, Rainer Orth): Update.
10444
10445 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
10446
10447         PR/43702
10448         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
10449         __thiscall convention.
10450
10451 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10452
10453         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
10454         orig_base.
10455         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
10456
10457 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
10458
10459         * function.c (assign_parms_initialize_all): Add unused attribute
10460         to fntype.
10461
10462 2010-04-12  Richard Guenther  <rguenther@suse.de>
10463
10464         * gsstruct.def (GSS_CALL): New.
10465         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
10466         * gimple.h: Include tree-ssa-alias.h.
10467         (struct gimple_statement_call): New.
10468         (union gimple_statement_struct_d): Add gimple_call member.
10469         (gimple_call_reset_alias_info): Declare.
10470         (gimple_call_use_set): New function.
10471         (gimple_call_clobber_set): Likewise.
10472         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
10473         * gimple.c (gimple_call_reset_alias_info): New function.
10474         (gimple_build_call_1): Call it.
10475         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10476         * tree-inline.c (remap_gimple_stmt): Likewise.
10477         (expand_call_inline): Remove callused handling.
10478         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
10479         * tree-dfa.c (dump_variable): Likewise.
10480         * tree-parloops.c (parallelize_loops): Likewise.
10481         * tree-ssa.c (init_tree_ssa): Likewise.
10482         (delete_tree_ssa): Likewise.
10483         * tree-flow-inline.h (is_call_used): Remove.
10484         * tree-flow.h (struct gimple_df): Remove callused member.
10485         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
10486         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
10487         (ref_maybe_used_by_call_p_1): Simplify.
10488         (call_may_clobber_ref_p_1): Likewise.
10489         * tree-ssa-structalias.c (compute_points_to_sets): Set
10490         the call stmt used and clobbered sets.
10491         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
10492         (find_tail_calls): Verify the tail call.
10493
10494 2010-04-12  Richard Guenther  <rguenther@suse.de>
10495
10496         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
10497         single-iteration always-inline inlining.
10498         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
10499         (cgraph_decide_inlining): Do not handle always-inline specially.
10500         (try_inline): Remove always-inline cycle detection special case.
10501         Do not recurse on always-inlines.
10502         (cgraph_early_inlining): Do not iterate if not optimizing.
10503         (cgraph_gate_early_inlining): remove.
10504         (pass_early_inline): Run unconditionally.
10505         (gate_cgraph_decide_inlining): New function.
10506         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
10507         not inlining or optimizing.
10508         (cgraph_decide_inlining_of_small_functions): Also consider
10509         always-inline functions.
10510         (cgraph_default_inline_p): Return true for nodes which should
10511         disregard inline limits.
10512         (estimate_function_body_sizes): Assume zero size and time for
10513         nodes which are marked as disregarding inline limits.
10514         (cgraph_decide_recursive_inlining): Do not perform recursive
10515         inlining on always-inline nodes.
10516
10517 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
10518
10519         PR bootstrap/43699
10520         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
10521         for exprs satisfying handled_component_p.
10522
10523 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10524
10525         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
10526         non-constant aggregate elements.
10527
10528         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
10529         is a real initialization.
10530
10531 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
10532
10533         PR c/36774
10534         * c-decl.c (start_function): Move forward check for nested function.
10535
10536 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10537
10538         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
10539         * config/sh/sh.c: Include reload.h.
10540         (sh_legitimize_reload_address): New.
10541         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
10542         sh_legitimize_reload_address.
10543
10544 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10545
10546         * config/sh/sh.md (*movqi_pop): New insn pattern.
10547         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
10548
10549 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10550
10551         * config/i386/i386.md (any_shiftrt): New code iterator.
10552         (shiftrt_insn): New code attribute.
10553         (shiftrt): Ditto.
10554         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
10555         using any_shiftrt code iterator.
10556         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
10557         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
10558         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
10559         pattern from corresponding peephole2 patterns.
10560         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
10561         using any_shiftrt code iterator.
10562         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
10563         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
10564         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
10565         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
10566         *{ashr,lshr}<mode>3_cmp_zext.
10567         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
10568
10569 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10570
10571         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
10572         scratch register.
10573         (*lshr<mode>3_cconly): Ditto.
10574
10575 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
10576
10577         * config/i386/i386.md (lshr<mode>3): Macroize expander from
10578         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
10579         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10580         pattern from *lshr{di,ti}3_1 and corresponding splitters using
10581         DWI mode iterator.
10582         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
10583         from corresponding peephole2 patterns.
10584         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
10585         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
10586         and *lshrdi3_1_rex64 using SWI mode iterator.
10587         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
10588         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
10589         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
10590         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
10591         and *lshrdi3_cmp_rex64 using SWI mode iterator.
10592         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
10593         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
10594         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
10595         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
10596         SWI mode iterator.
10597
10598 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
10599
10600         * config/i386/i386.md (ashr<mode>3): Macroize expander from
10601         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
10602         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10603         pattern from *ashr{di,ti}3_1 and corresponding splitters using
10604         DWI mode iterator.
10605         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
10606         from corresponding peephole2 patterns.
10607         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
10608         (ashrsi3_cvt): Rename from ashrsi3_31.
10609         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
10610         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
10611         and x86_64_shift_adj_3 using SWI48 mode iterator.
10612         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
10613         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
10614         and *ashrdi3_1_rex64 using SWI mode iterator.
10615         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
10616         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
10617         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
10618         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
10619         and *ashrdi3_cmp_rex64 using SWI mode iterator.
10620         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
10621         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
10622         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
10623         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
10624         SWI mode iterator.
10625         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
10626         * config/i386/i386.c (ix86_split_ashr): Update for renamed
10627         x86_shift<mode>_adj_3 expanders.
10628
10629 2010-04-10  Wei Guozhi  <carrot@google.com>
10630
10631         PR target/42601
10632         * config/arm/arm.c (arm_pic_static_addr): New function.
10633         (legitimize_pic_address): Call arm_pic_static_addr when it detects
10634         a static symbol.
10635         (arm_output_addr_const_extra): Output expression for new pattern.
10636         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
10637
10638 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
10639
10640         * ira-costs.c (record_reg_classes): Ignore alternatives that are
10641         not enabled.
10642
10643         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
10644         * web.c: Include "insn-config.h" and "recog.h".
10645         (union_match_dups): New function.
10646         (web_main): Call it.
10647         (union_defs): Don't try to recognize match_dups.
10648
10649         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
10650         if doing so would replace the entire pattern.
10651
10652 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
10653
10654         PR target/43707
10655         PR target/43709
10656         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
10657         and splitter pattern.  Change splitter operand 1 predicate to
10658         nonmemory_operand.
10659
10660 2010-04-09  Martin Jambor  <mjambor@suse.cz>
10661
10662         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
10663         lattices are addresses of CONST_DECLs with the same initial value.
10664         (ipcp_print_all_lattices): Print values of CONST_DECLs.
10665         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
10666
10667 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
10668             Bernd Schmidt  <bernds@codesourcery.com>
10669
10670         * loop-invariant.c (replace_uses): New static function.
10671         (move_invariant_reg): Use it to ensure we can replace the uses.
10672
10673 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10674
10675         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
10676         function template.
10677         (picochip_override_options): Enable section anchors only above -O1.
10678         (picochip_reorg): Fixed a couple of build warnings.
10679
10680 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10681
10682         * configure.ac (plugin -rdynamic test): Log result.
10683         * configure: Regenerate.
10684         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
10685         (RDYNAMIC_SPEC): Define.
10686         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
10687
10688 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10689
10690         * configure.ac: Determine Sun ld version numbers.
10691         (comdat_group): Restrict GNU ld version checks to gld.
10692         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
10693         (enable_comdat): Support --enable-comdat.
10694         * configure: Regenerate.
10695         * doc/install.texi (Configuration): Document --enable-comdat.
10696
10697 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10698
10699         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
10700         * config/sol2-gld.h: ... here.
10701         * config.gcc (sparc*-*-solaris2*): Reflect this.
10702         (i[34567]86-*-solaris2*): Use it.
10703
10704 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
10705
10706         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
10707         setup_clocks_p.
10708         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
10709
10710 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10711
10712         PR 42965
10713         * diagnostic.c (diagnostic_initialize): Initialize
10714         some_warnings_are_errors.
10715         (diagnostic_finish): New.
10716         (diagnostic_action_after_output): Call it before exiting.
10717         (diagnostic_report_diagnostic): Do not print message here. Set
10718         some_warnings_are_errors.
10719         * diagnostic.h (diagnostic_context): Delete
10720         issue_warnings_are_errors_message. Add some_warnings_are_errors.
10721         (diagnostic_finish): Declare.
10722         * toplev.c (toplev_main): Call it before exit.
10723
10724 2010-04-09  Jason Merrill  <jason@redhat.com>
10725
10726         PR c++/42623
10727         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
10728         for incomplete type.
10729
10730         PR c++/41788
10731         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
10732         based on a warning flag.
10733
10734 2010-04-09  Richard Guenther  <rguenther@suse.de>
10735
10736         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
10737
10738 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
10739
10740         PR bootstrap/43684
10741         * varasm.c (default_assemble_visibility): Wrap vars that are
10742         set, but unused, by targets without GAS.
10743         * config/rs6000/rs6000.c (paired_emit_vector_compare):
10744         Remove set, but unused, vars.
10745         (rs6000_legitimize_tls_address): Likewise.
10746         (altivec_expand_dst_builtin): Likewise.
10747         * config/darwin.c (machopic_classify_symbol): Likewise.
10748         (machopic_indirection_name): Likewise.
10749
10750 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
10751
10752         * config/i386/i386.md (DWI): New mode iterator.
10753         (S): New mode attribute.
10754         (shift_operand): Ditto.
10755         (shift_immediate_operand): Ditto.
10756         (ashl_input_operand): Ditto.
10757         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
10758         using SDWIM mode iterator.
10759         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
10760         pattern from *ashl{di,ti}3_1 and corresponding splitters using
10761         DWI mode iterator.
10762         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
10763         from corresponding peephole2 patterns.
10764         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
10765         and x86_64_shift_adj_1 using SWI48 mode iterator.
10766         (x86_shift<mode>_adj_2): Ditto.
10767         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
10768         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
10769         using SWI48 mode iterator.
10770         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
10771         *ashldi3_cmp_rex64 using SWI mode iterator.
10772         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
10773         *ashldi3_cconly_rex64 using SWI mode iterator.
10774         * config/i386/i386.c (ix86_split_ashl): Update for renamed
10775         x86_shift<mode>_adj_{1,2}.
10776         (ix86_split_ashr): Ditto.
10777         (ix86_split_lshr): Ditto.
10778
10779 2010-04-09  Richard Guenther  <rguenther@suse.de>
10780
10781         * target.h (builtin_conversion): Pass in input and output types.
10782         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
10783         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
10784         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
10785         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
10786
10787         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
10788         Handle AVX modes.
10789         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
10790
10791 2010-04-09  Richard Guenther  <rguenther@suse.de>
10792
10793         PR target/43152
10794         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
10795
10796 2010-04-09  Richard Guenther  <rguenther@suse.de>
10797
10798         * tree-vectorizer.h (struct _stmt_vec_info): Document
10799         that vectype is the type of the LHS.
10800         (supportable_widening_operation, supportable_narrowing_operation):
10801         Get both input and output vector types as arguments.
10802         (vect_is_simple_use_1): Declare.
10803         (get_same_sized_vectype): Likewise.
10804         * tree-vect-loop.c (vect_determine_vectorization_factor):
10805         Set STMT_VINFO_VECTYPE to the vector type of the def.
10806         (vectorizable_reduction): Adjust.
10807         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
10808         Adjust.  Specify the output vector type.
10809         (vect_pattern_recog_1): Adjust.
10810         * tree-vect-stmts.c (get_same_sized_vectype): New function.
10811         (vectorizable_call): Adjust.
10812         (vectorizable_conversion): Likewise.
10813         (vectorizable_operation): Likewise.
10814         (vectorizable_type_demotion): Likewise.
10815         (vectorizable_type_promotion): Likewise.
10816         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
10817         the def.
10818         (vect_is_simple_use_1): New function.
10819         (supportable_widening_operation): Get both input and output
10820         vector types.
10821         (supportable_narrowing_operation): Likewise.
10822         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
10823
10824 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
10825
10826         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
10827         __thiscall and _thiscall as predefined macros.
10828         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
10829         thiscall attribute handling.
10830         (ix86_comp_type_attributes): Likewise.
10831         (ix86_function_regparm): Likewise.
10832         (ix86_return_pops_args): Likewise.
10833         (init_cumulative_args): Likewise.
10834         (find_drap_reg): Likewise.
10835         (ix86_static_chain): Likewise.
10836         (x86_this_parameter): Likewise.
10837         (x86_output_mi_thunk): Likewise.
10838         (ix86_attribute_table): Add description for thiscall attribute.
10839         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
10840         * doc/extend.texi: Add documentation for thiscall.
10841
10842 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10843
10844         PR c++/28584
10845         * c.opt (Wint-to-pointer-cast): Available in C++.
10846         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
10847
10848 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
10849
10850         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
10851         * calls.c (expand_call): Pass the function type to aggregate_value_p.
10852         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
10853         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
10854         function type instead.  Reorder and simplify checks.
10855
10856         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
10857
10858 2010-04-08  Jing Yu  <jingyu@google.com>
10859             Zdenek Dvorak  <ook@ucw.cz>
10860
10861         PR tree-optimization/42720
10862         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
10863         loop unswitch conditions here from ...
10864         (tree_unswitch_single_loop): ... here.
10865
10866 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
10867
10868         * tree-if-conv.c: Fix comments and simplify logic.
10869
10870 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
10871
10872         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
10873         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
10874         (main_tree_if_conversion): Update call to tree_if_conversion.
10875
10876 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10877
10878         PR 42485
10879         * doc/invoke.texi (-b,-V): Delete.
10880         * doc/tm.texi: Do not mention -b.
10881         * gcc.c (display_help): Delete -b and -V.
10882         (process_command): Delete -b and -V.
10883         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
10884
10885 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
10886             Wolfgang Gellerich  <gellerich@de.ibm.com>
10887
10888         Implement target hook for loop unrolling
10889         * target.h (loop_unroll_adjust): Add a new target hook function.
10890         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
10891         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
10892         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
10893         (s390_loop_unroll_adjust): Implement the new target hook for s390.
10894         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
10895         target hook.
10896         (decide_unroll_stupid): Likewise.
10897
10898 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10899
10900         PR target/43643
10901         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
10902
10903 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10904
10905         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
10906         (Specific, *-*-solaris2*): Likewise.
10907         Don't prefer Sun as over GNU as.
10908
10909 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
10910
10911         * config/s390/s390.c (override_options): Adjust the z10 defaults
10912         for max-unroll-times, max-completely-peeled-insns
10913         and max-completely-peel-times.
10914
10915 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10916
10917         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
10918         instructions for z10.
10919         (s390_expand_setmem): Likewise.
10920         (s390_expand_cmpmem): Likewise.
10921
10922 2010-04-08  Richard Guenther  <rguenther@suse.de>
10923
10924         PR tree-optimization/43679
10925         * tree-ssa-pre.c (eliminate): Only propagate copies.
10926
10927 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
10928
10929         PR bootstrap/43681
10930         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
10931         set but not used variable warning.
10932
10933 2010-04-08  Wei Guozhi  <carrot@google.com>
10934
10935         PR target/41653
10936         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
10937         (arm_size_rtx_costs): Call the new function when optimized for size.
10938
10939 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
10940
10941         PR debug/43670
10942         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
10943         op0 is not a MEM, just return NULL instead of assertion
10944         failure.
10945         (discover_nonconstant_array_refs): Don't walk debug stmts.
10946
10947 2010-04-08  Doug Kwan  <dougkwan@google.com>
10948
10949         * configure.ac: Recognize gold and do not use its version number
10950         to test ld features.
10951         * configure: Regenerate.
10952
10953 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
10954
10955         PR middle-end/40815
10956         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
10957         (negate_value): Move code to push elements to broken_up_substracts ...
10958         (eliminate_plus_minus_pair): ... here.  Push operands that have no
10959         negative pair to plus_negates.
10960         (repropagate_negates, init_reassoc, fini_reassoc): Update.
10961
10962 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10963
10964         * doc/install.texi (Configuration): Move description of
10965         --enable-lto, --with-libelf*, --enable-gold from Java section to
10966         general section.
10967
10968         * doc/generic.texi (Working with declarations)
10969         (Function Properties, C and C++ Trees): Fix typos.
10970         * doc/sourcebuild.texi (Top Level): Likewise.
10971
10972 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
10973
10974         PR c/18624
10975         * tree.h (DECL_READ_P): Define.
10976         (struct tree_decl_common): Add decl_read_flag.
10977         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
10978         a set but not used warning.
10979         (merge_decls): Merge DECL_READ_P flag.
10980         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
10981         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
10982         * c-common.c (handle_used_attribute, handle_unused_attribute):
10983         Likewise.
10984         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
10985         New prototypes.
10986         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
10987         New functions.
10988         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
10989         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
10990         c_parser_binary_expression, c_parser_cast_expression,
10991         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
10992         Call default_function_array_read_conversion instead of
10993         default_function_array_conversion where needed.
10994         (c_parser_unary_expression, c_parser_conditional_expression,
10995         c_parser_postfix_expression_after_primary, c_parser_initelt):
10996         Likewise.  Call mark_exp_read where needed.
10997         (c_parser_statement_after_labels, c_parser_asm_operands,
10998         c_parser_typeof_specifier, c_parser_sizeof_expression,
10999         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
11000         where needed.
11001         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
11002         New.
11003         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
11004         (warn_unused_but_set_parameter): Default to warn_unused
11005         && extra_warnings.
11006         * doc/invoke.texi: Document -Wunused-but-set-variable and
11007         -Wunused-but-set-parameter.
11008
11009         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
11010         used count variable.
11011         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
11012         when operandN variables aren't used in the body of the expander
11013         or splitter.
11014         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
11015         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
11016         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
11017         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
11018         FOR_EACH_IMM_USE_ON_STMT): Likewise.
11019         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
11020         * tree.c (PROCESS_ARG): Likewise.
11021
11022 2010-04-07  Simon Baldwin  <simonb@google.com>
11023
11024         * diagnostic.h (diagnostic_override_option_index): New macro to
11025         set a diagnostic's option_index.
11026         * c-tree.h (c_cpp_error): Add warning reason argument.
11027         * opts.c (_warning_as_error_callback): New.
11028         (register_warning_as_error_callback): Store callback for
11029         warnings enabled via enable_warning_as_error.
11030         (enable_warning_as_error): Call callback, minor code tidy.
11031         * opts.h (register_warning_as_error_callback): Declare.
11032         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
11033         response to -Werror=.
11034         (c_common_init_options): Register warning_as_error_callback in opts.c.
11035         * common.opt: Add -Wno-cpp option.
11036         * c-common.c (struct reason_option_codes_t): Map cpp warning
11037         reason codes to gcc option indexes.
11038         * (c_option_controlling_cpp_error): New function, lookup the gcc
11039         option index for a cpp warning reason code.
11040         * (c_cpp_error): Add warning reason argument, call
11041         c_option_controlling_cpp_error for diagnostic_override_option_index.
11042         * doc/invoke.texi: Document -Wno-cpp.
11043
11044 2010-04-07  Richard Guenther  <rguenther@suse.de>
11045
11046         * ipa-reference.c (mark_load): Use get_base_address.
11047         (mark_store): Likewise.
11048
11049         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
11050         inserting GIMPLE_NOPs into the IL.
11051         * tree-ssa-structalias.c (get_constraint_for_component_ref):
11052         Explicitly strip handled components and indirect references.
11053
11054         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
11055         folding address expressions.
11056         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
11057         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
11058         operand_equal_p to compare decls.
11059         (ptr_deref_may_alias_decl_p): Likewise.
11060         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
11061         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
11062         Handle reversed comparison ops.
11063         * tree-sra.c (asm_visit_addr): Use get_base_address.
11064         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
11065         * ipa-reference.c (mark_address): Use get_base_address.
11066
11067 2010-04-07  Richard Guenther  <rguenther@suse.de>
11068
11069         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
11070         Propagate constants everywhere.
11071
11072 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
11073
11074         PR debug/43516
11075         * tree.c (MAX_INT_CACHED_PREC): Define.
11076         (nonstandard_integer_type_cache): New array.
11077         (build_nonstandard_integer_type): Cache results for precision
11078         <= MAX_INT_CACHED_PREC.
11079
11080 2010-04-07  Richard Guenther  <rguenther@suse.de>
11081
11082         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
11083         -fargument-noalias-global, -fargument-noalias-anything): Remove.
11084         * common.opt: Likewise.
11085         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
11086         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
11087         (nonoverlapping_memrefs_p): Likewise.
11088         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
11089         * opts.c (common_handle_option): Handle OPT_fargument_alias,
11090         OPT_fargument_noalias, OPT_fargument_noalias_anything and
11091         OPT_fargument_noalias_global for backward compatibility.
11092
11093 2010-04-07  Richard Guenther  <rguenther@suse.de>
11094
11095         PR tree-optimization/43270
11096         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
11097         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
11098         * tree-ssa-pre.c (phi_translate_1): Adjust.
11099         (fully_constant_expression): Split out vn_reference handling to ...
11100         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
11101         Fold reads from constant strings.
11102         (vn_reference_lookup): Handle fully constant references.
11103         (vn_reference_lookup_pieces): Likewise.
11104         * Makefile.in (expmed.o-warn): Add -Wno-error.
11105
11106 2010-04-07  Martin Jambor  <mjambor@suse.cz>
11107
11108         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
11109
11110 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
11111
11112         PR driver/41594
11113         * gcc.c: Add -static-libstdc++ to list of recognized options.
11114
11115 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11116
11117         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
11118
11119 2010-04-07  Richard Guenther  <rguenther@suse.de>
11120
11121         PR middle-end/42617
11122         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
11123         bases build simple mem attributes to retain points-to information.
11124
11125 2010-04-07  Richard Guenther  <rguenther@suse.de>
11126
11127         PR middle-end/42617
11128         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
11129         preserve points-to related information.
11130
11131 2010-04-07  Richard Guenther  <rguenther@suse.de>
11132
11133         PR middle-end/42617
11134         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
11135         discard plain indirect references.
11136         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
11137         * tree.c (tree_nop_conversion): Likewise.
11138
11139 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
11140
11141         PR debug/43628
11142         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
11143
11144 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
11145
11146         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
11147         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
11148
11149 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11150
11151         * tree-if-conv.c: Fix indentation and comments.
11152
11153 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11154
11155         * tree-if-conv.c: Sort static functions in topological order.
11156
11157 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
11158
11159         * tree-if-conv.c: Fix indentation and comments.
11160
11161 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11162
11163         PR middle-end/43519
11164         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
11165         lang_hooks.types.type_for_size instead of
11166         build_nonstandard_integer_type.
11167         When converting an unsigned type to signed, double its precision.
11168         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
11169         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
11170         (graphite_create_new_loop_guard): When ub + 1 wraps around,
11171         use lb <= ub.
11172
11173 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11174
11175         PR middle-end/43519
11176         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
11177         POINTER_PLUS_EXPR for pointer types.
11178
11179 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11180
11181         PR middle-end/43519
11182         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
11183         * graphite-clast-to-gimple.c: Include langhooks.h.
11184         (max_signed_precision_type): New.
11185         (max_precision_type): Takes two types as arguments.
11186         (precision_for_value): New.
11187         (precision_for_interval): New.
11188         (gcc_type_for_interval): New.
11189         (gcc_type_for_value): New.
11190         (gcc_type_for_clast_term): New.
11191         (gcc_type_for_clast_red): New.
11192         (gcc_type_for_clast_bin): New.
11193         (gcc_type_for_clast_expr): Split up into several functions.
11194         (gcc_type_for_clast_eq): Rewritten.
11195         (compute_bounds_for_level): New.
11196         (compute_type_for_level_1): New.
11197         (compute_type_for_level): New.
11198         (gcc_type_for_cloog_iv): Removed.
11199         (gcc_type_for_iv_of_clast_loop): Rewritten.
11200         (graphite_create_new_loop): Compute the lower and upper bound types
11201         with gcc_type_for_clast_expr.
11202         (graphite_create_new_loop_guard): Same.
11203         (find_cloog_iv_in_expr): Removed.
11204         (compute_cloog_iv_types_1): Removed.
11205         (compute_cloog_iv_types): Removed.
11206         (gloog): Do not call compute_cloog_iv_types.
11207         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
11208         GBB_CLOOG_IV_TYPES.
11209         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
11210         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
11211         (GBB_CLOOG_IV_TYPES): Removed.
11212
11213 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11214
11215         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
11216         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
11217         (detect_commutative_reduction): Same.
11218
11219 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11220
11221         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
11222         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
11223         argument.
11224         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
11225         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
11226         (rewrite_commutative_reductions_out_of_ssa): Same.
11227         * passes.c (execute_function_todo): Call verify_ssa for every pass
11228         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
11229         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
11230         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
11231         with an extra argument.
11232         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
11233         verify_ssa only when the extra argument is true.
11234         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
11235         with an extra argument.
11236         (tree_transform_and_unroll_loop): Same.
11237
11238 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
11239
11240         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
11241         for all the passes of the LNO having LOOP_CLOSED_SSA.
11242         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
11243         * tree-loop-distribution.c (pass_loop_distribution): Same.
11244         * tree-pass.h (TODO_verify_loops): Removed.
11245         * tree-ssa-loop.c (pass_tree_loop_init): Same.
11246         (pass_lim): Same.
11247         (pass_tree_unswitch): Same.
11248         (pass_predcom): Same.
11249         (pass_vectorize): Same.
11250         (pass_linear_transform): Same.
11251         (pass_graphite_transforms): Same.
11252         (pass_iv_canon): Same.
11253         (pass_complete_unroll): Same.
11254         (pass_complete_unrolli): Same.
11255         (pass_parallelize_loops): Same.
11256         (pass_loop_prefetch): Same.
11257         (pass_iv_optimize): Same.
11258
11259 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
11260
11261         PR middle-end/32824
11262         * passes.c (init_optimization_passes): Move pass_lim before
11263         pass_copy_prop and pass_dce_loop.
11264
11265 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11266
11267         PR target/43667
11268         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
11269         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
11270         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
11271         MULTI_* defines for 4 argument vpermil2p* builtins.
11272
11273 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11274
11275         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
11276         * config/i386/i386.c (x86_maybe_negate_const_int): New.
11277         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
11278         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
11279         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
11280         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
11281         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
11282         Use x86_maybe_negate_const_int to output insn mnemonic.
11283         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
11284         check from instruction predicate.  Update comments.
11285         * config/i386/sync.md (sync_add<mode>): Use
11286         x86_maybe_negate_const_int to output insn mnemonic.
11287
11288 2010-04-06  Jan Hubicka  <jh@suse.cz>
11289
11290         PR tree-optimization/42906
11291         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
11292         IGNORE_SELF argument.  Set visited_control_parents for fully
11293         processed BBs.
11294         (find_obviously_necessary_stmts): Update call of
11295         mark_control_dependent_edges_necessary.
11296         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
11297
11298 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
11299
11300         * config/i386/i386.md: Remove comment about 'e' and 'E'
11301         operand modifier.
11302
11303 2010-04-06  Richard Guenther  <rguenther@suse.de>
11304
11305         PR tree-optimization/43627
11306         * tree-vrp.c (extract_range_from_unary_expr): Widenings
11307         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
11308         not varying.
11309
11310 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
11311
11312         * BASE-VER: Change to 4.6.0.
11313
11314         PR target/43638
11315         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
11316         handling.
11317
11318 2010-04-06  Richard Guenther  <rguenther@suse.de>
11319
11320         PR middle-end/43661
11321         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
11322
11323 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11324
11325         * doc/invoke.texi (Optimize Options): Document that LTO
11326         won't remove object access purely due to incompatible
11327         declarations.
11328
11329 2010-04-04  Matthias Klose  <doko@ubuntu.com>
11330
11331         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
11332         Initialize variable.
11333
11334 2010-04-03  Richard Guenther  <rguenther@suse.de>
11335
11336         PR middle-end/42509
11337         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
11338         require a non-NULL MEM_OFFSET.
11339
11340 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
11341
11342         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
11343         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
11344         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
11345         config/alpha/predicates.md, config/arm/arm.md,
11346         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
11347         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
11348         config/darwin9.h, config/darwin.c, config/darwin.h,
11349         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
11350         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
11351         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
11352         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
11353         config/mips/mips.md, config/mn10300/mn10300.c,
11354         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
11355         config/rs6000/aix.h, config/rs6000/dfp.md,
11356         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
11357         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
11358         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
11359         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
11360         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
11361         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
11362         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
11363         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
11364         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
11365         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
11366         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
11367         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
11368         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
11369         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
11370         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
11371         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
11372         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
11373         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
11374         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
11375         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
11376         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
11377         opt-functions.awk, opth-gen.awk, params.def, passes.c,
11378         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
11379         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
11380         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
11381         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
11382         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
11383         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
11384         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
11385         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
11386         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
11387         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
11388         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
11389         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
11390         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
11391         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
11392
11393 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11394
11395         PR other/43620
11396         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
11397         * aclocal.m4: Regenerate.
11398
11399 2010-04-02  Richard Guenther  <rguenther@suse.de>
11400
11401         PR tree-optimization/43629
11402         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
11403         if we have seen a constant value.
11404
11405 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
11406
11407         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
11408
11409 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
11410
11411         PR target/43469
11412         * arm.c (legitimize_tls_address): Adjust call to
11413         gen_tls_load_dot_plus_four.
11414         (arm_note_pic_base): New function.
11415         (arm_cannot_copy_insn_p): Use it.
11416         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
11417         constraint.
11418
11419 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11420
11421         PR bootstrap/43531
11422
11423         Revert:
11424         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11425
11426         * Makefile.in ($(out_object_file)): Depend on
11427         gt-$(basename $(notdir $(out_file))).h.
11428
11429 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
11430
11431         * config.gcc (lm32-*-rtems*): Add t-lm32.
11432
11433 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
11434
11435         * config.gcc: Add lm32-*-rtems*.
11436         * config/lm32/rtems.h: New file.
11437
11438 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
11439
11440         PR target/42609
11441         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
11442
11443 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
11444
11445         * dwarf2out.c (output_compilation_unit_header): For
11446         -gdwarf-4 use version 4 instead of version 3.
11447         (output_line_info): For version 4 and above emit additional
11448         maximum ops per insn header field.
11449         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
11450
11451         * dwarf2out.c (is_c_family, is_java): Remove.
11452         (lower_bound_default): New function.
11453         (add_bound_info, gen_descr_array_type_die): Use it.
11454
11455 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
11456
11457         PR debug/43325
11458         * dwarf2out.c (gen_variable_die): Allow debug info for variable
11459         re-declaration when it happens in a function.
11460
11461 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
11462
11463         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
11464         (cgraph_remove_function_insertion_hook): Same.
11465         (cgraph_call_function_insertion_hooks): Same.
11466
11467 2010-04-01  Richard Guenther  <rguenther@suse.de>
11468
11469         PR middle-end/43614
11470         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
11471         and TREE_THIS_VOLATILE.
11472         (copy_ref_info): Likewise.
11473         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
11474         * tree.c (build6_stat): Ignore side-effects of all but arg5
11475         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
11476         TARGET_MEM_REF.
11477
11478 2010-04-01  Richard Guenther  <rguenther@suse.de>
11479
11480         PR tree-optimization/43607
11481         * ipa-type-escape.c (check_call): Do not access non-existing
11482         arguments.
11483
11484 2010-04-01  Richard Guenther  <rguenther@suse.de>
11485
11486         PR middle-end/43602
11487         Revert
11488         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
11489                     Jack Howarth <howarth@bromo.med.uc.edu>
11490
11491         * tree-profile.c (tree_init_ic_make_global_vars): Make static
11492         variables TLS.
11493
11494 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11495
11496         * doc/install.texi (Prerequisites): Document libelf usability on
11497         IRIX 5/6 and Solaris 2.
11498         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
11499         Update GNU as, GNU ld requirements.
11500         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
11501         Document Sun Studio compiler download.
11502         Update and simplify as, ld recommendations.
11503         (Specific, *-*-solaris2.7): Note obsoletion, removal.
11504
11505 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11506
11507         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
11508         with_tune_32 to pentium4.
11509
11510 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
11511
11512         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
11513
11514 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11515
11516         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
11517         obsoletion, removal.
11518         Update IDO URL.
11519         Document GNU as requirement.
11520         Update configure requirements.
11521         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
11522         Recomment IRIX 6.5.18+.
11523         Document IDF/IDL requirement.
11524         Document GNU as requirement.
11525         Document GNU ld bootstrap failure.
11526         Remove freeware.sgi.com reference.
11527
11528 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11529
11530         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
11531         UNIX V4.0, V5.0 obsoletion, removal.
11532         Remove --with-gc=simple reference.
11533         Update VM requirements during bootstrap.
11534         Remove -oldas bootstrap description.
11535         Update binutils reference.
11536         Remove comparison failure note.
11537
11538 2010-03-31  Richard Guenther  <rguenther@suse.de>
11539             Zdenek Dvorak  <ook@ucw.cz>
11540             Sebastian Pop  <sebastian.pop@amd.com>
11541
11542         PR middle-end/43464
11543         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
11544         with multiple arguments.
11545         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
11546
11547 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11548
11549         * graphite-dependences.c (print_pddr): Call print_pdr with an
11550         extra argument.
11551         * graphite-poly.c (debug_pdr): Add an extra argument for the
11552         verbosity level.
11553         (print_pdr): Same.
11554         (print_pbb_domain): Same.
11555         (print_pbb): Same.
11556         (print_scop_context): Same.
11557         (print_scop): Same.
11558         (print_cloog): Same.
11559         (debug_pbb_domain): Same.
11560         (debug_pbb): Same.
11561         (print_pdrs): Same.
11562         (debug_pdrs): Same.
11563         (debug_scop_context): Same.
11564         (debug_scop): Same.
11565         (debug_cloog): Same.
11566         (print_scop_params): Same.
11567         (debug_scop_params): Same.
11568         (print_iteration_domain): Same.
11569         (print_iteration_domains): Same.
11570         (debug_iteration_domain): Same.
11571         (debug_iteration_domains): Same.
11572         (print_scattering_function): Same.
11573         (print_scattering_functions): Same.
11574         (debug_scattering_function): Same.
11575         (debug_scattering_functions): Same.
11576         * graphite-poly.h (debug_pdr): Update declaration.
11577         (print_pdr): Same.
11578         (print_pbb_domain): Same.
11579         (print_pbb): Same.
11580         (print_scop_context): Same.
11581         (print_scop): Same.
11582         (print_cloog): Same.
11583         (debug_pbb_domain): Same.
11584         (debug_pbb): Same.
11585         (print_pdrs): Same.
11586         (debug_pdrs): Same.
11587         (debug_scop_context): Same.
11588         (debug_scop): Same.
11589         (debug_cloog): Same.
11590         (print_scop_params): Same.
11591         (debug_scop_params): Same.
11592         (print_iteration_domain): Same.
11593         (print_iteration_domains): Same.
11594         (debug_iteration_domain): Same.
11595         (debug_iteration_domains): Same.
11596         (print_scattering_function): Same.
11597         (print_scattering_functions): Same.
11598         (debug_scattering_function): Same.
11599         (debug_scattering_functions): Same.
11600
11601 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11602
11603         * graphite-poly.c (print_scattering_function_1): New.
11604         (print_scattering_function): Call it.
11605         (print_scop_params): Remove spaces at the end of lines.
11606         (print_cloog): New.
11607         (debug_cloog): New.
11608         * graphite-poly.h (print_cloog): Declared.
11609         (debug_cloog): Declared.
11610
11611 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11612
11613         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
11614         in loop->header.
11615         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
11616         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
11617         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
11618         to switch between adding the IV bump in loop->latch or in loop->header.
11619
11620 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
11621
11622         * graphite-poly.c (print_scattering_function): Pretty print following
11623         the scoplib format.
11624         (print_pdr): Same.
11625         (print_pbb_domain): Same.
11626         (dump_gbb_cases): Same.
11627         (dump_gbb_conditions): Same.
11628         (print_pdrs): Same.
11629         (print_pbb): Same.
11630         (print_scop_params): Same.
11631         (print_scop_context): Same.
11632         (print_scop): Same.
11633         (print_pbb_body): New.
11634         (lst_indent_to): New.
11635         (print_lst): Start new lines with a #.
11636         * graphite-poly.h (pbb_bb): New.
11637         (pbb_index): Use pbb_bb.
11638         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
11639         disjuncts.
11640         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
11641
11642 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
11643
11644         * dwarf2out.c (size_of_die): For -gdwarf-4 use
11645         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
11646         and 0 instead of 1 for dw_val_class_flag.
11647         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
11648         dw_val_class_range_list, dw_val_class_loc_list,
11649         dw_val_class_lineptr and dw_val_class_macptr, use
11650         DW_FORM_flag_present for dw_val_class_flag and
11651         DW_FORM_exprloc for dw_val_class_loc.
11652         (output_die): For -gdwarf-4 print dw_val_class_loc
11653         size as uleb128 instead of 1 or 2 bytes and don't print
11654         anything for dw_val_class_flag.
11655
11656         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
11657         instead of cselib_lookup following by tweaking locs->setting_insn.
11658
11659         PR bootstrap/43596
11660         * cselib.c (cselib_process_insn): Clear cselib_current_insn
11661         even before returning from label, setjmp call or volatile asm
11662         handling.
11663
11664 2010-03-31  Richard Guenther  <rguenther@suse.de>
11665
11666         PR middle-end/43600
11667         * cgraphunit.c (cgraph_output_in_order): Do not allocate
11668         temporary data on stack.
11669
11670 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11671
11672         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
11673         (PUSHSECTION_ASM_OP): Remove.
11674         (POPSECTION_ASM_OP): Remove.
11675         (PUSHSECTION_FORMAT): Remove.
11676         * config/sol2.h (PUSHSECTION_FORMAT): Define.
11677         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
11678         * config/sol2.c (solaris_output_init_fini): Use it.
11679
11680 2010-03-31  Jie Zhang  <jie@codesourcery.com>
11681
11682         PR 43574
11683         * opt-functions.awk (var_type_struct): Use signed char type
11684         for simple variables.
11685
11686 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11687
11688         * config/sol2.c: Include output.h.
11689         (solaris_assemble_visibility): New function.
11690         * config/t-sol2 (sol2.o): Add output.h dependency.
11691         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
11692         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
11693         Redefine.
11694
11695 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
11696
11697         PR target/43580
11698         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
11699         V2SImode or XFmode on PRE_DEC.
11700
11701         PR debug/43557
11702         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
11703         BLKmode.
11704
11705 2010-03-31  Jie Zhang  <jie@codesourcery.com>
11706
11707         PR 43562
11708         * reload.h (caller_save_initialized_p): Declare.
11709         * toplev.c (backend_init_target): Don't call
11710         init_caller_save but set caller_save_initialized_p to false.
11711         * caller-save.c (caller_save_initialized_p): Define.
11712         (init_caller_save): Check caller_save_initialized_p.
11713         * ira.c (ira): Call init_caller_save if flag_caller_saves.
11714
11715 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11716
11717         PR target/39048
11718         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
11719         and soft-fp/t-softfp to tmake_file.
11720         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
11721         (LIBGCC2_TF_CEXT): Define.
11722         (TF_SIZE): Define.
11723
11724 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
11725
11726         PR debug/42977
11727         * cselib.c (n_useless_values): Document handling of debug locs.
11728         (n_useless_debug_values, n_debug_values): New variables.
11729         (new_elt_loc_list): Don't add to debug values, keep count.
11730         (promote_debug_loc): New.
11731         (cselib_reset_table): Zero new variables.
11732         (entry_and_rtx_equal_p): Promote debug locs.
11733         (discard_useless_locs): Increment n_useless_debug_values for
11734         debug values.
11735         (remove_useless_values): Adjust n_useless_values and n_debug_values
11736         with n_useless_debug_values.
11737         (add_mem_for_addr): Promote debug locs.
11738         (cselib_lookup_mem): Likewise.
11739         (cselib_lookup_addr): Renamed to...
11740         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
11741         (cselib_log_lookup): ... this.  Turn into...
11742         (cselib_lookup_addr): ... new wrapper.
11743         (cselib_lookup_from_insn): New.
11744         (cselib_invalidate_regno): Increment n_useless_debug_values for
11745         debug values.
11746         (cselib_invalidate_mem): Likewise.
11747         (cselib_process_insn): Take n_deleted and n_debug_values into
11748         account to guard remove_useless_value call.
11749         (cselib_finish): Zero n_useless_debug_values.
11750         * cselib.h (cselib_lookup_from_insn): Declare.
11751         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
11752         (sched_analyze_2): Likewise.
11753
11754 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
11755
11756         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
11757         functions.
11758         (adjust_mems): Replace narrowing SUBREG of expression containing
11759         just PLUS, MINUS, MULT and ASHIFT of registers and constants
11760         with operations in the narrower mode.
11761
11762         PR debug/43593
11763         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
11764         regs_invalidated_by_call instead all call_used_reg_set registers.
11765
11766 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
11767
11768         PR middle-end/43430
11769         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
11770         pointer comparisons with types_compatible_p.
11771         * tree-vect-stmts.c (vectorizable_call): Same.
11772         (vectorizable_condition): Same.
11773
11774 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11775
11776         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
11777         stack check if the mask would be zero.
11778
11779 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
11780             Jack Howarth <howarth@bromo.med.uc.edu>
11781
11782         * tree-profile.c (tree_init_ic_make_global_vars): Make static
11783         variables TLS.
11784
11785 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
11786
11787         PR other/25232
11788         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
11789         and __unordtf2.
11790         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
11791         Include ___unordxf2 and ___unordtf2.
11792         * config/i386/libgcc-glibc.ver: Do not define inheritance from
11793         GCC_4.4.0 here.
11794
11795 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
11796
11797         * config/lm32/t-lm32: New file.
11798         * config.gcc: Use the above file when targetting lm32.
11799
11800 2010-03-28  Duncan Sands  <baldrick@free.fr>
11801
11802         * Makefile.in (PLUGIN_HEADERS): Add except.h.
11803
11804 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
11805
11806         PR middle-end/43431
11807         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
11808         Improve vectorization cost model diagnostic.
11809
11810 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
11811
11812         PR middle-end/43436
11813         * tree-vect-data-refs.c (vect_analyze_data_refs): When
11814         compute_data_dependences_for_loop returns false, early exit
11815         and output an extra diagnostic for the failed data reference
11816         analysis.
11817
11818 2010-03-29  Richard Guenther  <rguenther@suse.de>
11819
11820         PR tree-optimization/43560
11821         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
11822         (can_sm_ref_p): Treat stores to readonly locations as trapping.
11823
11824 2010-03-29  Jie Zhang  <jie@codesourcery.com>
11825
11826         PR 43564
11827         * toplev.c (process_options): Set optimization_default_node
11828         and optimization_current_node.
11829         * opts.c (decode_options): Don't set optimization_default_node
11830         and optimization_current_node.
11831
11832 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
11833
11834         * config/rtems.h: Abandon -qrtems_debug.
11835
11836 2010-03-28  Jan Hubicka  <jh@suse.cz>
11837
11838         PR tree-optimization/43505
11839         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
11840         map should not be copied.
11841
11842 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11843
11844         PR middle-end/41674
11845         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
11846         cdtors, set DECL_PRESERVE_P.
11847         * ipa.c (cgraph_externally_visible_p): Return true if declaration
11848         should be preseved.
11849
11850 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
11851
11852         PR tree-optimization/43528
11853         * stor-layout.c (place_field): Check that constant fits into
11854         unsigned HWI when skipping calculation of MS bitfield layout.
11855
11856 2010-03-27  Jan Hubicka  <jh@suse.cz>
11857
11858         PR middle-end/43391
11859         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
11860         notice_global_symbol work.
11861
11862 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
11863
11864         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
11865         instead of dwarf2out_decl.
11866         (struct var_loc_node): Remove section_label field.
11867         (dwarf2out_function_decl): New function.
11868         (dwarf2out_var_location): Don't set section_label field.
11869         (dwarf2out_begin_function): Don't empty decl_loc_table here.
11870
11871 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11872
11873         PR tree-optimization/43544
11874         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
11875         First argument for builtin vectorized function hook is now a
11876         tree to be able to distinguish between machine specific and
11877         standard builtins.
11878         * targhooks.c (default_builtin_vectorized_function): Ditto.
11879         * targhooks.h (default_builtin_vectorized_function): Ditto.
11880         * target.h (struct gcc_target): Ditto.
11881         * tree-vect-stmts.c (vectorizable_function): Ditto.
11882         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
11883         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
11884         Ditto.
11885
11886 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
11887
11888         PR c/43381
11889         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
11890         nested binding iff it is a FUNCTION_DECL.
11891         (store_parm_decls_newstyle): Pass nested=true to bind for
11892         FUNCTION_DECLs amongst parameters.
11893
11894 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
11895
11896         * var-tracking.c (vt_expand_loc_callback): Don't run
11897         cselib_expand_value_rtx_cb in dummy mode if
11898         cselib_dummy_expand_value_rtx_cb returned false.
11899
11900         * var-tracking.c (emit_note_insn_var_location): For one part
11901         notes with offset 0, don't add EXPR_LIST around the location.
11902         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
11903         add_location_or_const_value_attribute): Adjust for that change.
11904
11905         PR debug/43540
11906         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
11907         into first operand and location into second.
11908         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
11909         dw_cfi_oprnd_loc for DW_CFA_expression.
11910         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
11911         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
11912         assume first argument is regnum and second argument is location.
11913
11914 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
11915
11916         PR target/42113
11917         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
11918         of scratch register to DImode.  Split to DImode comparison operator.
11919         Use SImode subreg of scratch register in the multiplication.
11920         (*cmp_sadd_sidi): Ditto.
11921         (*cmp_ssub_si): Ditto.
11922         (*cmp_ssub_sidi): Ditto.
11923
11924 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
11925
11926         PR target/43524
11927         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
11928         Remove invalid assert and wrong comment.
11929
11930 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
11931
11932         PR debug/43516
11933         * flags.h (final_insns_dump_p): New extern.
11934         * final.c (final_insns_dump_p): New variable.
11935         (rest_of_clean_state): Set it before -fdump-final-insns=
11936         dumping, clear afterwards.
11937         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
11938         MEM_ALIAS_SET on MEMs.
11939
11940 2010-03-26  David S. Miller  <davem@davemloft.net>
11941
11942         * configure.ac: Fix sparc GOTDATA_OP bug check.
11943         * configure: Rebuild.
11944
11945 2010-03-26  Alan Modra  <amodra@gmail.com>
11946
11947         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
11948
11949 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11950
11951         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
11952         TLS_SECTION_ASM_FLAG.
11953
11954 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
11955
11956         PR bootstrap/43511
11957         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
11958         Clear first_function_block_is_cold.
11959
11960         PR c/43385
11961         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
11962         argument if the argument is truth_value_p.
11963
11964 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
11965
11966         * config/rs6000/constraints.md: Update copyright year for my changes.
11967
11968         PR target/43484
11969         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
11970         used in reg+reg addressing, swap registers.
11971
11972 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
11973
11974         PR debug/43293
11975         * target.h (struct gcc_target): Add code_end hook.
11976         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
11977         if not yet defined.
11978         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
11979         * toplev.c (compile_file): Call targetm.asm_out.code_end
11980         hook before unwind info/debug info output.
11981         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
11982         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
11983         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
11984         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
11985         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
11986         * config/i386/i386.c (ix86_file_end): Renamed to...
11987         (ix86_code_end): ... this.  Make static.  Don't call
11988         file_end_indicate_exec_stack.  Emit unwind info using
11989         final_start_function/final_end_function.
11990         (darwin_x86_file_end): Remove.
11991         (TARGET_ASM_CODE_END): Define.
11992         * config/i386/i386.h (TARGET_ASM_FILE_END,
11993         NEED_INDICATE_EXEC_STACK): Don't define.
11994         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
11995         (TARGET_ASM_FILE_END): Define to darwin_file_end.
11996         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
11997         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
11998
11999         PR target/43498
12000         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
12001         at the beginning and final_end_function at the end.
12002         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
12003
12004 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12005
12006         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
12007         and Sun as TLS syntax.
12008         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
12009         * configure: Regenerate.
12010         * config.in: Regenerate.
12011         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
12012         (default_elf_asm_named_section): Use it.
12013         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
12014         (i386_output_dwarf_dtprel): Likewise.
12015         (output_addr_const_extra): Likewise.
12016         (output_pic_addr_const): Lowercase @GOTTPOFF.
12017         (output_addr_const_extra): Likewise.
12018         (output_pic_addr_const): Lowercase @GOTNTPOFF.
12019         (output_addr_const_extra): Likewise.
12020         (output_pic_addr_const): Lowercase @INDNTPOFF.
12021         (output_addr_const_extra): Likewise.
12022         (output_pic_addr_const): Lowercase @NTPOFF.
12023         (output_addr_const_extra): Likewise.
12024         (output_pic_addr_const): Lowercase @TPOFF.
12025         (output_addr_const_extra): Likewise.
12026         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
12027         (*tls_global_dynamic_64): Likewise.
12028         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
12029         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
12030
12031         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
12032         (ASM_OUTPUT_TLS_COMMON): Use it.
12033         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
12034
12035         PR target/38118
12036         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
12037         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
12038         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
12039         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
12040         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12041         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
12042
12043 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12044
12045         * config/i386/i386.c (override_options): Don't accept
12046         -mtls-dialect=sun any longer.
12047         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
12048         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
12049         (*tls_local_dynamic_base_32_sun): Likewise.
12050         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
12051
12052 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
12053
12054         PR debug/43508
12055         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
12056         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
12057
12058         PR debug/43479
12059         * ira.c (adjust_cleared_regs): New function.
12060         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
12061
12062         PR debug/19192
12063         PR debug/43479
12064         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
12065         from gimple_block.
12066         * expr.c (expand_expr_real): Restore previous
12067         curr_insn_source_location and curr_insn_block after
12068         expand_expr_real_1 call.
12069         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
12070         instead of expand_expr_real_1.
12071
12072 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
12073
12074         PR rtl-optimization/43413
12075         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
12076         hard regs too.
12077
12078 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
12079
12080         PR target/43348
12081         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
12082         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
12083
12084 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
12085
12086         * config/i386/i386.c (ix86_target_string): Add -mfma.
12087         Fix a typo in comment.
12088
12089 2010-03-22  Mike Stump  <mikestump@comcast.net>
12090
12091         PR target/23071
12092         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
12093         Don't overly align based upon packed packed fields.
12094
12095 2010-03-22  Jason Merrill  <jason@redhat.com>
12096
12097         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
12098         Use () rather than [], and move before the element type.
12099
12100 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12101
12102         * doc/configfiles.texi (Configuration Files): Removed
12103         fixinc/Makefile*, intl/Makefile.*.
12104         * doc/makefile.texi: Fixed markup. Abstract from version
12105         control system used.
12106         (Makefile): Removed obsolete gcc/java/parse.y example.
12107         * doc/sourcebuild.texi: Likewise.
12108         (Top Level): Added config, gnattools, libdecnumber, libgcc,
12109         libgomp, libssp.  Removed fastjar.
12110         (Miscellaneous Docs): Clarify location.
12111         Added COPYING3, COPYING3.LIB.
12112         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
12113
12114 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12115
12116         PR target/38085
12117         * config/i386/i386.c (x86_function_profiler)
12118         [!NO_PROFILE_COUNTERS]: Fix typo.
12119         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
12120         instead of callq.
12121
12122 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
12123             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12124
12125         * doc/sourcebuild.texi (Test Directives): Split into six
12126         subsections, with most of the current text in new subsections
12127         Directives, Selectors, and Final Actions.
12128         (Directives): Split list of test directives into multiple
12129         subsubsections.
12130         (Selectors): Describe use and syntax of selectors.
12131         (Effective-Target Keywords): Describe all existing keywords.
12132         (Add Options): Describe features for dg-add-options.
12133         (Require Support): Describe variants of dg-require-support.
12134         (Final Actions): Describe commands to use in dg-final.
12135
12136 2010-03-22  Michael Matz  <matz@suse.de>
12137
12138         PR middle-end/43475
12139         * recog.c (validate_replace_rtx_group): Replace also in
12140         REG_EQUAL and REG_EQUIV notes.
12141
12142 2010-03-22  Richard Guenther  <rguenther@suse.de>
12143
12144         PR tree-optimization/43390
12145         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
12146         sure vector extracts are type correct.
12147
12148 2010-03-22  Richard Guenther  <rguenther@suse.de>
12149
12150         PR middle-end/40106
12151         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
12152         x * sqrt (x) even when optimizing for size if the target
12153         has native support for sqrt.
12154
12155 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
12156
12157         * varasm.c (make_decl_rtl_for_debug): Also clear
12158         flag_mudflap for the duration of make_decl_rtl call.
12159
12160         PR debug/43443
12161         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
12162         locs from preserved VALUEs.
12163
12164 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12165
12166         PR middle-end/42718
12167         * pa.md (movmemsi): Set align to one if zero.
12168         (movmemdi): Likewise.
12169
12170 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
12171
12172         PR target/42321
12173         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
12174         with their corresponding prologue pushes.
12175
12176 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
12177
12178         PR target/43156
12179         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
12180         at the begining or end.
12181         (spu_expand_epilogue): Likewise.
12182
12183 2010-03-20  Richard Guenther  <rguenther@suse.de>
12184
12185         PR rtl-optimization/43438
12186         * combine.c (make_extraction): Properly zero-/sign-extend an
12187         extraction of the low part of a CONST_INT.  Also handle
12188         CONST_DOUBLE.
12189
12190 2010-03-19  Mike Stump  <mikestump@comcast.net>
12191
12192         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
12193         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
12194         (override_options): Use SUBTARGET32_DEFAULT_CPU.
12195
12196 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
12197
12198         PR c/43211
12199         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
12200         an error.
12201
12202 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
12203
12204         PR rtl-optimization/42258
12205         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
12206         use that may match DEF.
12207
12208         PR target/40697
12209         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
12210         the cost of loading the constant rather than assuming
12211         COSTS_N_INSNS (1).
12212         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
12213         outer code is AND, do the same tests as the andsi3 expander and
12214         return COSTS_N_INSNS (1) if and is cheap.
12215
12216         * optabs.c (avoid_expensive_constant): Fix formatting.
12217
12218 2010-03-19  Michael Matz  <matz@suse.de>
12219
12220         PR c++/43116
12221         * attribs.c (decl_attributes): When rebuilding a function pointer
12222         type use the same qualifiers as the original pointer type.
12223
12224 2010-03-19  Martin Jambor  <mjambor@suse.cz>
12225
12226         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
12227         and is_gimple_ip_invariant_address.
12228
12229 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12230
12231         Revert
12232         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12233
12234         * config/arm/arm.c (arm_override_options): Turn off
12235         flag_dwarf2_cfi_asm for AAPCS variants.
12236
12237 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12238
12239         PR target/43399
12240         * config/arm/arm.c (emit_multi_reg_push): Update comments.
12241         Use PRE_MODIFY instead of PRE_DEC.
12242         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
12243         (vfp_emit_fstmd): Likewise.
12244
12245 2010-03-19  Michael Matz  <matz@suse.de>
12246
12247         PR target/43305
12248         * builtins.c (expand_builtin_interclass_mathfn,
12249         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
12250         if that fails.
12251
12252 2010-03-19  Richard Guenther  <rguenther@suse.de>
12253
12254         PR tree-optimization/43415
12255         * tree-ssa-pre.c (phi_translate): Split out worker to ...
12256         (phi_translate_1): ... this.
12257         (phi_translate): Move all caching here.  Cache all NARY
12258         and REFERENCE translations.
12259
12260 2010-03-19  David S. Miller  <davem@davemloft.net>
12261
12262         With help from Eric Botcazou.
12263         * config/sparc/sparc.c: Include dwarf2out.h.
12264         (emit_pic_helper): Delete.
12265         (pic_helper_symbol_name): Delete.
12266         (pic_helper_emitted_p): Delete.
12267         (pic_helper_needed): New.
12268         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
12269         (get_pc_thunk_name): New.
12270         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
12271         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
12272         Set pic_helper_needed to true.  Don't call emit_pic_helper.
12273         (sparc_expand_prologue): Update load_pic_register call.
12274         (sparc_output_mi_thunk): Likewise.
12275         (sparc_file_end): Emit a hidden comdat symbol for the PIC
12276         thunk if possible.  Output CFI information as needed.
12277
12278 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
12279             Jack Howarth <howarth@bromo.med.uc.edu>
12280
12281         PR target/36399
12282         * config/i386/i386.h: Fix ABI on darwin x86-32.
12283
12284 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
12285
12286         * tree.h: Declare make_decl_rtl_for_debug.
12287         * varasm.c (make_decl_rtl_for_debug): New.
12288         * dwarf2out.c (rtl_for_decl_location): Call it.
12289         * cfgexpand.c (expand_debug_expr): Call it.
12290
12291 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12292
12293         PR bootstrap/43399
12294         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
12295         mem_mode.
12296
12297         PR bootstrap/43403
12298         * var-tracking.c (vt_init_cfa_base): Do nothing if
12299         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
12300
12301 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
12302
12303         PR debug/42873
12304         * var-tracking.c (canonicalize_vars_star): New.
12305         (dataflow_post_merge_adjust): Use it.
12306
12307 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
12308
12309         PR debug/43058
12310         * var-tracking.c (non_suitable_const): New function.
12311         (add_uses): For DEBUG_INSNs with constants, don't record any
12312         value, instead just the constant value itself.
12313         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
12314         is not VAR_LOC_UNKNOWN_P, set var to the constant.
12315         (emit_notes_in_bb): Likewise.
12316         (emit_note_insn_var_location): For onepart variables if
12317         cur_loc is a VOIDmode constant, use DECL_MODE.
12318
12319 2010-03-18  Martin Jambor  <mjambor@suse.cz>
12320
12321         PR middle-end/42450
12322         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
12323         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
12324         all non-clones.  Moved call redirection...
12325         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
12326         (cgraph_materialize_all_clones): Dispose of all
12327         combined_args_to_skip bitmaps.
12328         (verify_cgraph_node): Do not check for edges pointing to wrong
12329         nodes in inline clones.
12330         * tree-inline.c (copy_bb): Call
12331         cgraph_redirect_edge_call_stmt_to_callee.
12332         * ipa.c (cgraph_remove_unreachable_nodes): Call
12333         cgraph_node_remove_callees even when there are used clones.
12334
12335 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12336
12337         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
12338
12339 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
12340
12341         PR target/43383
12342         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
12343         for 32bit.
12344
12345 2010-03-18  Michael Matz  <matz@suse.de>
12346
12347         PR middle-end/43419
12348         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
12349         into sqrt(x) if we need to preserve signed zeros.
12350
12351 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
12352             Eric Botcazou  <ebotcazou@adacore.com>
12353
12354         PR rtl-optimization/43360
12355         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
12356         note if we don't know its invariant status.
12357
12358 2010-03-18  Michael Matz  <matz@suse.de>
12359
12360         PR tree-optimization/43402
12361         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
12362         PHI chains of ssa names registered for update.
12363
12364 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
12365
12366         PR target/42427
12367         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
12368         non-offsettable and pre_modify update addressing.
12369         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
12370         and "2" alternatives "#".
12371         (*movdd_softfloat32): Make all alternatives "#";
12372         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
12373         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
12374         (*movdf_softfloat32): Make all alternatives "#";
12375         (movdi): Use the new DIFD mode iterator to create a common splitter
12376         for movdi, movdf and movdd patterns.
12377
12378 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
12379
12380         * common.opt (dumpdir): Remove redundant tab.
12381
12382 2010-03-17  Martin Jambor  <mjambor@suse.cz>
12383
12384         PR tree-optimization/43347
12385         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
12386         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
12387
12388 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
12389
12390         PR rtl-optimization/42216
12391         * regrename.c (create_new_chain): New function, broken out from...
12392         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
12393         appending a use to an empty chain.
12394         (build_def_use): Remove previous changes that convert OP_INOUT to
12395         OP_OUT operands; instead detect the case where an OP_INOUT operand
12396         uses a previously untracked register and create an empty chain for it.
12397
12398 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12399
12400         * doc/extend.texi (Function Attributes): Rewrite unfinished
12401         sentence in ms_abi documentation.
12402
12403 2010-03-17  Alan Modra  <amodra@gmail.com>
12404
12405         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
12406         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
12407         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
12408         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
12409
12410 2010-03-16  Richard Henderson  <rth@redhat.com>
12411
12412         PR middle-end/43365
12413         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
12414         (lower_try_finally): Save and restore eh_seq around the expansion
12415         of the try-finally.
12416
12417 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12418
12419         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
12420         statements before splitting block.
12421
12422 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12423
12424         * doc/sourcebuild.texi (Testsuites): Fix markup.
12425         Use pathnames relative to gcc/testsuite.
12426         (Test Directives): Move description of how timeout is determined.
12427         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
12428         (C Tests): Correct gcc.misc-tests directory.
12429         Framework tests now live in gcc.test-framework.
12430
12431 2010-03-16  Richard Guenther  <rguenther@suse.de>
12432
12433         PR middle-end/43379
12434         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
12435         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
12436
12437 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
12438             Alexandre Oliva  <aoliva@redhat.com>
12439
12440         PR tree-optimization/42917
12441         * lambda-code.c (remove_iv): Skip debug statements.
12442         (lambda_loopnest_to_gcc_loopnest): Likewise.
12443         (not_interesting_stmt): Debug statements are not interesting.
12444
12445 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
12446
12447         PR debug/43051
12448         PR debug/43092
12449         * cselib.c (cselib_preserve_constants,
12450         cfa_base_preserved_val): New static variables.
12451         (preserve_only_constants): New function.
12452         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
12453         clear its REG_VALUES.  If cselib_preserve_constants, don't
12454         empty the whole hash table, but preserve there VALUEs with constants,
12455         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
12456         (cselib_preserve_cfa_base_value): New function.
12457         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
12458         (cselib_init): Change argument to int bitfield.  Set
12459         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
12460         is in it.
12461         (cselib_finish): Clear cselib_preserve_constants and
12462         cfa_base_preserved_val.
12463         * cselib.h (enum cselib_record_what): New enum.
12464         (cselib_init): Change argument to int.
12465         (cselib_preserve_cfa_base_value): New prototype.
12466         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
12467         * dse.c (dse_step1): Likewise.
12468         * cfgcleanup.c (thread_jump): Likewise.
12469         * sched-deps.c (sched_analyze): Likewise.
12470         * gcse.c (local_cprop_pass): Likewise.
12471         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
12472         If FN is non-NULL, call the callback always and whenever it returns
12473         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
12474         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
12475         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
12476         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
12477         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
12478         * var-tracking.c: Include recog.h.
12479         (bb_stack_adjust_offset): Remove.
12480         (vt_stack_adjustments): Don't call it, instead just gather the
12481         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
12482         (adjust_stack_reference): Remove.
12483         (compute_cfa_pointer): New function.
12484         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
12485         (struct adjust_mem_data): New type.
12486         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
12487         functions.
12488         (get_address_mode): New function.
12489         (replace_expr_with_values): Use it.
12490         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
12491         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
12492         (adjust_sets): Remove.
12493         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
12494         Use get_address_mode.
12495         (get_adjusted_src): Remove.
12496         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
12497         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
12498         (add_with_sets): Don't call adjust_sets.
12499         (fp_setter, vt_init_cfa_base): New functions.
12500         (vt_initialize): Change return type to bool.  Move most of pool etc.
12501         initialization to the beginning of the function from end.  Pass
12502         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
12503         If !frame_pointer_needed, call vt_stack_adjustment before mos
12504         vector is filled, call vt_init_cfa_base if argp/framep has been
12505         eliminated to sp.  If frame_pointer_needed and argp/framep has
12506         been eliminated to hard frame pointer, set
12507         hard_frame_pointer_adjustment and call vt_init_cfa_base after
12508         encountering fp setter in the prologue.  For MO_ADJUST, call
12509         log_op_type before pusing the op into mos vector, not afterwards.
12510         Call adjust_insn before cselib_process_insn/add_with_sets,
12511         call cancel_changes (0) afterwards.
12512         (variable_tracking_main_1): Adjust for vt_initialize calling
12513         vt_stack_adjustments and returning whether it succeeded or not.
12514
12515 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
12516
12517         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
12518         debug statements.
12519
12520 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
12521
12522         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
12523         has been set.
12524         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
12525         drap_reg has not been set.
12526
12527 2010-03-15  Michael Matz  <matz@suse.de>
12528
12529         PR middle-end/43300
12530         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
12531         use it to expand block copies.
12532         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
12533         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
12534         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
12535
12536 2010-03-15  Richard Guenther  <rguenther@suse.de>
12537
12538         PR tree-optimization/43367
12539         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
12540         elimination check.
12541
12542 2010-03-15  Richard Guenther  <rguenther@suse.de>
12543
12544         PR tree-optimization/43317
12545         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
12546
12547 2010-03-15  Martin Jambor  <mjambor@suse.cz>
12548
12549         PR tree-optimization/43141
12550         * tree-sra.c (create_abstract_origin): New function.
12551         (modify_function): Call create_abstract_origin.
12552
12553 2010-03-15  Chris Demetriou  <cgd@google.com>
12554
12555         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
12556         wasn't copied.
12557
12558 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12559
12560         PR middle-end/43354
12561         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
12562         call insert_out_of_ssa_copy for default definitions.
12563
12564 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12565
12566         * graphite-clast-to-gimple.c (my_long_long): Defined.
12567         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
12568         * graphite-sese-to-poly.c (my_long_long): Defined.
12569         (scop_ivs_can_be_represented): Use it.
12570
12571 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12572
12573         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
12574         graphite-max-bbs-per-function, and loop-block-tile-size.
12575         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
12576         with "maximum".
12577         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
12578
12579 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12580
12581         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
12582         forward declaration.
12583         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
12584         (add_upper_bounds_from_estimated_nit): New.
12585         (build_loop_iteration_domains): Use it.
12586
12587 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12588
12589         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
12590
12591 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12592
12593         PR middle-end/43306
12594         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
12595         should be an INTEGER_CST.  Also handle CASE_CONVERT.
12596
12597 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12598
12599         * graphite.c (graphite_initialize): To bound the number of bbs per
12600         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
12601         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
12602         * doc/invoke.texi: Document it.
12603
12604 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12605
12606         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
12607         * graphite-sese-to-poly.h (build_poly_scop): Same.
12608
12609 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
12610
12611         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
12612         the number of parameters in the scop.  Use as an upper bound
12613         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
12614         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
12615         * doc/invoke.texi: Document it.
12616
12617 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
12618
12619         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
12620         * doc/c-tree.texi: Remove.
12621         * doc/generic.texi: Merge c-tree.texi here.
12622         * doc/gccint.texi (Trees): Remove menu entry.
12623         (c-tree.texi): Remove @include.
12624         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
12625         * doc/languages.texi (Reading RTL): Ditto.
12626
12627 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
12628
12629         PR target/42869
12630         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
12631
12632 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
12633
12634         PR middle-end/42431
12635         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
12636         code added to work around reload clobbering CONST insns.
12637
12638 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
12639
12640         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
12641         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
12642         (cselib_preserve_only_values): Remove retain argument, don't
12643         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
12644         * cselib.h (cselib_preserve_only_values): Remove retain argument.
12645         * var-tracking.c (micro_operation): Move insn field before union.
12646         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
12647         (struct variable_tracking_info_def): Remove n_mos field, change
12648         mos into a vector of micro_operations.
12649         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
12650         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
12651         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
12652         changing into a vector.
12653         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
12654         come before all other uops generated by add_stores.
12655         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
12656         argument removal.
12657         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
12658         a vector.  Run just one pass over the bbs instead of separate counting
12659         and computation phase.
12660         (vt_finalize): Free VTI (bb)->mos vector instead of array.
12661
12662         PR debug/43329
12663         * tree-inline.c (remap_decls): Put old_var rather than origin_var
12664         into *nonlocalized_list vector.
12665         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
12666         even if origin is non-NULL.
12667         (gen_variable_die): Likewise.
12668         (process_scope_var): Don't change origin.
12669         (gen_decl_die): Likewise.
12670         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
12671         before adding new edges instead of after it, fix moving over
12672         debug stmts.
12673
12674 2010-03-11  David S. Miller  <davem@davemloft.net>
12675
12676         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
12677         of four.
12678         * configure: Rebuild.
12679
12680 2010-03-11  Martin Jambor  <mjambor@suse.cz>
12681
12682         PR tree-optimization/43257
12683         * tree.c (assign_assembler_name_if_neeeded): New function.
12684         (free_lang_data_in_cgraph): Assembler name assignment moved to the
12685         above new function.
12686         * tree.h (assign_assembler_name_if_neeeded): Declare.
12687         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
12688         the function if needed.
12689
12690 2010-03-11  Chris Demetriou  <cgd@google.com>
12691
12692         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
12693         include/stdint-gcc.h, and include/stdint.h world-readable.
12694
12695 2010-03-11  Richard Guenther  <rguenther@suse.de>
12696
12697         PR tree-optimization/43255
12698         * tree-vrp.c (process_assert_insertions_for): Do not insert
12699         asserts for trivial conditions.
12700
12701 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12702
12703         PR tree-optimization/43280
12704         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
12705         generation.  Move calculation of size out of the if branch.
12706         (find_bswap): Modify compare number generation.
12707
12708 2010-03-11  Richard Guenther  <rguenther@suse.de>
12709
12710         PR lto/43200
12711         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
12712         (input_gimple_stmt): Fixup handled component types during
12713         operand read.  Also fix up decls in ADDR_EXPRs.
12714
12715 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
12716
12717         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
12718         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
12719
12720 2010-03-10  Jan Hubicka  <jh@suse.cz>
12721
12722         PR c/43288
12723         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
12724         * varasm.c (get_variable_section): Don't do that here...
12725         (make_decl_rtl): ... and here.
12726         (do_assemble_alias): Produce decl RTL.
12727         (assemble_alias): Likewise.
12728
12729 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
12730
12731         PR debug/43290
12732         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
12733         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
12734         of fde->vdrap_reg.
12735         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
12736         (based_loc_descr): Only express drap or vdrap regno based expressions
12737         using DW_OP_fbreg when not optimizing.
12738         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
12739         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
12740         REG_CFA_SET_VDRAP note.
12741
12742 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
12743
12744         PR tree-optimization/43236
12745         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
12746         error in calculation of base address in reverse iteration case.
12747         (generate_builtin): Take number of latch executions if the statement
12748         is in the latch.
12749
12750 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
12751
12752         PR middle-end/42859
12753         * tree-eh.c: Include pointer-set.h.
12754         (lower_eh_dispatch): Filter out duplicate case labels and
12755         remove the unneeded edge when the label is unused.  Return
12756         true when some edges are removed.
12757         (execute_lower_eh_dispatch): When any lowering resulted in
12758         removing an edge, also delete unreachable blocks.
12759
12760 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
12761
12762         PR bootstrap/43287
12763         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
12764         UNSPEC_MACHOPIC_OFFSET.
12765
12766 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
12767
12768         PR target/43294
12769         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
12770         (m68k_delegitimize_address): New function.
12771
12772 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
12773
12774         PR debug/43299
12775         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
12776
12777         PR debug/43299
12778         * var-tracking.c (adjust_sets): New function.
12779         (count_with_sets, add_with_sets): Use it.
12780         (get_adjusted_src): New inline function.
12781         (add_stores): Use it.
12782
12783         PR debug/43304
12784         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
12785         call cselib_dummy_expand_value_rtx_cb instead of
12786         cselib_expand_value_rtx_cb.
12787
12788         PR debug/43293
12789         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
12790         * config/i386/i386.c: Include debug.h and dwarf2out.h.
12791         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
12792         and .cfi_endproc around the pic thunks.
12793         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
12794         all queued unwind info register saves are saved before the call.
12795         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
12796         considered as sp-=4 for unwind info and the pop as sp+=4 which
12797         also clobbers dest, but doesn't actually restore it.
12798
12799         PR debug/43290
12800         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
12801         RTX_FRAME_RELATED_P.
12802
12803 2010-03-09  Jie Zhang  <jie@codesourcery.com>
12804
12805         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
12806         whitespaces in output template.
12807
12808 2010-03-09  Jie Zhang  <jie@codesourcery.com>
12809
12810         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
12811         out array boundary.
12812
12813 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
12814
12815         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
12816         builtins.exp in a separate job.
12817
12818 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12819
12820         * graphite-sese-to-poly.c (add_param_constraints): Use
12821         lower_bound_in_type and upper_bound_in_type.
12822
12823 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12824
12825         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
12826         instead of unsigned_type_node.
12827
12828 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12829             Reza Yazdani  <reza.yazdani@amd.com>
12830
12831         PR middle-end/43065
12832         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
12833         on pointer type parameters.
12834
12835 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
12836
12837         PR middle-end/42644
12838         PR middle-end/42130
12839         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
12840         handle conversions from pointer to integers.
12841         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
12842         induction variable, to be able to work with code generated by CLooG.
12843         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
12844         (build_poly_scop): Bail out if we cannot codegen a loop.
12845
12846 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
12847
12848         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
12849         code generation with gloog_error.
12850
12851 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12852
12853         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
12854         Call fold_convert on all the returned values.
12855         (expand_scalar_variables_expr): Pass to
12856         expand_scalar_variables_ssa_name the type of the resulting expression.
12857
12858 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12859
12860         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
12861         ppl_min_for_le_pointset.
12862         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
12863         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
12864
12865 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12866
12867         * graphite-dependences.c (map_into_dep_poly): Removed.
12868         (dependence_polyhedron_1): Use combine_context_id_scat.
12869
12870 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12871
12872         * graphite-poly.h (struct poly_scattering): Add layout documentation.
12873         (struct poly_bb): Same.
12874         (combine_context_id_scat): New.
12875
12876 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12877
12878         PR middle-end/42326
12879         * sese.c (name_defined_in_loop_p): Return false for default
12880         definitions.
12881
12882 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12883
12884         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
12885         and clean up the logic.
12886
12887 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
12888
12889         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
12890         early return.
12891
12892 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
12893
12894         * var-tracking.c (remove_cselib_value_chains): Define only for
12895         ENABLE_CHECKING.
12896         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
12897         delete_slot_part, emit_notes_for_differences_1): Don't call
12898         remove_cselib_value_chains here.
12899         (set_slot_part, emit_notes_for_differences_2): Don't call
12900         add_cselib_value_chains here.
12901         (preserved_values): New vector.
12902         (preserve_value): New function.
12903         (add_uses, add_stores, vt_add_function_parameters): Use it
12904         instead of cselib_preserve_value.
12905         (changed_values_stack): New vector.
12906         (check_changed_vars_0): New function.
12907         (check_changed_vars_1, check_changed_vars_2): Use it.
12908         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
12909         changed_values_stack VALUEs.
12910         (vt_emit_notes): For all preserved_values call
12911         add_cselib_value_chains.  If ENABLE_CHECKING call
12912         remove_cselib_value_chains before verifying value_chains is empty.
12913         Initialize and free changed_values_stack.
12914         (vt_initialize): Initialize preserved_values.
12915         (vt_finalize): Free preserved_values.
12916
12917 2010-03-08  Richard Guenther  <rguenther@suse.de>
12918
12919         PR tree-optimization/43269
12920         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
12921         region detection.
12922
12923 2010-03-08  Martin Jambor  <mjambor@suse.cz>
12924
12925         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
12926         (ipa_is_param_called): Removed.
12927         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
12928         (ipa_print_node_params): Do not print the called flag.
12929         (ipa_write_node_info): Do not stream the called flag.
12930         (ipa_read_node_info): Likewise.
12931
12932 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
12933
12934         PR debug/43176
12935         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
12936         * cselib.c (struct expand_value_data): Add dummy field.
12937         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
12938         dummy to false.
12939         (cselib_dummy_expand_value_rtx_cb): New function.
12940         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
12941         any rtl.
12942         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
12943         * var-tracking.c: Include pointer-set.h.
12944         (variable): Change n_var_parts to char from int.  Add
12945         cur_loc_changed and in_changed_variables fields.
12946         (variable_canonicalize): Remove.
12947         (shared_var_p): New inline function.
12948         (unshare_variable): Maintain cur_loc_changed and
12949         in_changed_variables fields.  If var was in changed_variables,
12950         replace it there with new_var.  Just copy cur_loc instead of
12951         resetting it to something else.
12952         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
12953         (dataflow_set_union): Don't call variable_canonicalize.
12954         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
12955         of their DEBUG_EXPR_TREE_DECLs.
12956         (canonicalize_loc_order_check): Verify that cur_loc is NULL
12957         and in_changed_variables and cur_loc_changed is false.
12958         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
12959         and cur_loc_changed.  Don't update cur_loc here.
12960         (variable_merge_over_src): Don't call variable_canonicalize.
12961         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
12962         removing loc that is equal to cur_loc, clear cur_loc,
12963         set cur_loc_changed and ensure variable_was_changed is called.
12964         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
12965         compare pointers in cur_loc check, if it is equal to loc,
12966         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
12967         (variable_different_p): Remove compare_current_location argument,
12968         don't compare cur_loc.
12969         (dataflow_set_different_1): Adjust variable_different_p caller.
12970         (variable_was_changed): If dv had some var in changed_variables
12971         already, reset in_changed_variables flag for it and propagate
12972         cur_loc_changed over to the new variable.  On empty var
12973         always set cur_loc_changed.  Set in_changed_variables on whatever
12974         var is added to changed_variables.
12975         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
12976         Use shared_var_p.  When removing loc that is equal to cur_loc,
12977         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
12978         end, don't set it to something else, just call variable_was_changed.
12979         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
12980         loc being removed, clear cur_loc and set cur_loc_changed.
12981         Set cur_loc_changed if all locations have been removed.
12982         (struct expand_loc_callback_data): New type.
12983         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
12984         allocated.  Always create SUBREGs if simplify_subreg failed.
12985         Prefer to use cur_loc, when that fails and still in
12986         changed_variables (and seen first time) recompute it.  Set
12987         cur_loc_changed of variables which had to change cur_loc and
12988         compute elcd->cur_loc_changed if any of the subexpressions used
12989         had to change cur_loc.
12990         (vt_expand_loc): Adjust to pass arguments in
12991         expand_loc_callback_data structure.
12992         (vt_expand_loc_dummy): New function.
12993         (emitted_notes): New variable.
12994         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
12995         that weren't used for any other decl in current
12996         emit_notes_for_changes call call vt_expand_loc_dummy to update
12997         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
12998         first loc_chain location if NULL before.  Always use just
12999         cur_loc instead of first loc_chain location.  When cur_loc_changed
13000         is false, when not --enable-checking=rtl just don't emit any note.
13001         When rtl checking, compute the note and assert it is the same
13002         as previous note.  Clear cur_loc_changed and in_changed_variables
13003         at the end before removing from changed_variables.
13004         (check_changed_vars_3): New function.
13005         (emit_notes_for_changes): Traverse changed_vars to call
13006         check_changed_vars_3 on each changed var.
13007         (emit_notes_for_differences_1): Clear cur_loc_changed and
13008         in_changed_variables.  Recompute cur_loc of new_var.
13009         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
13010         (vt_emit_notes): Initialize and destroy emitted_notes.
13011
13012 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
13013
13014         PR rtl-optimization/42220
13015         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
13016         Use verify_reg_tracked to determine if we should use OP_OUT rather
13017         than OP_INOUT.
13018         (build_def_use): If we see an in-out operand for a register that we
13019         know nothing about, treat is an output if possible, fail the block if
13020         not.
13021
13022 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13023
13024         PR debug/42897
13025         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
13026         permanently.
13027
13028 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
13029
13030         PR debug/42897
13031         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
13032         uses of relevant DEFs that are dead outside the loop too.
13033
13034 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
13035
13036         * var-tracking.c (dataflow_set_merge): Swap src and src2.
13037         Reverted:
13038         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13039         PR debug/41371
13040         * var-tracking.c (values_to_unmark): New variable.
13041         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13042         values_to_unmark vector.  Moved body to...
13043         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13044         instead queue it into values_to_unmark vector.
13045         (vt_find_locations): Free values_to_unmark vector.
13046
13047 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
13048
13049         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
13050         (site.exp): Export them when plugins are enabled.
13051
13052 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
13053
13054         PR middle-end/42326
13055         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
13056         that contain scevs.
13057         (chrec_fold_multiply): Same.
13058
13059 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
13060
13061         PR c/43248
13062         * c-decl.c (build_compound_literal): Return early if init is
13063         an error_mark_node.
13064
13065 2010-03-04  Martin Jambor  <mjambor@suse.cz>
13066
13067         PR tree-optimization/43164
13068         PR tree-optimization/43191
13069         * tree-sra.c (type_consists_of_records_p): Reject records with
13070         zero-size bit-fields at the end.
13071
13072 2010-03-04  Mike Stump  <mikestump@comcast.net>
13073
13074         * Makefile.in (TAGS): Remove *.y.
13075
13076 2010-03-04  Richard Guenther  <rguenther@suse.de>
13077
13078         PR tree-optimization/40761
13079         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
13080         in reverse order.
13081         (my_rev_post_order_compute): New function.
13082         (init_pre): Call it.
13083
13084 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
13085
13086         PR middle-end/43209
13087         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
13088         decrease the cost of an IV candidate when the cost is infinite.
13089
13090 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13091
13092         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
13093         Use '3DNow!' for the extension of that name, ensure normal space
13094         after the string.
13095         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
13096
13097 2010-03-03  Jeff Law  <law@redhat.com>
13098
13099         * PR middle-end/32693
13100         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
13101         than gen_rtx_SUBREG.
13102         (extract_bit_field_1): Likewise.
13103
13104 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
13105
13106         * doc/sourcebuild.texi (Test directives): Document that arguments
13107         include-opts and exclude-opts are now optional for dg-skip-if,
13108         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
13109
13110 2010-03-03  Jason Merrill  <jason@redhat.com>
13111
13112         PR c++/12909
13113         * cgraph.h (varpool_node): Add extra_name field.
13114         * varpool.c (varpool_extra_name_alias): New.
13115         (varpool_assemble_decl): Emit extra name aliases.
13116         (varpool_mark_needed_node): Look past an extra name alias.
13117         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
13118         * lto-streamer-in.c (lto_input_tree): Read it.
13119         * lto-streamer-out.c (output_unreferenced_globals): Write it.
13120
13121 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
13122
13123         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
13124         (sparc*-*-solaris2*): ...this.
13125
13126 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
13127
13128         PR debug/43229
13129         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
13130         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
13131         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
13132         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
13133
13134         PR debug/43237
13135         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
13136         fallthrough to default handling, just with want_address 0 instead of 2.
13137         For single element lists, add_AT_loc directly, otherwise create an
13138         artificial variable DIE and stick location list to it.
13139
13140         PR debug/43177
13141         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
13142         (VAL_EXPR_HAS_REVERSE): Define.
13143         (reverse_op): New function.
13144         (add_stores): For reversible operations add an extra MO_VAL_USE.
13145
13146 2010-03-02  Jason Merrill  <jason@redhat.com>
13147
13148         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
13149
13150 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13151
13152         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
13153         (sparc64-*-linux*): Likewise.
13154         (sparc64-*-solaris2*): Include assembler files before linker ones.
13155         (sparc-*-solaris2*): Simplify and reorder to match previous case.
13156         * config/sparc/gas.h: Delete.
13157         * config/sparc/sol2-64.h: Add copyright notice.
13158         * config/sparc/sol2-gas-bi.h: Likewise.
13159         * config/sparc/sol2-gld.h: Likewise.
13160         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
13161         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
13162         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
13163         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
13164         (sparc_elf_asm_named_section): Rename into...
13165         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
13166
13167 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
13168
13169         * config/alpha/alpha.c (override_options): Fix -mtune error message.
13170
13171 2010-03-02  Jeff Law  <law@redhat.com>
13172
13173         PR middle-end/42431
13174         * reload1.c (rtx_p, substitute_stack): Declare.
13175         (substitute): Record addresses of changed rtxs.
13176         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
13177         Restore the original rtx when complete.
13178         (reload): Free subsitute_stack when complete.
13179
13180 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
13181
13182         * doc/gccint.texi (menu): Add Testsuites as a chapter.
13183         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
13184         new chapter.
13185         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
13186         LTO Testing, gcov Testing, profopt Testing, compat Testing,
13187         Torture Tests): Change from subsection to section.
13188
13189 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
13190             Steven Bosscher  <steven@gcc.gnu.org>
13191
13192         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
13193         instead of bb.
13194
13195 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
13196
13197         PR middle-end/42640
13198         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
13199         the assignment from the new induction variable to the assignment
13200         of the value from the original loop PHI function.
13201
13202 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
13203             Daniel Jacobowitz  <dan@codesourcery.com>
13204
13205         * doc/sourcebuild.texi (Test directives): Clarify options to
13206         dg-skip-if.
13207
13208 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13209
13210         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
13211         Disable cfi directives unless GCC and gas agree on using read-only
13212         .eh_frame sections for 64-bit.
13213         * configure: Regenerate.
13214
13215 2010-03-01  Richard Guenther  <rguenther@suse.de>
13216
13217         PR tree-optimization/43220
13218         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
13219         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
13220
13221 2010-03-01  Richard Guenther  <rguenther@suse.de>
13222             Martin Jambor  <mjambor@suse.cz>
13223
13224         PR middle-end/41250
13225         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
13226         gimplified parameters.
13227
13228 2010-03-01  Christian Bruel  <christian.bruel@st.com>
13229
13230         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
13231
13232 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
13233
13234         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
13235
13236 2010-03-01  Richard Guenther  <rguenther@suse.de>
13237
13238         PR middle-end/43213
13239         * expr.c (expand_assignment): Use the alias-oracle to tell
13240         if the rhs aliases the result decl.
13241
13242 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13243
13244         PR pch/14940
13245         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
13246         to sol_gt_pch_get_address.
13247         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
13248         64-bit, SPARC and x86.
13249         (sol_gt_pch_get_address): New function.
13250
13251 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
13252
13253         * toplev.h (inform_n, error_n): Declare.
13254         * diagnostic.c (inform_n, error_n): New function.
13255
13256 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
13257
13258         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
13259         has no rtl yet when processing local_decls, queue it and recheck
13260         if deferred stack allocation hasn't assigned it rtl.
13261
13262 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
13263
13264         * config/sh/sh.c (unspec_bbr_uid): New.
13265         (gen_block_redirect): Use it instead of INSN_UID.
13266         (gen_far_branch): Likewise.
13267
13268 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13269
13270         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
13271         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
13272
13273 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13274
13275         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
13276         (Warning Options): -Wno-conversion-null is valid for
13277         Objective-C++ as well.
13278         * doc/tm.texi (Named Address Spaces): Likewise.
13279         * doc/plugins.texi (Plugins): Replace TABs with spaces.
13280         * doc/tree-ssa.texi (Tree SSA): Likewise.
13281
13282 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13283
13284         PR bootstrap/43202
13285         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
13286         by default.  Don't set the default arch for
13287         i[34567]86-*-darwin*|x86_64-*-darwin*.
13288
13289 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13290
13291         PR bootstrap/43202
13292         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
13293         default.  Set the default 32bit/64bit archs with $with_arch
13294         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
13295
13296 2010-02-27  Richard Guenther  <rguenther@suse.de>
13297
13298         PR tree-optimization/43186
13299         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
13300         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
13301         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
13302         unroller iterations.
13303
13304 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13305
13306         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
13307         required and i[34567]86-*-* targets don't support 64bit ISA.
13308
13309 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
13310
13311         PR ada/43096
13312         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
13313         the same alias set.
13314
13315 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13316
13317         * config.gcc: Set the default arch at least to Prescott for
13318         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
13319         if SSE math is enabled.
13320
13321 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13322
13323         * diagnostic.c (diagnostic_initialize): Update.
13324         (diagnostic_report_diagnostic): Test inhibit_notes_p for
13325         informative notes.
13326         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
13327         (diagnostic_inhibit_notes): New.
13328         * toplev.c (process_options): inhibit notes with -fcompare-debug.
13329
13330 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13331
13332         PR c/20631
13333         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
13334         * doc/standards.texi: Likewise.
13335         * doc/extend.texi: Likewise.
13336         * doc/trouble.texi: Likewise.
13337         * doc/cppopts.texi: Likewise.
13338         * doc/install.texi: Likewise.
13339         * c.opt (std=c90,std=gnu90): New options.
13340         * c-opts.c (c_common_handle_option): Handle them.
13341
13342 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13343
13344         PR c/24577
13345         * c-decl.c (undeclared_variable): Use an informative note.
13346
13347 2010-02-26  Richard Guenther  <rguenther@suse.de>
13348
13349         PR tree-optimization/43186
13350         * gimple.h (gimple_fold): Remove.
13351         * gimple.c (gimple_fold): Remove.  Inline into single user ...
13352         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
13353         Try harder for conditions.
13354
13355 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13356
13357         PR debug/43190
13358         * function.c (used_types_insert): Don't skip through named pointer
13359         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
13360         and it is different from the main variant's type.
13361
13362 2010-02-26  Nick Clifton  <nickc@redhat.com>
13363
13364         * config/rx/rx.md (sminsi3): Remove bogus alternative.
13365
13366 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
13367
13368         * config.gcc: Support --with-fpmath=sse for x86.
13369
13370         * config/i386/ssemath.h: New.
13371
13372         * doc/install.texi (--with-fpmath=sse): Documented.
13373
13374 2010-02-26  Richard Guenther  <rguenther@suse.de>
13375
13376         PR tree-optimization/43188
13377         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
13378         vector types of over-aligned element type.
13379
13380 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
13381
13382         PR target/43175
13383         * config/i386/i386.c (expand_vec_perm_blend): Use correct
13384         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
13385
13386 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
13387
13388         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
13389
13390 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
13391
13392         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
13393         * var-tracking.c: Include diagnostic.h.
13394         (debug_dv): New function.
13395         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
13396
13397         PR debug/43160
13398         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
13399         (add_value_chain, add_value_chains, remove_value_chain,
13400         remove_value_chains): Handle DEBUG_EXPRs.
13401         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
13402
13403         PR debug/43161
13404         * regcprop.c (struct queued_debug_insn_change): New type.
13405         (struct value_data_entry): Add debug_insn_changes field.
13406         (struct value_data): Add n_debug_insn_changes field.
13407         (debug_insn_changes_pool): New variable.
13408         (free_debug_insn_changes, apply_debug_insn_changes,
13409         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
13410         (kill_value_one_regno): Call free_debug_insn_changes if needed.
13411         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
13412         fields.
13413         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
13414         changes for them.
13415         (copyprop_hardreg_forward_1): Don't call apply_change_group for
13416         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
13417         changes, call cprop_find_used_regs via note_stores.
13418         (copyprop_hardreg_forward): When copying vd from predecessor
13419         which has any queued DEBUG_INSN changes, make sure the pointers are
13420         cleared.  At the end call df_analyze and then if there are any
13421         DEBUG_INSN changes queued at the end of some basic block for still
13422         live registers, apply them.
13423         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
13424
13425 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
13426
13427         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
13428         (arm*-*-*): Ditto.
13429
13430 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13431
13432         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
13433         targets.  Set the default with_cpu/with_arch from arch/cpu.
13434         Allow x86-64 and native for with_cpu/with_arch.
13435
13436 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
13437
13438         * ebitmap.c: Change calls to verify_popcount with calls to
13439         sbitmap_verify_popcount.
13440         (ebitmap_clear_bit): Fixed map->cacheindex test and
13441         map>cache update when bit clearing results in an empty
13442         element.
13443
13444 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
13445
13446         PR target/43154
13447         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
13448         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
13449         and support both V2DF and V2DI modes.
13450         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
13451         support both V2DF and V2DI modes.
13452         (general): Delete trailing whitespace from a few patterns.
13453
13454         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13455         V2DF/V2DI interleave high/low builtins.
13456
13457         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
13458         new VSX builtins.
13459
13460         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
13461         interleave high/low functions.
13462
13463 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
13464
13465         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
13466         #pragma extern_prefix.
13467
13468 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
13469
13470         PR debug/43166
13471         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
13472         BLKmode, assert op0 is a MEM and just adjust its mode.
13473
13474         PR debug/43165
13475         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
13476         if bitpos isn't multiple of mode's bitsize.
13477
13478 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13479
13480         * c.opt (-ftemplate-depth=): New.
13481         (-ftemplate-depth-): Deprecate.
13482         * optc-gen.awk: Handle -ftemplate-depth=.
13483         * opth-gen.awk: Likewise.
13484         * c-opts.c (c_common_handle_option): Likewise.
13485         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
13486
13487 2010-02-24  Jason Merrill  <jason@redhat.com>
13488
13489         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
13490
13491 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13492
13493         * cfg.c (alloc_aux_for_block): Remove inline.
13494         (alloc_aux_for_edge): Likewise.
13495
13496 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13497
13498         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
13499
13500 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13501
13502         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
13503         * config/i386/sol2-gas.h: New file.
13504         * config.gcc (i[34567]86-*-solaris2*): Use it.
13505
13506 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13507
13508         PR c/43128
13509         * c-typeck.c (ep_convert_and_check): New.
13510         (build_conditional_expr): Use it.
13511         (build_binary_op): Likewise.
13512
13513 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
13514
13515         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
13516
13517         PR debug/43150
13518         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
13519         bounds even for -O+.
13520         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
13521         expr needs to have DECL_NAME set.
13522
13523 2010-02-24  Nick Clifton  <nickc@redhat.com>
13524
13525         * config/mep/mep.c: Include gimple.h.
13526         (mep_function_uses_sp): Delete unused function.
13527         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
13528         parameters.  Use unsigned integers to count args.  Return a
13529         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
13530
13531 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
13532
13533         PR target/43107
13534         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
13535         greater or equal to nelt instead of 2 * nelt.
13536         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
13537         with nelt - 1.
13538
13539 2010-02-23  Jason Merrill  <jason@redhat.com>
13540
13541         PR debug/42800
13542         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
13543         in cfun->local_decls even if they have register types.
13544
13545         PR c++/42837
13546         * stor-layout.c (place_field): Don't warn about unnecessary
13547         DECL_PACKED if the type is packed.
13548
13549 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
13550
13551         PR target/43139
13552         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
13553         GOTOFF relocs, even when the base reg isn't pic pointer.
13554
13555 2010-02-23  Michael Matz  <matz@suse.de>
13556
13557         PR debug/43077
13558         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
13559         (expand_gimple_basic_block): Generate and use debug temps if there
13560         are debug uses left after the last real use of TERed ssa names.
13561         Unlink debug immediate uses when they are expanded.
13562
13563 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13564
13565         PR 43123
13566         * config/i386/i386.c (override_options): Reorganise to provide
13567         better error messages.
13568
13569 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13570
13571         PR middle-end/43083
13572         * graphite-scop-detection.c (create_single_exit_edge): Move
13573         the call to find_single_exit_edge to....
13574         (create_sese_edges): ...here.  Don't handle multiple edges
13575         exiting the function.
13576         (build_graphite_scops): Don't handle multiple edges
13577         exiting the function.
13578
13579 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13580
13581         PR middle-end/43097
13582         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
13583         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
13584
13585 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
13586
13587         PR middle-end/43026
13588         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
13589
13590 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13591
13592         PR c++/43126
13593         * c-typeck.c (convert_arguments): Print declaration location.
13594         * c-common.c (validate_nargs): Rename as
13595         builtin_function_validate_nargs.
13596         (check_builtin_function_arguments): Update.
13597
13598 2010-02-22  Richard Guenther  <rguenther@suse.de>
13599
13600         PR lto/43045
13601         * tree-inline.c (declare_return_variable): Use the type of
13602         the call stmt lhs if available.
13603
13604 2010-02-22  Duncan Sands  <baldrick@free.fr>
13605
13606         * passes.c (register_pass): Always consider all pass lists when
13607         ref_pass_instance_number is zero.
13608
13609 2010-02-22  Richard Guenther  <rguenther@suse.de>
13610
13611         PR tree-optimization/42749
13612         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
13613         parameter.  Do arithmetic in the original type.
13614         (update_accumulator_with_ops): Likewise.
13615         (adjust_accumulator_values): Adjust.
13616
13617 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13618
13619         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
13620         (QI to BLKmode splitter): New splitter.
13621
13622 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
13623
13624         * config/i386/i386.c (initial_ix86_tune_features): Turn on
13625         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
13626
13627 2010-02-22  Richard Guenther  <rguenther@suse.de>
13628
13629         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
13630
13631 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
13632
13633         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
13634         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
13635         ($(T)crti.o, $(T)crtn.o): Remove rules.
13636
13637 2010-02-21  Tobias Burnus  <burnus@net-b.de>
13638
13639         PR fortran/35259
13640         * doc/invoke.texi (-fassociative-math): Document that this
13641         option is automatically enabled for Fortran.
13642
13643 2010-02-20  David S. Miller  <davem@davemloft.net>
13644
13645         * configure.ac: Test if linker and assembler properly support
13646         GOTDATA_OP relocations.
13647         * configure: Rebuild.
13648         * config.in: Likewise.
13649         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
13650         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
13651         (movsi_high_pic): Likewise.
13652         (movdi_lo_sum_pic): Likewise.
13653         (movdi_high_pic): Likewise.
13654         (movsi_pic_gotdata_op): New pattern.
13655         (movdi_pic_gotdata_op): Likewise.
13656         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
13657         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
13658
13659 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
13660
13661         PR target/43067
13662         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
13663         attribute to ssemul.
13664         (xop_mulv2div2di3_high): Ditto.
13665
13666 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13667
13668         PR c++/35669
13669         * c.opt (Wconversion-null): New option.
13670         * doc/invoke.texi (Wconversion-null): Document.
13671
13672 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13673
13674         * common.opt (Wlarger-than-): Add Undocumented.
13675
13676 2010-02-19  Mike Stump  <mikestump@comcast.net>
13677
13678         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
13679
13680 2010-02-19  Jason Merrill  <jason@redhat.com>
13681
13682         PR target/40332
13683         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
13684         * configure: Likewise.
13685
13686 2010-02-20  Alan Modra  <amodra@gmail.com>
13687
13688         PR middle-end/42344
13689         * cgraph.h (cgraph_make_decl_local): Declare.
13690         * cgraph.c (cgraph_make_decl_local): New function.
13691         (cgraph_make_node_local): Use it.
13692         * cgraphunit.c (cgraph_function_versioning): Likewise.
13693         * ipa.c (function_and_variable_visibility): Likewise.
13694
13695 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13696
13697         PR bootstrap/43121
13698         * except.c (sjlj_emit_function_enter): Don't call
13699         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
13700         directly.
13701         * rtl.h (add_reg_br_prob_note): Remove prototype.
13702
13703 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13704
13705         PR 41779
13706         * c-common.c (conversion_warning): Remove widening conversions
13707         before checking the conversion of integers to reals.
13708
13709 2010-02-19  Mike Stump  <mikestump@comcast.net>
13710
13711         PR middle-end/43125
13712         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
13713
13714         PR objc/43061
13715         * cgraphunit.c (process_function_and_variable_attributes): Check
13716         DECL_PRESERVE_P instead of looking up attribute "used".
13717         * ipa-pure-const.c (check_decl): Likewise.
13718         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
13719         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
13720         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
13721         instead of attribute "used".
13722         * config/sol2-c.c (solaris_pragma_init): Likewise.
13723         (solaris_pragma_fini): Likewise.
13724
13725 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13726
13727         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
13728         Use XCNEW instead of xcalloc.
13729         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
13730         XNEW instead of xmalloc.
13731         (get_fields): Use XNEWVEC instead of xmalloc.
13732
13733         PR debug/43084
13734         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
13735         populate vars array.
13736         (create_new_general_access): For debug stmts just reset value.
13737         (get_stmt_accesses): For accesses within debug stmts just record them
13738         using add_access_to_acc_sites instead of preventing the peeling or
13739         counting them as accesses.
13740
13741         PR middle-end/42233
13742         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
13743
13744 2010-02-19  Richard Guenther  <rguenther@suse.de>
13745
13746         PR tree-optimization/42916
13747         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
13748         instructions.
13749
13750 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
13751
13752         * configure.ac: Replace all uses of changequote in macro arguments
13753         with proper quoting.
13754
13755 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13756
13757         PR middle-end/42233
13758         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
13759
13760 2010-02-19  Richard Guenther  <rguenther@suse.de>
13761
13762         PR tree-optimization/42944
13763         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
13764         test for aliasing with errno.
13765
13766 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
13767
13768         PR middle-end/42233
13769         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
13770         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
13771         * dojump.c: Include output.h.
13772         (inv): New inline function.
13773         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
13774         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
13775         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
13776         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
13777         argument, pass it down to other calls.
13778         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
13779         add REG_BR_PROB note to the conditional jump.
13780         * cfgexpand.c (add_reg_br_prob_note): Removed.
13781         (expand_gimple_cond): Don't call it, add the probability
13782         as last argument to jumpif_1/jumpifnot_1.
13783         * Makefile.in (dojump.o): Depend on output.h.
13784         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
13785         callers.
13786         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
13787         * stmt.c (do_jump_if_equal): Likewise.
13788         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
13789         * loop-unswitch.c (compare_and_jump_seq): Likewise.
13790         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
13791         Likewise.
13792         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
13793         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
13794         jumpifnot_1 callers.
13795         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
13796         callers.
13797         (store_expr): Adjust jumpifnot caller.
13798         (store_constructor): Adjust jumpif caller.
13799
13800         PR middle-end/42233
13801         * gimplify.c (gimple_boolify): For __builtin_expect call
13802         gimple_boolify also on its first argument.
13803
13804 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
13805
13806         * configure.ac (gnu-unique-object): Wrap regexps using [] in
13807         changequote block.
13808         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
13809         * configure: Regenerated.
13810
13811 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13812
13813         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
13814         lang_hooks.types_compatible_p instead of comptypes.
13815
13816 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
13817
13818         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
13819         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
13820         if __prefer_thumb__ is defined.
13821
13822 2010-02-18  Martin Jambor  <mjambor@suse.cz>
13823
13824         PR tree-optimization/43066
13825         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
13826         array with zero-sized element type.
13827
13828 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
13829
13830         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
13831         rtx, allocate struct var_loc_node here and return it to the
13832         caller, and only if it is actually needed.
13833         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
13834         move it earlier and return immediately if it returns NULL.
13835
13836 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
13837
13838         * config/sparc/gas.h: New file.  Restore
13839         TARGET_ASM_NAMED_SECTION to its ELF default.
13840         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
13841         check !HAVE_GNU_AS.
13842         * config/sparc/sparc.c (sparc_elf_asm_named_section):
13843         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
13844         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
13845         after sparc/sysv4.h.
13846
13847 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
13848
13849         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
13850
13851 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
13852
13853         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
13854         patterns from predicated pattern.
13855
13856 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
13857
13858         PR target/43103
13859         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
13860         for insn mnemonic suffix.
13861
13862 2010-02-17  Richard Guenther  <rguenther@suse.de>
13863
13864         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
13865         to loop PHI nodes.
13866
13867 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
13868
13869         PR debug/42918
13870         * caller-save.c (save_call_clobbered_regs): If BB ends with
13871         a DEBUG_INSN, move any notes in between last real insn and the last
13872         DEBUG_INSN after the last DEBUG_INSN.
13873
13874 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
13875
13876         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
13877         Fix return type.  Fix argument type.  Explain meaning of return value.
13878
13879 2010-02-16  Richard Guenther  <rguenther@suse.de>
13880
13881         PR tree-optimization/41043
13882         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
13883         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
13884         statements ...
13885         (vrp_visit_phi_node): ... but only for loop PHI nodes.
13886
13887 2010-02-16  Ira Rosen  <irar@il.ibm.com>
13888
13889         PR tree-optimization/43074
13890         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
13891         * tree-vect-loop.c (vect_analyze_loop_operations): Add
13892         vectorizable cycles in hybrid SLP check.
13893         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
13894
13895 2010-02-16  Richard Guenther  <rguenther@suse.de>
13896
13897         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
13898         (true_dependence): If memrefs_conflict_p computes must-alias
13899         trust it.  Move TBAA check after offset-based disambiguation.
13900         (canon_true_dependence): Likewise.
13901
13902 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
13903
13904         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
13905         * doc/invoke.texi: Document it.
13906         * var-tracking.c: Include toplev.h and params.h.
13907         (vt_find_locations): Return bool indicating success.  Compute
13908         hash sizes unconditionally.  Check new parameter, report.
13909         (variable_tracking_main_1): Check vt_find_locations results and
13910         retry.  Renamed from...
13911         (variable_tracking_main): ... this.  New wrapper to preserve
13912         flag_var_tracking_assignments.
13913         * Makefile.in (var-tracking.o): Adjust dependencies.
13914
13915 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
13916             Jakub Jelinek <jakub@redhat.com>
13917
13918         PR target/42854
13919         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
13920         if weak_import attribute is present.
13921         * config/darwin.c (machopic_select_section): Likewise.
13922
13923 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
13924
13925         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
13926         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
13927         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
13928         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
13929
13930         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
13931         types.
13932
13933         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
13934         Fix argument types.
13935
13936         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
13937         Rewrite text to refer to the names.
13938
13939 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
13940
13941         * config/i386/i386-builtin-types.def
13942         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
13943         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
13944         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
13945         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
13946         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
13947         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
13948         IX86_BUILTIN_VPERMIL2PS256.
13949         (MULTI_ARG_4_DF2_DI_I): Defined.
13950         (MULTI_ARG_4_DF2_DI_I1): Defined.
13951         (MULTI_ARG_4_SF2_SI_I): Defined.
13952         (MULTI_ARG_4_SF2_SI_I1): Defined.
13953         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
13954         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
13955         __builtin_ia32_vpermil2ps256.
13956         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
13957         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
13958         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
13959         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
13960         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
13961         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
13962         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
13963         CODE_FOR_xop_vpermil2v8sf3.
13964         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
13965         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
13966         * config/i386/xopintrin.h (_mm_permute2_pd): New.
13967         (_mm256_permute2_pd): New.
13968         (_mm_permute2_ps): New.
13969         (_mm256_permute2_ps): New.
13970
13971 2010-02-15  Nick Clifton  <nickc@redhat.com>
13972
13973         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
13974         boolean parameters.  Use emit_jump_insn when emitting a pop
13975         instruction containing a return insn.
13976         (push): Use 'true' rather than '1' as second parameter to F.
13977         (h8300_expand_prologue): Likewise.
13978         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
13979         (h8300_expand_epilogue): Likewise.
13980
13981 2010-02-15  Richard Guenther  <rguenther@suse.de>
13982
13983         PR middle-end/43068
13984         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
13985         if that is zero.
13986
13987 2010-02-15  Nick Clifton  <nickc@redhat.com>
13988
13989         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
13990         delta.
13991
13992 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
13993
13994         * intl.c (fake_ngettext): New function.
13995         * intl.h (fake_ngettext): Declare.
13996         (ngettext): Define macro.
13997         * collect2.c (notice_translated): New function.
13998         (main): Use notice_translated and ngettext.
13999         * collect2.h (notice_translated): Declare.
14000
14001 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
14002
14003         * reorg.c (delete_computation): Comment fixes.
14004         * caller-save.c (setup_save_areas): Idem.
14005         * sel-sched-dump.c (dump_lv_set): Idem.
14006         * rtl.def: Idem.
14007
14008 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14009
14010         * config/s390/s390.c (s390_sched_init): New function.
14011         (TARGET_SCHED_INIT): Target hook defined.
14012
14013 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
14014             Jack Howarth  <howarth@bromo.med.uc.edu>
14015             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
14016
14017         PR target/42982
14018         Partial revert of unintended change in fix for PR41605.
14019         * config/darwin.h: Fix typo.
14020         * config/darwin9.h: Same.
14021
14022 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14023
14024         * c-pch.c (pch_init): Clear v.
14025
14026 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14027
14028         PR middle-end/42930
14029         * graphite-scop-detection.c (graphite_can_represent_scev): Call
14030         graphite_can_represent_init for MULT_EXPR.
14031
14032 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14033
14034         PR middle-end/42914
14035         PR middle-end/42530
14036         * graphite-sese-to-poly.c (remove_phi): New.
14037         (translate_scalar_reduction_to_array): Call remove_phi.
14038
14039 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14040
14041         PR middle-end/42771
14042         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
14043         * graphite-clast-to-gimple.h (gloog): Update declaration.
14044         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
14045         * graphite-poly.h (struct poly_bb): Add missing comments.
14046         (struct scop): Add poly_scop_p field.
14047         (POLY_SCOP_P): New.
14048         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
14049         * graphite.c (graphite_transform_loops): Build the polyhedral
14050         representation for each scop before code generation.
14051         * sese.c (rename_variables_in_operand): Removed.
14052         (rename_variables_in_expr): Return the renamed expression.
14053         (rename_sese_parameters): New.
14054         * sese.h (rename_sese_parameters): Declared.
14055
14056 2010-02-11  Richard Guenther  <rguenther@suse.de>
14057
14058         PR tree-optimization/42998
14059         * tree-ssa-pre.c (create_expression_by_pieces): Treat
14060         POINTER_PLUS_EXPR properly.
14061
14062 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
14063             Changpeng Fang  <changpeng.fang@amd.com>
14064
14065         PR middle-end/40886
14066         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
14067         the cost of an IV candidate when the IV is used in a test against zero.
14068
14069         * gcc.dg/tree-ssa/ivopts-3.c: New.
14070
14071 2010-02-11  Richard Guenther  <rguenther@suse.de>
14072
14073         PR lto/41664
14074         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
14075         pointer-vs-decl case by swapping refs.  Handle some cases
14076         of pointer-vs-decl disambiguations more conservatively.
14077         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
14078         to false after expanding.
14079
14080 2010-02-11  Richard Guenther  <rguenther@suse.de>
14081
14082         PR driver/43021
14083         * gcc.c (process_command): Handle LTO file@offset case more
14084         appropriately.
14085
14086 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
14087
14088         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
14089         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
14090         of DEBUG_INSNs.
14091         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
14092
14093         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
14094         if MEM's mode size isn't DWARF2_ADDR_SIZE.
14095         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
14096         Optimize eq/ne comparisons when both arguments are known to be
14097         zero-extended.
14098         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
14099         Don't mask operands unnecessarily if they are known to be already
14100         zero-extended.
14101
14102 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
14103
14104         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
14105         instead of loop.
14106
14107 2010-02-10  Richard Guenther  <rguenther@suse.de>
14108
14109         PR tree-optimization/43017
14110         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
14111         for wrapping signed arithmetic.
14112
14113 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14114
14115         PR debug/43010
14116         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
14117         if no debug info should be emitted for it.
14118
14119 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14120
14121         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
14122         note when flag_exceptions is set.
14123
14124 2010-02-10  Duncan Sands  <baldrick@free.fr>
14125
14126         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
14127
14128 2010-02-10  Richard Guenther  <rguenther@suse.de>
14129
14130         PR c/43007
14131         * tree.c (get_unwidened): Handle constants.
14132         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
14133
14134 2010-02-10  Martin Jambor  <mjambor@suse.cz>
14135
14136         PR lto/42985
14137         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
14138         check for variable argument counts independently.
14139
14140 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14141
14142         PR target/42841
14143         * config/sh/sh.c (find_barrier): Increase length for non delayed
14144         conditional branches.
14145
14146 2010-02-10  Christian Bruel  <christian.bruel@st.com>
14147
14148         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
14149
14150 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
14151
14152         * builtins.c (set_builtin_user_assembler_name): Also handle
14153         ffs if int is smaller than word.
14154
14155 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
14156
14157         PR middle-end/42973
14158         * ira-conflicts.c (get_dup): Remove.
14159         (process_reg_shuffles): Add new parameter.  Use it as an
14160         additional guard for copy generation.
14161         (add_insn_allocno_copies): Rewrite.
14162
14163 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
14164
14165         * common.opt (fsched2-use-traces): Preserved for backward
14166         compatibility.
14167         * doc/invoke.texi: Remove the documentation about option
14168         -fsched2-use-traces.
14169         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
14170         flag_sched2_use_traces.
14171         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
14172         the backward compatibility flag section.
14173
14174 2010-02-09  Richard Guenther  <rguenther@suse.de>
14175
14176         PR tree-optimization/43008
14177         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
14178         make HEAP variables initialized from global memory if they
14179         are not known builtin functions.
14180         (find_func_aliases): Adjust.
14181
14182 2010-02-09  Richard Guenther  <rguenther@suse.de>
14183
14184         PR tree-optimization/43000
14185         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
14186         arithmetic manually.
14187
14188 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
14189
14190         PR tree-optimization/42931
14191         * tree-loop-linear.c (try_interchange_loops): Don't call
14192         double_int_mul if estimated_loop_iterations failed.
14193
14194 2010-02-08  Martin Jambor  <mjambor@suse.cz>
14195
14196         PR middle-end/42898
14197         * tree-sra.c (build_accesses_from_assign): Do not mark in
14198         should_scalarize_away_bitmap if stmt has volatile ops.
14199         (sra_modify_assign): Do not process assigns piecemeal if if stmt
14200         has volatile ops.
14201
14202 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
14203
14204         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
14205
14206 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
14207
14208         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
14209         before the pattern.
14210
14211 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
14212
14213         PR middle-end/42946
14214         * df-core.c (df_finish_pass): Change type of saved_flags to int.
14215
14216 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14217
14218         PR middle-end/42988
14219         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
14220         to unknown_dependence.
14221         (graphite_legal_transform_dr): Handle the unknown_dependence.
14222         (graphite_carried_dependence_level_k): Same.
14223
14224 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
14225
14226         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
14227
14228 2010-02-07  Richard Guenther  <rguenther@suse.de>
14229
14230         PR middle-end/42991
14231         * expr.c (get_inner_reference): Always initialize *pbitsize.
14232
14233 2010-02-07  Richard Guenther  <rguenther@suse.de>
14234
14235         PR middle-end/42956
14236         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
14237         new ARRAY_REFs on variable size element or minimal index arrays.
14238         Complete.
14239         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
14240         gimple_fold_indirect_ref.
14241
14242 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
14243
14244         PR target/42957
14245         * arm.c (arm_override_options): Just return if the user has specified
14246         an invalid fpu name.
14247
14248 2010-02-03  Jason Merrill  <jason@redhat.com>
14249
14250         PR c++/42870
14251         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
14252         i386_pe_maybe_record_exported_symbol.
14253
14254 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
14255
14256         PR target/42924
14257         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
14258         (pa_delegitimize_address): New function.
14259
14260 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
14261
14262         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
14263         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
14264
14265 2010-02-05  Richard Guenther  <rguenther@suse.de>
14266
14267         PR lto/42762
14268         * lto-streamer-in.c (get_resolution): Deal with references
14269         to undefined functions.
14270
14271 2010-02-05  Richard Guenther  <rguenther@suse.de>
14272
14273         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
14274         (fold_const_aggregate_ref): Likewise.
14275         (ccp_fold_stmt): Substitute loads.
14276         (maybe_fold_reference): Verify types before substituting.
14277         Unshare properly.
14278         (fold_gimple_assign): Unshare properly.
14279         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
14280
14281 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
14282
14283         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
14284         for rs6000_gen_cell_microcode.
14285
14286 2010-02-04  Richard Guenther  <rguenther@suse.de>
14287
14288         PR rtl-optimization/42952
14289         * dse.c (const_or_frame_p): Remove MEM handling.
14290
14291 2010-02-04  Nick Clifton  <nickc@redhat.com>
14292
14293         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14294         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14295         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
14296         (mn10300_asm_output_mi_thunk): New function.
14297         (mn10300_can_output_mu_thunk): New function.
14298         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
14299         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
14300         (FUNCTION_ARG): Delete incorrect comment.
14301
14302 2010-02-03  Jason Merrill  <jason@redhat.com>
14303
14304         PR c++/40138
14305         * fold-const.c (operand_equal_p): Handle erroneous types.
14306
14307 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
14308
14309         * config/h8300/h8300.md (can_delay): Fix attibute condition.
14310
14311 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
14312
14313         PR rtl-optimization/42941
14314         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
14315         of xmalloc.
14316
14317 2010-02-03  Jason Merrill  <jason@redhat.com>
14318
14319         PR c++/35652
14320         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
14321
14322 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
14323
14324         PR debug/42896
14325         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
14326         (cselib_reset_table): Renamed from...
14327         (cselib_reset_table_with_next_value): ... this.
14328         (cselib_get_next_uid): Renamed from...
14329         (cselib_get_next_unknown_value): ... this.
14330         * cselib.c (next_uid): Renamed from...
14331         (next_unknown_value): ... this.
14332         (cselib_clear_table): Adjust.
14333         (cselib_reset_table): Adjust.  Renamed from...
14334         (cselib_reset_table_with_next_value): ... this.
14335         (cselib_get_next_uid): Adjust.  Renamed from...
14336         (cselib_get_next_unknown_value): ... this.
14337         (get_value_hash): Use hash.
14338         (cselib_hash_rtx): Likewise.
14339         (new_cselib_val): Adjust.  Set and dump uid.
14340         (cselib_lookup_mem): Pass next_uid as hash.
14341         (cselib_subst_to_values): Likewise.
14342         (cselib_log_lookup): Dump uid.
14343         (cselib_lookup): Pass next_uid as hash.  Adjust.
14344         (cselib_process_insn): Adjust.
14345         (cselib_init): Initialize next_uid.
14346         (cselib_finish): Adjust.
14347         (dump_cselib_table): Likewise.
14348         * dse.c (canon_address): Dump value uid.
14349         * print-rtl.c (print_rtx): Print value uid.
14350         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
14351         (dvuid): New type.
14352         (dv_uid): New function, sort of renamed from...
14353         (dv_htab_hash): ... this, reimplemented in terms of it and...
14354         (dv_uid2hash): ... this.  New.
14355         (variable_htab_eq): Drop excess assertions.
14356         (tie_break_pointers): Removed.
14357         (canon_value_cmp): Compare uids.
14358         (variable_post_merge_New_vals): Print uids.
14359         (vt_add_function_parameters): Adjust.
14360         (vt_initialize): Reset table.  Adjust.
14361
14362 2010-02-03  Richard Guenther  <rguenther@suse.de>
14363
14364         PR tree-optimization/42944
14365         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
14366         (call_may_clobber_ref_p_1): Likewise.  Properly handle
14367         malloc and calloc clobbering errno.
14368
14369 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
14370
14371         * doc/invoke.texi: Fix name of sched1 dump.
14372
14373         * opts.c (decode_options): Set flag_tree_switch_conversion
14374         only conditionally on optimize >= 2.
14375
14376         * gcse.c: Assorted comment fixes in pass description.
14377
14378 2010-02-03  Anthony Green  <green@moxielogic.com>
14379
14380         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
14381         nop padding in order to maintain alignment of storage location of
14382         target function address.
14383         (moxie_trampoline_init): Store target function address at newly
14384         aligned location.
14385         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
14386         to 32.
14387         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
14388
14389 2010-02-03  Richard Guenther  <rguenther@suse.de>
14390
14391         PR middle-end/42927
14392         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
14393
14394 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14395
14396         * config.gcc: Reenable check for obsolete targets.
14397         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
14398         mips-sgi-irix6.[0-4]*.
14399
14400 2010-02-02  Nick Clifton  <nickc@redhat.com>
14401
14402         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
14403         constant size of 4 as being the same as 0.
14404         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
14405         can take values in the range 0..4.
14406
14407 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
14408
14409         PR java/41991
14410         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
14411         as _darwin10_Unwind_FindEnclosingFunction().
14412         * libgcc-libsystem.ver: New.
14413
14414 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
14415
14416         PR target/41399
14417         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
14418         implicitly set registers.
14419
14420 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
14421
14422         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
14423         (arm_override_options): Allow automatic selection of the thread
14424         pointer register if thumb2.
14425         (legitimize_pic_address): Improve code sequences for Thumb2.
14426         (arm_call_tls_get_addr): Likewise.
14427         (legitimize_tls_address): Likewise.
14428         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
14429         (pic_load_addr_32bit): ... this.  New named pattern.
14430         * thumb2.md (pic_load_addr_thumb2): Delete.
14431         (pic_load_dot_plus_four): Delete.
14432         (tls_load_dot_plus_four): New named pattern.
14433
14434 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14435
14436         PR libgomp/29986
14437         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
14438         Document fix for TLS bug.
14439
14440 2010-01-31  Richard Guenther  <rguenther@suse.de>
14441
14442         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
14443         conservatively correct.
14444
14445 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14446
14447         PR target/42850
14448         Revert:
14449         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14450
14451         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14452
14453 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14454
14455         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
14456
14457 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
14458
14459         * config.gcc: Adjust order of makefile fragments for mingw targets.
14460
14461 2010-01-31  Richard Guenther  <rguenther@suse.de>
14462
14463         PR middle-end/42898
14464         * gimplify.c (gimplify_init_constructor): For volatile LHS
14465         initialize a temporary.
14466
14467 2010-01-31  Matthias Klose  <doko@ubuntu.com>
14468
14469         * configure.ac: Fix __stack_chk_fail check for cross builds configured
14470         --with-headers
14471         * configure: Regenerate.
14472
14473 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
14474
14475         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
14476         the same alias set and their sizes different constantness.
14477         (aliasing_component_refs_p): Revert 2009-10-24 change.
14478
14479 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14480
14481         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
14482         unused.
14483
14484 2010-01-29  Richard Guenther  <rguenther@suse.de>
14485
14486         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
14487         Assert we successfully updated the call.
14488
14489 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
14490
14491         PR rtl-optimization/42889
14492         * df.h (df_set_bb_dirty_nonlr): New prototype.
14493         * df-core.c (df_set_bb_dirty_nonlr): New function.
14494         * df-scan.c (df_insn_rescan): Call it instead of
14495         df_set_bb_dirty for DEBUG_INSNs.
14496
14497 2010-01-29  Richard Guenther  <rguenther@suse.de>
14498
14499         PR middle-end/37448
14500         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
14501         quadratic behavior in most cases.
14502
14503 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
14504
14505         PR target/42891
14506         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
14507         in the call to gen_x86_movsicc_0_m1.
14508
14509 2010-01-28  Richard Guenther  <rguenther@suse.de>
14510
14511         PR tree-optimization/42871
14512         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
14513
14514 2010-01-28  Richard Guenther  <rguenther@suse.de>
14515
14516         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
14517         into call arguments.
14518
14519 2010-01-28  Richard Guenther  <rguenther@suse.de>
14520
14521         PR middle-end/42883
14522         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
14523         the forwarder if the destination is an EH landing pad.
14524
14525 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
14526
14527         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
14528         block list passed to gimple_duplicate_sese_tail.
14529         (parallelize_loops): Avoid parallelization when the function
14530         has_nonlocal_label.
14531         Avoid parallelization when the preheader is IRREDUCIBLE.
14532         Try to optimize when estimated_loop_iterations_int is unresolved.
14533         Add the loop's location to the dump file.
14534         * tree-cfg.c (add_phi_args_after_redirect): Remove.
14535         (gimple_duplicate_sese_tail): Remove the check for the latch.
14536         Redirect nexits to the exit block.
14537         Remove handling of the incoming edges to the latch.
14538         Redirect the backedge from the copied latch to the exit bb.
14539
14540 2010-01-28  Michael Matz  <matz@suse.de>
14541
14542         PR target/42881
14543         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
14544         Wrap force_reg into a sequence, emit it before user.
14545
14546 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
14547
14548         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
14549         (arm_rev): New.
14550         (arm_legacy_rev): Likewise.
14551         (thumb_legacy_rev): Likewise.
14552
14553 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
14554
14555         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
14556         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
14557         on MEM's address failed, try avoid_constant_pool_reference and
14558         recurse if it returned something different.
14559         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
14560         address, try avoid_constant_pool_reference and recurse if it
14561         returned something different.
14562         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
14563         address and avoid_constant_pool_reference returned something
14564         different, don't set have_address.
14565
14566 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
14567
14568         PR debug/42861
14569         * var-tracking.c (val_store): Add modified argument, obey it.
14570         Adjust callers.
14571         (count_uses): Move down logging of main.
14572         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
14573         don't need resolution.
14574         (emit_notes_in_bb): Likewise.
14575
14576 2010-01-27  Richard Guenther  <rguenther@suse.de>
14577
14578         PR middle-end/42878
14579         * tree-inline.c (remap_decl): Delay remapping of SSA name
14580         default definitions until we need them.
14581
14582 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
14583
14584         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
14585         (rs6000_delegitimize_address): New function.
14586
14587         * config/s390/s390.c (s390_delegitimize_address): Call
14588         delegitimize_mem_from_attrs.
14589
14590         PR middle-end/42874
14591         * tree-inline.c (cannot_copy_type_1): Removed.
14592         (copy_forbidden): Don't forbid copying of functions containing
14593         records/unions with variable length fields.
14594
14595 2010-01-27  Christian Bruel  <christian.bruel@st.com>
14596
14597         Revert:
14598         PR target/42841
14599         * config/sh/sh.c (find_barrier): Increase length for non delayed
14600         conditional branches.
14601
14602 2010-01-27  Matthias Klose  <doko@ubuntu.com>
14603
14604         * configure.ac (gnu-unique-object): Fix ldd version check.
14605         * configure: Regenerate.
14606
14607 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14608
14609         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
14610         HAVE_GNU_AS value.
14611         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
14612         Test for HAVE_GNU_AS value.
14613
14614 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14615
14616         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
14617         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
14618         INT64_TYPE): Define.
14619         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
14620         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
14621         INT_LEAST64_TYPE): Define.
14622         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
14623         UINT_LEAST64_TYPE): Define.
14624         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
14625         INT_FAST64_TYPE): Define.
14626         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
14627         UINT_FAST64_TYPE): Define.
14628         (INTMAX_TYPE, UINTMAX_TYPE): Define.
14629         (INTPTR_TYPE, UINTPTR_TYPE): Define.
14630         (SIG_ATOMIC_TYPE): Define.
14631
14632 2010-01-26  Richard Guenther  <rguenther@suse.de>
14633
14634         * df-scan.c (df_scan_set_bb_info): Remove assert.
14635         (df_insn_rescan_debug_internal): Merge asserts.
14636         (df_install_ref): Likewise.
14637         (df_mark_reg): Use bitmap_set_range.
14638         (df_hard_reg_used_p): Remove assert.
14639         (df_hard_reg_used_count): Likewise.
14640
14641 2010-01-26  Richard Guenther  <rguenther@suse.de>
14642
14643         PR rtl-optimization/42685
14644         * web.c (web_main): Ignore DEBUG_INSNs.
14645
14646 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
14647
14648         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
14649
14650         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
14651         Fix types of fndecl and arglist parameters.
14652
14653 2010-01-26  Richard Guenther  <rguenther@suse.de>
14654
14655         PR middle-end/42806
14656         * tree-eh.c (unsplit_eh): Skip debug insns.
14657
14658 2010-01-26  Richard Guenther  <rguenther@suse.de>
14659
14660         PR tree-optimization/42250
14661         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
14662
14663 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
14664
14665         PR fortran/42866
14666         * omp-low.c (expand_omp_sections): Only use single_pred if
14667         l2_bb is single_pred_p.
14668
14669 2010-01-25  Christian Bruel  <christian.bruel@st.com>
14670
14671         PR target/42841
14672         * config/sh/sh.c (find_barrier): Increase length for non delayed
14673         conditional branches.
14674         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
14675
14676 2010-01-24  David S. Miller  <davem@davemloft.net>
14677
14678         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
14679         define if not using GAS.
14680         * config/sparc/sparc.c (sparc_elf_asm_named_section):
14681         Likewise.  Delete SECTION_MERGE code, which is only applicable
14682         when using GAS.
14683
14684 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
14685
14686         PR c++/42748
14687         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
14688         mangling of va_list in system headers.
14689
14690 2010-01-23  Toon Moene  <toon@moene.org>
14691
14692         * tree-predcom.c (combine_chains): Return NULL, not false.
14693
14694 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
14695
14696         * tree-loop-distribution.c (distribute_loop): Fix declaration and
14697         initialization of variable res to agree with return type.
14698
14699 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
14700
14701         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
14702         * tree-sra.c: Add include of expr.h.
14703
14704 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
14705
14706         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
14707         insert the debug stmt on the single non-EH edge from the stmt.
14708
14709 2010-01-22  Richard Henderson  <rth@redhat.com>
14710
14711         PR tree-opt/42833
14712         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
14713         the RHS until after generate_subtree_copies has insertted its
14714         code before the current statement.
14715
14716 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
14717
14718         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
14719
14720         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
14721
14722 2010-01-21  Martin Jambor  <mjambor@suse.cz>
14723
14724         PR tree-optimization/42585
14725         * tree-sra.c (struct access): New field grp_total_scalarization.
14726         (dump_access): Dump the new field.
14727         (should_scalarize_away_bitmap): New variable.
14728         (cannot_scalarize_away_bitmap): Likewise.
14729         (sra_initialize): Allocate new bitmaps.
14730         (sra_deinitialize): Free new bitmaps.
14731         (create_access_1): New function.
14732         (create_access): Parts moved to create_access_1.
14733         (type_consists_of_records_p): New function.
14734         (completely_scalarize_record): Likewise.
14735         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
14736         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
14737         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
14738         access.
14739         (analyze_all_variable_accesses): Completely scalarize small eligible
14740         records.
14741
14742 2010-01-21  Martin Jambor  <mjambor@suse.cz>
14743
14744         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
14745
14746 2010-01-21  Andrew Haley  <aph@redhat.com>
14747
14748         * gcc.c (process_command): Move lang_specific_driver before
14749         setting cc_libexec_prefix.
14750
14751 2010-01-21  Richard Guenther  <rguenther@suse.de>
14752
14753         PR middle-end/19988
14754         * fold-const.c (negate_expr_p): Pretend only negative
14755         real constants are easily negatable.
14756
14757 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
14758             Jason Merrill  <jason@redhat.com>
14759
14760         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
14761         (TYPE_TRANSPARENT_AGGR): this, for union and record.
14762         * calls.c (initialize argument_information): Handle it.
14763         * c-common.c (handle_transparent_union_attribute): Use new name.
14764         * c-decl.c (finish_struct): Ditto.
14765         * c-typeck.c (type_lists_compatible_p): Ditto.
14766         (convert_for_assignment): Use new name and also handle record.
14767         * function.c (aggregate_value_p): Handle it.
14768         (pass_by_reference): Ditto.
14769         (assign_parm_data_types): Ditto.
14770         * print-tree.c (print_node): Ditto.
14771         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
14772         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
14773         * tree.c (first_field): New fn.
14774
14775 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
14776
14777         PR target/42818
14778         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
14779         even when linking statically, for now.
14780
14781 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
14782
14783         PR debug/42715
14784         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
14785         without a cselib val.
14786         (count_uses): Accept MO_VAL_SET with no val on stores.
14787         (add_stores): Likewise.
14788
14789 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14790
14791         * var-tracking.c (check_value_val): Add a compile time assertion.
14792         (dv_is_decl_p): Simplify.
14793         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
14794         gcc_assert if ENABLE_CHECKING.
14795
14796 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
14797
14798         PR debug/42782
14799         * var-tracking.c: Include tree-flow.h.
14800         (mem_dies_at_call): New.
14801         (dataflow_set_preserve_mem_locs): Use it.
14802         (dataflow_set_remove_mem_locs): Likewise.
14803         (dump_var): Renamed from dump_variable.  Adjust all callers.
14804         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
14805         * Makefile.in (var-tracking.o): Adjust deps.
14806
14807 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
14808
14809         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
14810
14811 2010-01-20  Richard Guenther  <rguenther@suse.de>
14812
14813         PR tree-optimization/42717
14814         * tree-ssa-dce.c (get_live_post_dom): Remove.
14815         (forward_edge_to_pdom): Take an arbitrary edge to copy
14816         degenerate PHI args from.
14817         (remove_dead_stmt): Use the first post-dominator even if it
14818         does not contain live statements as redirection destination.
14819
14820 2010-01-20  Richard Guenther  <rguenther@suse.de>
14821
14822         * tree-inline.c (estimate_num_insns): Handle EH builtins.
14823
14824 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14825
14826         * sel-sched.c (create_speculation_check): Remove set but not used
14827         variable twin.
14828         (try_transformation_cache): Remove set but not used variable ds.
14829         (calculate_privileged_insns): Remove set but not used variables
14830         cur_insn and min_spec_insn.
14831         (find_best_expr): Remove set but not used variable avail_n.
14832         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
14833         variable e.
14834         * cgraphunit.c (assemble_thunk): Remove set but not used variable
14835         false_label.
14836         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
14837         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
14838         new_scop_exit_edge.
14839
14840 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
14841
14842         PR bootstrap/42786
14843         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
14844         cpu types.  Add support for *-sse3 cpu types.
14845         (x86_64-*-*): Ditto.
14846
14847 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14848
14849         PR middle-end/42803
14850         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
14851         argument, call initializer_constant_valid_p_1 instead of
14852         initializer_constant_valid_p, pass CACHE to it, return NULL
14853         immediately if first call returns NULL.
14854         (initializer_constant_valid_p_1): New function.
14855         (initializer_constant_valid_p): Use it.
14856
14857 2010-01-20  Thomas Quinot  <quinot@adacore.com>
14858
14859         * tree.def (PLACEHOLDER_EXPR): Fix comment.
14860
14861 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
14862
14863         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
14864         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
14865         (loc_list_from_tree): Don't handle unsigned division.  Handle
14866         signed modulo using DW_OP_{over,over,div,mul,minus}.
14867         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
14868         modulo instead of signed.
14869
14870 2010-01-20  DJ Delorie  <dj@redhat.com>
14871
14872         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
14873         (Fpa): Pass it
14874         (h8300_emit_stack_adjustment): Propogate it.
14875         (push): Pass it.
14876         (h8300_expand_prologue): Likewise.
14877         (h8300_expand_epilogue): Likewise.
14878
14879 2010-01-19  Michael Matz  <matz@suse.de>
14880
14881         PR tree-optimization/41783
14882         * tree-data-ref.c (toplevel): Include flags.h.
14883         (dump_data_dependence_relation):  Also dump the inputs if the
14884         result will be unknown.
14885         (split_constant_offset_1): Look through some conversions.
14886         * tree-predcom.c (determine_roots_comp): Restart a new chain if
14887         the offset from last element is too large.
14888         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
14889         (reassociate_to_the_same_stmt): Handle vector registers.
14890         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
14891         (e.g. conversions).
14892         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
14893         wide_prolog_niters argument, emit widening instructions.
14894         (vect_do_peeling_for_alignment): Adjust caller, use widened
14895         variant of the iteration cound.
14896         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
14897
14898 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14899
14900         PR target/38697
14901         * config/arm/neon-testgen.m (emit_automatics): New parameter
14902         features. Adjust for Fixed_return_reg feature.
14903         (test_intrinsic): Call emit_automatics with new feature.
14904         * config/arm/neon.ml: Update copyright years.
14905         (features): New Fixed_return_reg feature.
14906         (ops): Update feature for Vget_low.
14907
14908 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
14909
14910         PR tree-optimization/42719
14911         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
14912         stmt uses.
14913
14914         PR debug/42728
14915         * fwprop.c (all_uses_available_at): Return false if def_set dest
14916         is a REG that is used in def_insn.
14917
14918 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
14919
14920         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
14921
14922         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
14923         Add argument names.
14924
14925         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
14926
14927         * target.h (struct gcc_target) <secondary_reload>: Change type
14928         of last argument to secondary_reload_info *.
14929
14930 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
14931
14932         PR target/42774
14933         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
14934         memory references with unaligned offsets.  Remove CQImode handling.
14935         (unaligned_memory_operand): Return 1 for memory references with
14936         unaligned offsets.  Remove CQImode handling.
14937
14938 2010-01-18  Richard Guenther  <rguenther@suse.de>
14939
14940         PR middle-end/39954
14941         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
14942         builtin calls.
14943
14944 2010-01-18  Richard Guenther  <rguenther@suse.de>
14945
14946         PR tree-optimization/42781
14947         * tree-ssa-structalias.c (find_what_var_points_to): Skip
14948         restrict processing only if the original variable was artificial.
14949
14950 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
14951
14952         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
14953         find number of popped argument bytes.
14954
14955         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
14956         Fix the text that describes the return value for invalid insns.
14957
14958         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
14959
14960         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
14961         Clarify what 'cost of the -dependence' is.  Fix quoting.
14962
14963         * toplev.c (default_get_pch_validity): Rename argument to "sz".
14964         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
14965
14966 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
14967
14968         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
14969         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
14970
14971 2010-01-17  Richard Guenther  <rguenther@suse.de>
14972
14973         PR middle-end/42248
14974         * function.c (split_complex_args): Take a VEC to modify.
14975         (assign_parms_augmented_arg_list): Build a VEC instead of
14976         a chain of PARM_DECLs.
14977         (assign_parms_unsplit_complex): Take a VEC of arguments.
14978         Do not fixup unmodified parms.
14979         (assign_parms): Deal with the VEC.
14980         (gimplify_parameters): Likewise.
14981
14982 2010-01-17  Richard Guenther  <rguenther@suse.de>
14983
14984         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
14985         node existence check.
14986         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
14987         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
14988         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
14989         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
14990         (gimple_execute_on_growing_pred): Likewise.
14991
14992 2010-01-17  Richard Guenther  <rguenther@suse.de>
14993
14994         PR tree-optimization/42773
14995         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
14996         (compute_antic_aux): Likewise.
14997         (compute_partial_antic_aux): Likewise.
14998
14999 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
15000
15001         PR debug/42767
15002         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
15003         and US_TRUNCATE.
15004
15005 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
15006
15007         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
15008         appearance.
15009
15010         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
15011         Fix markup for strict argument.
15012
15013         (TARGET_SCHED_REORDER2): Fix argument types.
15014
15015         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
15016         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
15017
15018         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
15019         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
15020
15021         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
15022         Add argument name.
15023
15024         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
15025         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
15026         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
15027         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
15028         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
15029
15030         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
15031
15032         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
15033
15034         (TARGET_ASM_RELOC_RW_MASK): Add return type.
15035         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
15036
15037         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
15038
15039         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
15040         Use prototype.
15041
15042         (TARGET_ASM_NAMED_SECTION): Fix argument list.
15043
15044         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
15045         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
15046
15047         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
15048
15049         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
15050
15051         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
15052         referring to it.  Fix language.
15053
15054         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
15055
15056         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
15057
15058         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
15059
15060         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
15061
15062         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
15063         '@var{stream}.  Remove stray 'and'.
15064
15065         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
15066
15067         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
15068
15069         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
15070
15071         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
15072         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
15073
15074         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
15075         Fix description of return value.
15076         Rename argument "sz" to "len."
15077
15078         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
15079         Clarify meaning of 'true' return value.
15080
15081         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
15082
15083         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
15084         rep_mode versus mode_rep.
15085
15086         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
15087
15088         (TARGET_BUILTIN_DECL): Fix name.
15089
15090         (TARGET_COMMUTATIVE_P): Fix type of first argument.
15091
15092         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
15093
15094         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
15095
15096         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
15097
15098         (TARGET_RELAXED_ORDERING): Use @deftypevr.
15099
15100         (TARGET_GET_DRAP_RTX): Note that this is a hook.
15101         Clarify language.
15102
15103         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
15104         Rename argument tm_fn to md_fn.
15105
15106         (TARGET_OPTION_PRINT): Fix argument list.
15107
15108 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
15109
15110         PR target/42664
15111         * config/i386/i386.c (ix86_fixup_binary_operands):
15112         Revert FMA4 fixup of operands.
15113
15114 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15115
15116         PR gcc/42525
15117         * Makefile.in (write_entries_to_file, install-plugin):
15118         Use \012 instead of \n with tr.
15119
15120 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
15121
15122         * configure.ac (HAVE_AS_REF): New C macro.
15123         * configure: Regenerate.
15124         * config.in: Likewise.
15125         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
15126         if HAVE_AS_REF.
15127         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
15128         if HAVE_AS_REF.
15129
15130 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
15131
15132         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
15133
15134         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
15135
15136         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
15137
15138         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
15139
15140         (TARGET_IN_SMALL_DATA_P): Fix argument type.
15141
15142         (TARGET_BINDS_LOCAL_P): Fix argument type.
15143
15144         (TARGET_ASM_FILE_END): Use prototype.
15145
15146         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
15147
15148         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
15149
15150         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
15151
15152         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
15153
15154         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
15155         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
15156
15157         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
15158         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
15159
15160         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
15161         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
15162         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
15163         (TARGET_ADDR_SPACE_CONVERT): Likewise.
15164
15165         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
15166
15167         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
15168
15169         (TARGET_INIT_BUILTINS): Use prototype.
15170
15171         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
15172         Put 'const char *' in braces.  Fix parameter types.
15173         (TARGET_INVALID_CONVERSION): Fix parameter types.
15174         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
15175         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
15176
15177         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
15178         Fix argument type.
15179
15180         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
15181
15182         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
15183
15184 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
15185
15186         * doc/tm.texi (TARGET_HELP): Fix return type.
15187
15188         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
15189         in braces.  Fix argument types.
15190
15191         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
15192
15193         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
15194
15195         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
15196
15197         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
15198         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
15199
15200         (TARGET_MANGLE_TYPE): Fix argument types.
15201
15202         (TARGET_IRA_COVER_CLASSES): Use prototype.
15203
15204         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
15205
15206         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
15207
15208         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
15209
15210         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
15211
15212         (TARGET_CALLEE_COPIES): Fix argument types.
15213
15214         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
15215
15216         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
15217
15218         (TARGET_FUNCTION_VALUE): Fix argument types.
15219
15220         (TARGET_RETURN_IN_MSB): Fix argument type.
15221
15222         (TARGET_RETURN_IN_MEMORY): Fix argument types.
15223
15224         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
15225
15226         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
15227
15228         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
15229         agree with return type.
15230
15231         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
15232
15233 2010-01-15  Jing Yu  <jingyu@google.com>
15234
15235         PR rtl-optimization/42691
15236         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
15237         a pseudo to a constant and are merged, and adjust comments.
15238
15239 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
15240
15241         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
15242
15243 2010-01-15  Richard Guenther  <rguenther@suse.de>
15244
15245         PR middle-end/42739
15246         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
15247         labels of computed or non-local gotos to the destination.
15248         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
15249         landing pad label is the first label.
15250
15251 2010-01-15  Richard Guenther  <rguenther@suse.de>
15252
15253         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
15254
15255 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15256
15257         PR target/42747
15258         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
15259         to allow generation of the xssqrtdp instruction on power7.
15260         (sqrtdf2_fpr): Ditto.
15261
15262 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15263
15264         PR middle-end/42674
15265         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
15266         functions with noreturn attribute.
15267
15268         PR c++/42608
15269         * varasm.c (declare_weak): Add weak attribute to decl if it
15270         doesn't have one already.
15271         (assemble_external): Only add decls to weak_decls if they also
15272         have weak attribute.
15273
15274 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
15275
15276         * var-tracking.c (var_reg_delete): Don't delete the association
15277         between REGs and values or one-part variables if the register
15278         isn't clobbered.
15279
15280 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15281
15282         PR debug/42657
15283         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
15284         because its first operand is a non-localized variable.
15285
15286 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15287
15288         PR tree-optimization/42706
15289         * tree-sra.c (encountered_recursive_call): New variable.
15290         (encountered_unchangable_recursive_call): Likewise.
15291         (sra_initialize): Initialize both new variables.
15292         (callsite_has_enough_arguments_p): New function.
15293         (scan_function): Call decl and flags check only for IPA-SRA, check
15294         whether there is a recursive call and whether it has enough arguments.
15295         (all_callers_have_enough_arguments_p): New function.
15296         (convert_callers): Look for recursive calls only when
15297         encountered_recursive_call is set.
15298         (ipa_early_sra): Bail out either if
15299         !all_callers_have_enough_arguments_p or
15300         encountered_unchangable_recursive_call.
15301
15302 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15303
15304         * sel-sched.c: Add 2010 to copyright years.
15305         * sel-sched-ir.c: Likewise.
15306         * sel-sched-ir.h: Likewise.
15307
15308 2010-01-14  Martin Jambor  <mjambor@suse.cz>
15309
15310         PR tree-optimization/42714
15311         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
15312         constructors specially.
15313
15314 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15315
15316         * config/i386/drivers-i386.c (detect_caches_intel):
15317         Add l2sizekb parameter and fill in.
15318         (host_detect_local_cpu): Add l2sizekb, fill in.
15319         Add Atom small cache heuristic.
15320
15321 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15322
15323         * config/i386/drivers-i386.c (detect_caches_cpuid4):
15324         Add level3 parameter and fill in.
15325         (detect_caches_intel): Handle level3 cache.
15326
15327 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15328
15329         * config/i386/drivers-i386.c (host_detect_local_cpu):
15330         Fix core duo detection.
15331
15332 2010-01-14  Andi Kleen  <ak@linux.intel.com>
15333
15334         * config/i386/drivers-i386.c (host_detect_local_cpu):
15335         Fix Atom detection.
15336
15337 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15338
15339         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
15340         (rs6000_variable_issue_1): this.  Use...
15341         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
15342
15343 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15344
15345         * sel-sched-ir.c (sel_restore_other_notes): Rename to
15346         sel_restore_notes.  Update all callers.  Call reemit_notes
15347         for all insns.
15348
15349 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15350
15351         PR rtl-optimization/42246
15352         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
15353         loops.
15354
15355 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15356
15357         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
15358         all successors is the same as number of successors in current region.
15359
15360 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15361
15362         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
15363         to rename is not separable.  Otherwise check that its LHS is not NULL.
15364
15365 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15366
15367         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
15368
15369 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15370
15371         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
15372         available registers when failed to discover LHS register class.
15373         Fix indentation.  Update comment.
15374
15375 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15376             Alexander Monakov  <amonakov@ispras.ru>
15377
15378         PR rtl-optimization/42389
15379         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
15380         to can_issue_more.
15381         (advance_state_on_fence): Likewise.
15382         (sel_target_adjust_priority): Print debug output only when
15383         sched_verbose >= 4, not 2.
15384         (get_expr_cost): Do not issue all unique insns on the next cycle.
15385         (fill_insns): Initialize can_issue_more from the value saved
15386         with the fence.
15387         * sel-sched-ir.c (flist_add): New parameter issue_more.
15388         Init FENCE_ISSUE_MORE with it.
15389         (merge_fences): Likewise.
15390         (init_fences): Update call to flist_add.
15391         (add_to_fences, add_clean_fence_to_fences)
15392         (add_dirty_fence_to_fences): Likewise.
15393         (move_fence_to_fences): Update call to merge_fences.
15394         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
15395         sched groups.
15396         * sel-sched-ir.h (struct _fence): New field issue_more.
15397         (FENCE_ISSUE_MORE): New accessor macro.
15398
15399 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15400
15401         PR rtl-optimization/42388
15402         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
15403         that have no predecessors nor successors.  Do not call move_bb_info
15404         for empty blocks outside of current region.
15405
15406 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15407
15408         PR rtl-optimization/42294
15409         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
15410         * sel-sched.c (move_exprs_to_boundary): Transitively add all
15411         originators' originators.
15412
15413 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
15414
15415         PR rtl-optimization/39453
15416         PR rtl-optimization/42246
15417         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
15418         for pipelining_p.
15419         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
15420
15421 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
15422             Alexander Monakov  <amonakov@ispras.ru>
15423
15424         PR middle-end/42245
15425         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
15426         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
15427         argument.  Update all callers.
15428         (tidy_control_flow): ... and here.  Recompute topological order
15429         of basic blocks in region if necessary.
15430         (sel_redirect_edge_and_branch): Change return type.  Return true
15431         if topological order might have been invalidated.
15432         (purge_empty_blocks): Export and move from...
15433         * sel-sched.c (purge_empty_blocks): ... here.
15434         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
15435         (maybe_tidy_empty_bb): Delete prototype.
15436         (purge_empty_blocks): Declare.
15437
15438 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
15439
15440         PR rtl-optimization/42249
15441         * sel-sched.c (try_replace_dest_reg): When chosen register
15442         and original register is the same, do not bail out early, but
15443         still check all original insns for validity of replacing destination
15444         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
15445         in this case.
15446
15447 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
15448
15449         PR c/42721
15450         Port from no-undefined-overflow branch:
15451         2009-03-09  Richard Guenther  <rguenther@suse.de>
15452
15453         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
15454
15455 2010-01-14  Richard Guenther  <rguenther@suse.de>
15456
15457         PR lto/42665
15458         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
15459
15460 2010-01-14  Ira Rosen  <irar@il.ibm.com>
15461
15462         PR tree-optimization/42709
15463         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
15464         as scalar type in creation of constant vector operand.
15465
15466 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15467
15468         PR testsuite/42414
15469         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
15470         (check-parallel-%): Match `testsuite' directory component only
15471         at the end.
15472
15473 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
15474
15475         PR translation/39521
15476         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
15477         strings with _().
15478
15479 2010-01-13  Richard Guenther  <rguenther@suse.de>
15480
15481         PR tree-optimization/42730
15482         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
15483         offset zero.
15484
15485 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
15486
15487         PR target/pr42542
15488         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
15489         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
15490         them signed.
15491
15492 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15493
15494         * config/bfin/libgcc-bfin.ver: Regenerate based on current
15495         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
15496         ___umulsi3_highpart.
15497
15498         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
15499         rather than schedule_insns if the pass is enabled.
15500
15501 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15502
15503         PR tree-optimization/42704
15504         * tree-sra.c (sra_modify_assign): Do not delete assignments to
15505         SSA_NAMEs.
15506
15507 2010-01-13  Martin Jambor  <mjambor@suse.cz>
15508
15509         PR tree-optimization/42703
15510         * tree-sra.c (analyze_access_subtree): Check that we can build a
15511         reference to the original data within the aggregate.
15512
15513 2010-01-13  Richard Guenther  <rguenther@suse.de>
15514
15515         PR tree-optimization/42705
15516         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
15517
15518 2010-01-13  Richard Guenther  <rguenther@suse.de>
15519
15520         PR middle-end/42716
15521         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
15522
15523 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
15524
15525         PR debug/41371
15526         * var-tracking.c (values_to_unmark): New variable.
15527         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
15528         values_to_unmark vector.  Moved body to...
15529         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
15530         instead queue it into values_to_unmark vector.
15531         (vt_find_locations): Free values_to_unmark vector.
15532
15533 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
15534
15535         * config/s390/s390.c (override_options): Set
15536         default of max-pending-list-length to 256
15537
15538 2010-01-13  Richard Guenther  <rguenther@suse.de>
15539
15540         PR lto/42678
15541         * tree-pass.h (PROP_gimple_lcx): New.
15542         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
15543         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
15544         before the final cleanup_eh.
15545         (dump_properties): Dump PROP_gimple_lcx.
15546         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
15547         (tree_lower_complex_O0): Remove.
15548         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
15549         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
15550         tree_lower_complex, schedule TODO_update_ssa.
15551         * lto-streamer-out.c (output_function): Stream the functions
15552         properties.
15553         * lto-streamer-in.c (input_function): Likewise.
15554         (lto_read_body): Do not override them here.
15555
15556 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
15557
15558         PR c/42708
15559         * c-typeck.c (build_c_cast): Fold value cast to union type before
15560         wrapping it in a CONSTRUCTOR.
15561
15562 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
15563
15564         PR rtl-optimization/42699
15565         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
15566         involved.
15567
15568 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15569
15570         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
15571         SUBTARGET_WARN_UNUSED_SPEC): Move ...
15572         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
15573         SUBTARGET_WARN_UNUSED_SPEC): ... here
15574         * config/mips/iris5.h (LIBGCC_SPEC): Define.
15575
15576 2010-01-12  Julian Brown  <julian@codesourcery.com>
15577
15578         * config/arm/neon-schedgen.ml (Utils): Don't try to
15579         open missing module.
15580         (find_with_result): New.
15581
15582 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
15583
15584         PR debug/42662
15585         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
15586         sharing when canonicalizing ({lt,ge}u (plus a b) b).
15587
15588         PR tree-optimization/42645
15589         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
15590         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
15591         decl_map, set processing_debug_stmt to -1 and return name without
15592         any remapping.
15593
15594 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
15595
15596         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
15597         binutils version, and reword target configuration description.
15598
15599 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
15600
15601         * config/avr/avr.h (LINKER_NAME): Remove.
15602
15603 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
15604
15605         PR target/42416
15606         * config/rs6000/rs6000.c (rs6000_override_options): On targets
15607         that support VSX, warn for -mno-altivec if vsx is not disabled,
15608         and disable vsx.
15609
15610 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
15611             Shujing Zhao  <pearly.zhao@oracle.com>
15612
15613         PR translation/42469
15614         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
15615         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
15616         character between option name and help text.
15617         * c.opt (imultilib): Likewise.
15618
15619 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
15620
15621         * lto-streamer-out.c (output_unreferenced_globals): Output static
15622         variables.
15623
15624 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
15625
15626         PR rtl-optimization/42621
15627         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
15628         optimizing for size.
15629         (duplicate_computed_gotos): Remove now-redundant check.
15630
15631 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
15632
15633         PR target/37454
15634         * configure.ac: Save and restore LDFLAGS and LIBS
15635         * configure: Regenerate.
15636
15637 2010-01-10  Richard Guenther  <rguenther@suse.de>
15638
15639         PR middle-end/42667
15640         * builtins.c (fold_builtin_strlen): Add type argument and
15641         convert the resulting length to it.
15642         (fold_builtin_1): Adjust.
15643
15644 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
15645
15646         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
15647         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
15648         1 insn.
15649         (num_insns_constant_wide): Adjust for that change.
15650
15651 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15652
15653         PR debug/42631
15654         * web.c (union_defs): Add used argument, to combine uses of
15655         uninitialized regs.
15656         (entry_register): Adjust type and tests of used argument.
15657         (web_main): Widen used for new use.  Pass it to union_defs.
15658         * df.h (union_defs): Adjust prototype.
15659
15660 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15661
15662         PR debug/42630
15663         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
15664         uses in new incoming argument.  Free body.
15665         (reset_debug_uses_in_loop): New.
15666         (analyze_insn_to_expand_var): Call the latter if the former found
15667         anything.  Fix whitespace.  Reject invalid dest overlaps before
15668         going through all insns in the loop.
15669
15670 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15671
15672         PR debug/42629
15673         * haifa-sched.c (dying_use_p): Debug insns don't count.
15674
15675 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15676
15677         PR middle-end/42363
15678         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
15679         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
15680         (verify_gimple_call): Reject LHS in noreturn calls.
15681
15682 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15683
15684         PR debug/42604
15685         PR debug/42395
15686         * tree-vect-loop-manip.c (adjust_info): New type.
15687         (adjust_vec): New pointer to vector.
15688         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
15689         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
15690         (slpeel_update_phis_for_duplicate_loop): Use them.
15691         (slpeel_update_phi_nodes_for_guard1): Likewise.
15692         (slpeel_update_phi_nodes_for_guard2): Likewise.
15693         (slpeel_tree_peel_loop_to_edge): Likewise.
15694         (vect_update_ivs_after_vectorizer): Likewise.
15695
15696 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15697
15698         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
15699         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
15700
15701 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
15702
15703         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
15704         bogus uninitialized warning.
15705
15706 2010-01-09  Richard Guenther  <rguenther@suse.de>
15707
15708         PR middle-end/42512
15709         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
15710         the evolution is compatible with the initial condition.
15711
15712 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
15713
15714         * gcc.c (process_command): Update copyright notice dates.
15715         * gcov.c (print_version): Likewise.
15716         * gcov-dump.c (print_version): Likewise.
15717         * mips-tfile.c (main): Likewise.
15718         * mips-tdump.c (main): Likewise.
15719
15720 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
15721
15722         PR target/41885
15723         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
15724         (rotlhi3): Delete.
15725         (rotlhi3_8): Delete.
15726         (rotlsi3): Delete.
15727         (rotlsi3_8): Delete.
15728         (rotlsi3_16): Delete.
15729         (rotlsi3_24): Delete.
15730         (rotl<mode>3): New.
15731         (*rotw<mode>3): New.
15732         (*rotb<mode>3): New.
15733         * config/avr/avr.c (avr_rotate_bytes): New function.
15734         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
15735
15736 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
15737
15738         PR target/37454
15739         * configure.ac: Modify -rdynamic check.
15740         * configure: Regenerate.
15741
15742 2010-01-08  DJ Delorie  <dj@redhat.com>
15743
15744         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
15745         register popping order.
15746
15747 2010-01-08  Richard Guenther  <rguenther@suse.de>
15748
15749         PR lto/42528
15750         * c.opt (fsigned-char): Also let LTO handle this option.
15751         (funsigned-char): Likewise.
15752
15753 2010-01-07  Richard Guenther  <rguenther@suse.de>
15754
15755         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
15756         (gimple_op): Likewise.
15757         (gimple_op_ptr): Likewise.
15758         (gimple_assign_set_lhs): Remove gcc_assert.
15759         (gimple_assign_set_rhs1): Likewise.
15760         (gimple_assign_set_rhs2): Likewise.
15761         (gimple_call_set_lhs): Likewise.
15762         (gimple_call_set_fn): Likewise.
15763         (gimple_call_set_fndecl): Likewise.
15764         (gimple_call_fndecl): Likewise.
15765         (gimple_call_return_type): Likewise.
15766         (gimple_call_set_chain): Likewise.
15767         (gimple_call_num_args): Likewise.
15768         (gimple_call_set_arg): Likewise.
15769         (gimple_cond_set_code): Likewise.
15770         (gimple_cond_set_lhs): Likewise.
15771         (gimple_cond_set_rhs): Likewise.
15772         (gimple_cond_set_true_label): Likewise.
15773         (gimple_cond_set_false_label): Likewise.
15774         (gimple_label_set_label): Likewise.
15775         (gimple_goto_set_dest): Likewise.
15776         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
15777         (gimple_debug_bind_get_value): Likewise.
15778         (gimple_debug_bind_get_value_ptr): Likewise.
15779         (gimple_debug_bind_set_var): Likewise.
15780         (gimple_debug_bind_set_value): Likewise.
15781         (gimple_debug_bind_reset_value): Likewise.
15782         (gimple_debug_bind_has_value_p): Likewise.
15783         (gimple_return_retval_ptr): Remove gcc_assert.
15784         (gimple_return_retval): Likewise.
15785         (gimple_return_set_retval): Likewise.
15786         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
15787         (safe_referenced_var_iterator): Remove.
15788         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
15789         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
15790         (fill_referenced_var_vec): Remove.
15791         (first_readonly_imm_use): Remove redundant gcc_assert.
15792         (phi_arg_index_from_use): Combine gcc_asserts.
15793         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
15794         (first_imm_use_stmt): Remove redundant gcc_assert.
15795         * tree-cfg.c (verify_gimple_call): Verify function and chain
15796         operands.  Verify arguments.
15797         (verify_types_in_gimple_stmt): Verify condition code and labels.
15798
15799 2010-01-07  Richard Guenther  <rguenther@suse.de>
15800
15801         PR tree-optimization/42641
15802         * sese.c (rename_map_elt_info): Use the SSA name version, do
15803         not hash pointers.
15804
15805 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
15806
15807         PR tree-optimization/42625
15808         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
15809         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
15810
15811 2010-01-07  Duncan Sands  <baldrick@free.fr>
15812
15813         * Makefile.in (PLUGIN_HEADERS): Add version.h.
15814
15815 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
15816
15817         PR target/42511
15818         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
15819         note itself is not function_invariant_p.
15820
15821 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
15822
15823         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
15824         Do not add the DF_NOTE problem.
15825         * store-motion.c (execute_rtl_store_motion): Likewise.
15826
15827 2010-01-07  Martin Jambor  <mjambor@suse.cz>
15828
15829         PR tree-optimization/42157
15830         * tree-sra.c (compare_access_positions): Stabilize sort if both
15831         accesses have integer types, return zero immediately if they are the
15832         same.
15833
15834 2010-01-06  Richard Henderson  <rth@redhat.com>
15835
15836         PR middle-end/41883
15837         * haifa-sched.c (add_to_note_list): Merge into ...
15838         (concat_note_lists): ... here, and ...
15839         (unlink_other_notes, rm_other_notes): Merge into...
15840         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
15841         NOTE_INSN_EPILOGUE_BEG.
15842
15843 2010-01-06  Richard Guenther  <rguenther@suse.de>
15844
15845         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
15846         not inline regular functions into always-inline functions.
15847
15848 2010-01-06  Nick Clifton  <nickc@redhat.com>
15849
15850         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
15851         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
15852         used together.
15853         (OVERRIDE_OPTIONS): Delete.
15854         (OPTIMIZATION_OPTIONS): Define.
15855         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
15856         * config/rx/rx.c (rx_handle_option): Issue an error message if
15857         -mcpu=rx200 and -fpu are used together.
15858         (rx_set_optimization_options): New function.  Issue an error
15859         message if an optimization attribute attempts to reset the FPU/
15860         math optimization pairing.
15861         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
15862         * config/rx/rx.opt: Set the default to 32-bit doubles.
15863         * config/rx/t-rx: Add multilibs for -nofpu option.
15864         * doc/invoke.texi: Update documentation of RX options.
15865
15866 2010-01-06  Richard Guenther  <rguenther@suse.de>
15867
15868         * tree-ssa-pre.c (name_to_id): New global.
15869         (alloc_expression_id): Simplify SSA name handling.
15870         (lookup_expression_id): Likewise.
15871         (init_pre): Zero name_to_id.
15872         (fini_pre): Free it.
15873
15874 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
15875
15876         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
15877
15878 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
15879
15880         PR target/42542
15881         * config/i386/sse.md (smaxv2di3): New.
15882         (umaxv2di3): Likewise.
15883         (sminv2di3): Likewise.
15884         (uminv2di3): Likewise.
15885
15886 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
15887
15888         PR target/42564
15889         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
15890         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
15891         (legitimize_tls_address): Likewise.
15892         (sparc_tls_referenced_p): Likewise.
15893         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
15894         and adjust calls to legitimize_pic_address.
15895         (legitimate_constant_p) Use sparc_tls_referenced_p.
15896         (legitimate_pic_operand_p): Likewise.
15897         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
15898         (sparc_tls_symbol_ref_1): Delete.
15899         (sparc_tls_referenced_p): Make static, recognize specific patterns.
15900         (legitimize_tls_address): Make static, handle CONST patterns.
15901         (legitimize_pic_address): Make static, remove unused parameter and
15902         adjust recursive calls.
15903         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
15904         and adjust call to legitimize_pic_address.
15905         (sparc_output_mi_thunk): Likewise.
15906
15907 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
15908             H.J. Lu  <hongjiu.lu@intel.com>
15909
15910         PR target/42542
15911         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
15912         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
15913         operands to make them signed.
15914
15915         Revert:
15916         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
15917
15918         PR target/42542
15919         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
15920         GTU to GT for V4SI and V2DI.
15921
15922         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
15923         (umin<mode>3): Removed.
15924         (uminv8hi3): New.
15925         (uminv4si3): Likewise.
15926
15927 2010-01-05  Martin Jambor  <mjambor@suse.cz>
15928
15929         PR tree-optimization/42462
15930         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
15931         current_function_decl to helper functions and macros.
15932
15933 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15934
15935         PR bootstrap/41771
15936         * flags.h: Don't include real.h.
15937         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
15938         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
15939         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
15940         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
15941         * dominance.c: Update copyright.
15942         * gimple.c (walk_gimple_op): Remove inline.
15943         * tree-ssa-reassoc.c: Include real.h.
15944         * Makefile.in (FLAGS_H): Remove $(REAL_H).
15945         (tree-ssa-reassoc.o): Depend on $(REAL_H).
15946
15947 2010-01-05  Nick Clifton  <nickc@redhat.com>
15948
15949         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
15950         register to push into the stack frame when the accumulator has to
15951         be saved during interrupts.
15952
15953 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
15954
15955         * doc/invoke.texi: Remove the documentation about option
15956         -Wunreachable-code.
15957         * common.opt (Wunreachable-code):  Preserved for backward
15958         compatibility.
15959         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
15960         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
15961         the backward compatibility flag section.
15962
15963 2010-01-05  Richard Guenther  <rguenther@suse.de>
15964
15965         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
15966
15967 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
15968
15969         PR other/42611
15970         * cfgexpand.c (expand_one_var): Diagnose too large variables.
15971
15972         PR tree-optimization/42508
15973         * tree-sra.c (convert_callers): Check for recursive call
15974         by comparing cgraph nodes instead of decls.
15975         (modify_function): Call ipa_modify_formal_parameters also
15976         on all same_body aliases.
15977
15978         * cgraphunit.c (cgraph_materialize_all_clones): Compare
15979         cgraph nodes when checking for same_body aliases.
15980
15981 2010-01-05  Richard Guenther  <rguenther@suse.de>
15982
15983         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
15984         allocation and lookup.
15985         (get_or_alloc_expr_for_constant): Likewise.
15986         (phi_translate): Sink allocation.
15987
15988 2010-01-04  Richard Guenther  <rguenther@suse.de>
15989
15990         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
15991         a new entry only if needed.
15992         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
15993         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
15994         hashtable lookup.
15995         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
15996         the result array.
15997         (phi_translate): Handle CONSTANTs early.
15998
15999 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16000
16001         PR tree-optimization/42398
16002         * tree-sra.c (struct access): Removed flag grp_different_types.
16003         (dump_access): Do not dump the removed flag.
16004         (sort_and_splice_var_accesses): Do not set the removed flag.
16005         (sra_modify_expr): Check for type compatibility directly.
16006
16007 2010-01-04  Martin Jambor  <mjambor@suse.cz>
16008
16009         PR tree-optimization/42366
16010         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
16011         edges with variable number of parameters.
16012         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
16013         flag instead of asserting it.
16014         (ipa_read_node_info): Read uses_analysis_done flag.
16015
16016 2010-01-04  Richard Guenther  <rguenther@suse.de>
16017
16018         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
16019         iterative_hash_* as intended.
16020         (vn_reference_compute_hash): Likewise.  Simplify hashing
16021         SSA names.
16022         (vn_reference_lookup_2): Likewise.
16023         (vn_nary_op_compute_hash): Likewise.
16024         (vn_phi_compute_hash): Likewise.
16025         (expressions_equal_p): Remove strange code.
16026         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
16027         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
16028         (bitmap_insert_into_set_1): Take value-id as parameter.
16029         (add_to_value): Pass it.
16030         (bitmap_insert_into_set): Likewise.
16031         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
16032
16033 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
16034
16035         PR driver/42442
16036         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
16037         (do_self_spec): For switches with SWITCH_IGNORE set set also
16038         SWITCH_IGNORE_PERMANENTLY.
16039         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
16040         of SWITCH_IGNORE.
16041
16042 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
16043
16044         * lto-streamer-out.c (output_unreferenced_globals): Output the full
16045         tree of an unreferenced global var.
16046
16047 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16048
16049         PR target/42542
16050         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
16051         GTU to GT for V4SI and V2DI.
16052
16053         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
16054         (umin<mode>3): Removed.
16055         (uminv8hi3): New.
16056         (uminv4si3): Likewise.
16057
16058 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
16059
16060         PR lto/42581
16061         * collect2.c (main): Turn on trace in collect2 if -v is passed
16062         to gcc with LTO.
16063
16064 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
16065
16066         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
16067         description of expression operand.
16068
16069 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
16070
16071         * configure.ac: Add install-html to target_list for Make-hooks.
16072         * configure: Regenerate.
16073         * fortran/Make-lang.in (F95_HTMLFILES): New.
16074         (fortran.html): Use it.
16075         (fortran.install-html): New.
16076         * Makefile.in (install-html): Add lang.install-html.
16077         * java/Make-lang.in (JAVA_HTMLFILES): New.
16078         (java.html): Use it.
16079         (java.install-html): New.
16080         * objc/Make-lang.in (objc.install-html): New.
16081         * objcp/Make-lang.in (obj-c++.install-html): New.
16082         * cp/Make-lang.in (c++.install-html): New.
16083         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
16084         * lto/Make-lang.in (lto.install-html): New.
16085
16086 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16087
16088         PR lto/42520
16089         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
16090
16091 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16092
16093         PR rtl-optimization/41862
16094         * store-motion.c (store_killed_in_insn, compute_store_table,
16095         remove_reachable_equiv_notes, replace_store_insn,
16096         build_store_vectors): Ignore all DEBUG_INSNs.
16097
16098 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
16099
16100         PR lto/41564
16101         * common.opt: Add dumpdir.
16102
16103         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
16104         isn't specified.
16105         (option_map): Add --dumpdir.
16106
16107         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
16108
16109         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
16110
16111         * opts.c (decode_options): Try dump_dir_name first if
16112         dump_base_name isn't an absolute path.
16113         (common_handle_option): Handle OPT_dumpdir.
16114
16115         * toplev.c (dump_dir_name): New.
16116         (print_switch_values): Also ignore -dumpdir.
16117
16118         * toplev.h (dump_dir_name): New.
16119
16120 2010-01-03  Richard Guenther  <rguenther@suse.de>
16121
16122         PR tree-optimization/42589
16123         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
16124         double-word expansion of bswap32.
16125
16126 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
16127
16128         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
16129         with BLOCK_FOR_INSN.
16130         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
16131         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
16132         noce_process_if_block): Likewise.
16133         * gcse.c (compute_local_properties, insert_expr_in_table,
16134         insert_set_in_table, canon_list_insert, find_avail_set,
16135         pre_insert_copy_insn): Likewise.
16136
16137         * basic-block.h (BLOCK_NUM): Move from here...
16138         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
16139
16140 2010-01-03  Richard Guenther  <rguenther@suse.de>
16141
16142         PR tree-optimization/42438
16143         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
16144         contains_may_not_return_call flag.
16145         (BB_MAY_NOTRETURN): New.
16146         (valid_in_sets): Trapping nary operations are not valid
16147         in blocks that may not return.
16148         (insert_into_preds_of_block): Remove check for trapping expressions.
16149         (compute_avail): Compute also BB_MAY_NOTRETURN.
16150
16151 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
16152
16153         * doc/invoke.texi: Add 2010 to copyright years.
16154
16155 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
16156
16157         * config/sparc/sparc.c: Fix formatting nits.
16158
16159 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
16160             Alexander Monakov  <amonakov@ispras.ru>
16161
16162         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
16163
16164 2010-01-02  Richard Guenther  <rguenther@suse.de>
16165
16166         PR middle-end/42577
16167         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
16168         (simplify_switch_using_ranges): Mark to be removed edges
16169         as non-executable.
16170
16171 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16172
16173         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
16174
16175         * collect2.c (scan_libraries): Add missing argument in call to
16176         scan_prog_file.
16177
16178 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
16179
16180         PR target/42448
16181         * config/alpha/predicates.md (aligned_memory_operand): Return false
16182         for CQImode.
16183         (unaligned_memory_operand): Return true for CQImode.
16184         * config/alpha/alpha.c (get_aligned_mem): Assert that location
16185         doesn not cross aligned SImode word boundary.
16186
16187 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
16188
16189         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
16190         Remove.
16191         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
16192         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
16193
16194 2010-01-02  Richard Guenther  <rguenther@suse.de>
16195
16196         PR lto/41597
16197         * toplev.c (compile_file): Emit LTO marker properly.  Change
16198         it to __gnu_lto_v1.
16199         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
16200
16201 2010-01-01  Richard Guenther  <rguenther@suse.de>
16202
16203         PR debug/42455
16204         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
16205
16206 2010-01-01  Richard Guenther  <rguenther@suse.de>
16207
16208         PR c/42570
16209         * c-decl.c (grokdeclarator): For zero-size arrays force
16210         structural equality checks as layout_type does.
16211
16212 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16213
16214         * builtins.c: Update copyright to 2010.
16215
16216 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
16217
16218         PR lto/42531
16219         * lto-streamer-out.c (produce_asm): Revert the last change.
16220         (copy_function): Likewise.
16221
16222         * lto-streamer.c (lto_get_section_name): Skip any leading
16223         asterisk in name.
16224
16225 2010-01-01  Richard Guenther  <rguenther@suse.de>
16226
16227         PR middle-end/42559
16228         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
16229         for LABEL_DECLs.
16230
16231 \f
16232 Copyright (C) 2010 Free Software Foundation, Inc.
16233
16234 Copying and distribution of this file, with or without modification,
16235 are permitted in any medium without royalty provided the copyright
16236 notice and this notice are preserved.