OSDN Git Service

3dd890761dc4619c0ab3f6614fa6734233223738
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
2
3         With large parts from Jim Wilson:
4         PR target/43902
5         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
6         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
7         * optabs.c (optab_for_tree_code): Likewise.
8         (expand_widen_pattern_expr): Likewise.
9         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
10         out of execute_optimize_widening_mul.
11         (convert_plusminus_to_widen): New function.
12         (execute_optimize_widening_mul): Use the two new functions.
13         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
14         Remove code to generate widening multiply-accumulate.  Add support
15         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
16         * gimple-pretty-print.c (dump_ternary_rhs): New function.
17         (dump_gimple_assign): Call it when appropriate.
18         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
19         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
20         (expand_gimple_stmt_1): Likewise.
21         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
22         WIDEN_MULT_MINUS_EXPR.
23         * tree-ssa-operands.c (get_expr_operands): Likewise.
24         * tree-inline.c (estimate_operator_cost): Likewise.
25         * gimple.c (extract_ops_from_tree_1): Renamed from
26         extract_ops_from_tree.  Add new arg for a third operand; fill it.
27         (gimple_build_assign_stat): Support operations with three operands.
28         (gimple_build_assign_with_ops_stat): Likewise.
29         (gimple_assign_set_rhs_from_tree): Likewise.
30         (gimple_assign_set_rhs_with_ops_1): Renamed from
31         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
32         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
33         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
34         WIDEN_MULT_MINUS_EXPR.
35         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
36         (extract_ops_from_tree_1): Adjust declaration.
37         (gimple_assign_set_rhs_with_ops_1): Likewise.
38         (gimple_build_assign_with_ops): Pass NULL for last operand.
39         (gimple_build_assign_with_ops3): New macro.
40         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
41         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
42         functions.
43         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
44         (verify_gimple_assign): Call it.
45         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
46         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
47         functions for dealing with three-operand statements.
48         * tree.c (commutative_ternary_tree_code): New function.
49         * tree.h (commutative_ternary_tree_code): Declare it.
50         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
51         statements.
52         (gimple_assign_nonzero_warnv_p): Likewise.
53         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
54         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
55         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
56         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
57         (struct hashtable_expr): New member ternary in the union.
58         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
59         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
60         (iterative_hash_hashable_expr): Likewise.
61         (print_expr_hash_elt): Handle EXPR_TERNARY.
62         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
63         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
64         statements.  Handle GIMPLE_TERNARY_RHS.
65
66 2010-06-25  Jan Hubicka  <jh@suse.cz>
67
68         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
69
70 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
71
72         PR c/44517
73         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
74         parameters are not good.
75         (c_parser_parameter_declaration): Error unknown type name if the type
76         name can't start declaration specifiers.
77
78 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
79
80         * gcc.c (translate_options): Don't mention +e in comment.
81         (process_command): Don't handle +e specially.
82
83 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
84
85         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
86
87         * ira-build.c (merge_hard_reg_conflicts): New function.
88         (create_cap_allocno, copy_info_to_removed_store_destinations,
89         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
90         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
91         (remove_unnecessary_allocnos, remove_low_level_allocnos)
92         copy_nifo_to_removed_store_destination): Use them.
93         * ira-lives.c (make_hard_regno_born): New function, split out of
94         make_regno_born.
95         (make_allocno_born): Likewise.
96         (make_hard_regno_dead): New function, split out of make_regno_dead.
97         (make_allocno_dead): Likewise.
98         (inc_register_pressure): New function, split out of set_allocno_live.
99         (dec_register_pressure): New function, split out of clear_allocno_live.
100         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
101         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
102         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
103         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
104         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
105         mark_pseudo_regno_live.
106         (process_bb_node_lives): Use mark_pseudo_regno_live,
107         make_hard_regno_born and make_allocno_dead.
108         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
109         set_allocno_live, clear_allocno_live): Delete functions.
110
111         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
112         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
113         functions.
114         (ira_flattening): Use ira_parent_allocno.
115         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
116         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
117
118         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
119         statement.
120
121         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
122         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
123         minmax_set_iter_cond, minmax_set_iter_next,
124         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
125         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
126         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
127         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
128         uses changed.
129
130         * ira-int.h (struct live_range, live_range_t): Renamed from struct
131         ira_allocno_live_range and allocno_live_range_t; all uses changed.
132         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
133         All uses changed.
134
135 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
136
137         * thumb2.md (thumb2_tlobits_cbranch): Delete.
138         (peephole2 to convert zero_extract/compare of single bit to
139          lshift/compare): New.
140
141 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
142
143         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
144         recursive call and call to 'int_const_binop'.
145         (build_range_check, fold_cond_expr_with_comparison, unextend,
146         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
147         multiple_of_p): Adjust call to const_binop.
148
149 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
150
151         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
152         determine size of XFmode operand.
153         (XFmode extended DFmode push splitter): Ditto.
154         (XFmode extended SFmode push splitter): Ditto.
155
156 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
157
158         PR target/44588
159         * config/i386/i386.md (extract_code): New.
160         (<u>divmodqi4): Likewise.
161         (divmodhiqi3): Likewise.
162         (udivmodhiqi3): Likewise.
163         (<u>divqi3): Remvoved.
164
165 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
166
167         PR middle-end/44492
168         * recog.h (struct recog_data): Add is_asm field.
169         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
170         present in constraints of inline-asm operand and memory operand
171         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
172         (extract_insn): Initialize recog_data.is_asm.
173         * doc/md.texi (Constraints): Document operand side-effect rules.
174
175 2010-06-24  Andi Kleen  <ak@linux.intel.com>
176
177         * c-parser.c (c_parser_conditional_expression): Call
178         warn_for_omitted_condop.
179         * doc/invoke.texi: Document omitted condop warning.
180
181 2010-06-24  Nick Clifton<nickc@redhat.com>
182
183         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
184         insn in the sequence is a jump insn before setting its label.
185
186 2010-06-24  Alan Modra  <amodra@gmail.com>
187
188         * collect2.c (main): Match exactly --version and --help.
189
190 2010-06-24  DJ Delorie  <dj@redhat.com>
191
192         * config/m32c/m32c-pragma.c: Don't include rtl.h.
193
194 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
195
196         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
197         using X87MODEF mode iterator.
198         (pushsf splitter): Macroize splitter using P mode iterator.
199         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
200         mode iterator.
201
202         (*movxf_internal): Rename from *movxf_integer.
203         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
204         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
205         (*movdf_internal): Rename from *movdf_integer.
206         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
207         (*movsf_internal): Rename from *movdf_1.
208
209 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
210
211         * coretypes.h: (gimple_seq_node_d, gimple_seq_node)
212         (const_gimple_seq_node): Removed typedefs.
213
214         * gimple.h: (gimple_seq_node_d, gimple_seq_node)
215         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
216
217 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
218
219         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
220         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
221         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
222         and CODE_FOR_vec_extract_lo_v4df.
223
224         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
225         Changed to define_insn_and_split.
226         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
227         (vec_extract_lo_v16hi): Likewise.
228         (vec_extract_lo_v32qi): Likewise.
229         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
230         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
231
232 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
233
234         PR target/44640
235         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
236         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
237         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
238         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
239         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
240
241         PR target/44640
242         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
243
244         PR other/44644
245         * df-core.c (struct df): Rename to df_d.
246         * df.h (struct df): Likewise.
247         * dse.h (struct df): Remove forward declaration.
248         * recog.h (struct insn_data): Rename to:
249         (struct_insn_data_d).  Adjusted all users.
250
251 2010-06-23  Arnaud Charlet  <charlet@adacore.com
252
253         PR ada/22220
254         * doc/install.texi: Update requirements to build GNAT.
255
256 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
257
258         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
259         enum type.
260         (m68k_sched_attr_opx_type): Remove unreachable return.
261         (m68k_sched_attr_opy_type): Likewise.
262         (m68k_sched_attr_size): Likewise.
263         (sched_get_opxy_mem_type): Likewise.
264         (m68k_sched_attr_op_mem): Likewise.
265
266 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
267
268         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
269         new statement and adjust VDEF only if necessary.  Remove superfluous
270         call to maybe_clean_or_replace_eh_stmt.
271         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
272         copy the flags.
273         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
274         * tree-inline.c (copy_bb): ...and not there.
275
276 2010-06-22  Cary Coutant  <ccoutant@google.com>
277
278         * dwarf2out.c (is_nested_in_subprogram): New function.
279         (should_move_die_to_comdat): Use it.
280         (copy_ancestor_tree): Don't mark DIEs here.
281         (copy_decls_walk): Start walk from root of newly-added tree;
282         mark DIEs here instead.
283
284 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
285
286         * config/i386/i386.md (unit): Also check sseishft1.
287
288 2010-06-22  Jan Hubicka  <jh@suse.cz>
289
290         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
291         enabled.
292
293 2010-06-22  Jan Hubicka  <jh@suse.cz>
294
295         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
296         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
297         Return true if something changed.
298         * df.h (df_confluence_function_n): Return bool.
299         * df-core.c (df_worklist_propagate_forward,
300         df_worklist_propagate_backward): Track changes and ages.
301         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
302         track ages.
303         * dse.c (dse_confluence_n): Return always true.
304
305 2010-06-22  Jan Hubicka  <jh@suse.cz>
306
307         * bitmap.c (bitmap_clear_bit): Micro optimize.
308
309 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
310
311         * config/i386/i386.md (SWI1248x): New mode iterator.
312         (SWI48x): Ditto.
313         (SWI12): Ditto.
314         (SWI24): Ditto.
315
316         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
317         SWI1248x mode iterator.
318         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
319         using SWI124 mode iterator.
320         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
321         mode iterator.
322         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
323         *pushdi2_prologue_rex64 using P mode iterator.
324         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
325         using SWI48 mode iterator.
326         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
327         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
328         using SWI1248x mode iterator.
329         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
330         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
331         SWI48 mode iterator.
332         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
333         iterator.
334         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
335         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
336         SWI12 mode iterator.
337         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
338         SWI12 mode iterator.
339         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
340         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
341         SWI24 mode iterator.
342         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
343         SWI48 mode iterator.
344         (mov<mode>_insn_1): New expander.
345         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
346         using SWI48x mode iterator.
347
348         (*movoi_internal_avx): Rename from *movoi_internal.
349         (*movti_internal_rex64): Rename from *movti_rex64.
350         (*movti_internal_sse): Rename from *movti_sse.
351         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
352         (*movdi_internal): Rename from *movdi_2.
353         (*movsi_internal): Rename from *movsi_1.
354         (*movhi_internal): Rename from *movhi_1.
355         (*movqi_internal): Rename from *movqi_1.
356
357         (insv): Update the call to gen_movsi_insv_1 for rename.
358         * config/i386/i386.c (promote_duplicated_reg): Ditto.
359
360 2010-06-22  Jan Hubicka  <jh@suse.cz>
361
362         * passes.c (execute_function_todo): Move call of statistics_fini_pass
363         to ...
364         (execute_todo) ... this one.
365
366 2010-06-22  Alan Modra  <amodra@gmail.com>
367
368         PR target/44364
369         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
370         * caller-save.c (insert_restore, insert_save): Use non-validate
371         form of adjust_address.
372
373 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
374
375         PR target/39690
376         * config/pa/pa.c (override_options): Disable
377         -freorder-blocks-and-partition.
378
379 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
380
381         PR target/44615
382         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
383
384         * config/i386/i386.md (type): Add sseishft1
385
386         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
387         (ppro_insn_load): Likewise.
388         (ppro_insn_store): Likewise.
389         (ppro_insn_both): Likewise.
390
391         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
392         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
393         for type.
394         (*vec_extractv2di_1_avx): Likewise.
395         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
396         type.  Remove atom_unit.
397         (*vec_extractv2di_1_sse2): Likewise.
398
399 2010-06-21  DJ Delorie  <dj@redhat.com>
400
401         * diagnostic.h (diagnostic_classification_change_t): New.
402         (diagnostic_context): Add history and push/pop list.
403         (diagnostic_push_diagnostics): Declare.
404         (diagnostic_pop_diagnostics): Declare.
405         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
406         from pragmas in a history chain instead of the global table.
407         (diagnostic_push_diagnostics): New.
408         (diagnostic_pop_diagnostics): New.
409         (diagnostic_report_diagnostic): Scan history chain to find state
410         of diagnostics as of the diagnostic location.
411         * opts.c (set_option): Pass UNKNOWN_LOCATION to
412         diagnostic_classify_diagnostic.
413         (enable_warning_as_error): Likewise.
414         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
415         use in the history chain.
416         * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop,
417         allow these pragmas anywhere.
418         * doc/extend.texi: Document pragma GCC diagnostic changes.
419
420 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
421
422         * dwarf2out.c (add_linkage_name): New function.  Don't add
423         anything to DW_TAG_member DIEs.
424         (add_name_and_src_coords_attributes): Use it.
425         (gen_variable_die): Call it for C++ static data members if
426         specification is DW_TAG_member.
427
428         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
429         C++ char16_t and char32_t.
430
431         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
432         * genattrtab.c: Include vecprim.h.
433         (cached_attrs, cached_attr_count, attrs_seen_once,
434         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
435         attrs_cached_after): New variables.
436         (find_attrs_to_cache): New function.
437         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
438         (write_test_expr): Add attrs_cached argument, return it too,
439         attempt to cache non-const attributes used more than once in
440         a single case handling.
441         (write_attr_get): Use find_attrs_to_cache, for caching candidates
442         emit cached_* variables.  Adjust write_attr_set callers.
443         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
444         to find attributes that should be cached in this block.  Adjust
445         write_test_expr callers.
446         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
447         callers.
448         (make_automaton_attrs): Adjust write_test_expr caller.
449
450         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
451         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
452         (make_automaton_attrs): If find_tune_attr returns non-NULL,
453         write separate internal_dfa_insn_code_* and insn_default_latency_*
454         functions for each attribute's value and emit init_sched_attrs
455         function and function pointers.
456         * genattr.c (const_attrs, reservations): New variables.
457         (gen_attr): Add const attributes to const_attrs vector.
458         (check_tune_attr, find_tune_attr): New functions.
459         (main): Add reservations to reservations vector.  If find_tune_attr
460         returns true, add prototype for init_sched_attrs and make
461         internal_dfa_insn_code and insn_default_latency function pointers,
462         otherwise define init_sched_attrs as dummy macro.
463         * cfgexpand.c: Include insn-attr.h.
464         (gimple_expand_cfg): Call init_sched_attrs.
465
466         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
467
468         PR target/44575
469         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
470         va_arg from a set of register save slots into a temporary,
471         if the container is bigger than type size, do the copying
472         using smaller mode or using memcpy.
473
474         PR bootstrap/44426
475         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
476         prototype.
477         (sel_print_to_dot): Remove macro.
478         (sel_print): Likewise.  New prototype.
479         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
480         (sel_print): New function.
481
482 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
483
484         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
485         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
486
487 2010-06-21  Nick Clifton  <nickc@redhat.com>
488
489         * config/rx/rx.h (PTRDIFF_TYPE): Define.
490         (SMALL_REGISTER_CLASS): Define (to zero).
491         (PRINT_OPERAND): Delete.
492         (PRINT_OPERAND_ADDRESS): Delete.
493         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
494         (rx_print_operand_address): Delete prototype.
495         * config/rx/rx.c (rx_print_operand): Make static.
496         Allow %H and %L to handle CONST_DOUBLEs.
497         (rx_print_operand_address): Make static.
498         (rx_gen_move_template): Rename local variable 'template' to
499         out_template.
500         (rx_function_arg): Do not pass unknown sized objects in registers.
501         (TARGET_PRINT_OPERAND): Define.
502         (TARGET_PRINT_OPERAND_ADDRESS): Define.
503
504 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
505
506         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
507
508 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
509
510         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
511         stack-alignment for simple leaf-functions.
512
513 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
514
515         * doc/install.texi: Document bootstrap-lto.
516
517 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
518
519         PR debug/44248
520         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
521         (input_function): Drop them here, if VTA is disabled.
522
523 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
524
525         PR target/44546
526         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
527         New predicate.
528         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
529         ix86_swapped_fp_comparsion_operator instead of
530         ix86_fp_comparison_operator.
531
532         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
533         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
534         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
535         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
536         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
537         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
538
539 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
540
541         PR other/32998
542         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
543         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
544         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
545         (decode_cmdline_option): Update for this return value.  Set
546         orig_option_with_args_text field.  Set arg field for unknown
547         options.  Make static.
548         (decode_cmdline_options_to_array): New.
549         (prune_options): Update handling of find_opt return value.
550         * opts.c (read_cmdline_option): Take decoded option.  Return void.
551         (read_cmdline_options): Take decoded options.
552         (decode_options): Add parameters for decoded options.  Use
553         decode_cmdline_options_to_array.  Use decoded options for -O
554         scan.  Use integral_argument for -O parameters.  Update call to
555         read_cmdline_options.
556         (enable_warning_as_error): Update handling of find_opt return value.
557         * opts.h: Update comment on unknown options.
558         (struct cl_decoded_option): Update comments on opt_index and arg.
559         Add orig_option_with_args_text.
560         (decode_cmdline_option): Remove.
561         (decode_cmdline_options_to_array): Declare.
562         (decode_options): Update prototype.
563         * toplev.c (save_argv): Remove.
564         (save_decoded_options, save_decoded_options_count): New.
565         (read_integral_parameter): Remove.
566         (print_switch_values): Use decoded options.
567         (toplev_main): Don't set save_argv.  Update call to decode_options.
568         * toplev.h (read_integral_parameter): Remove.
569         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
570
571 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
572
573         PR target/44072
574         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
575         immediate.
576         * constraints.md (Pw, Px): New constraints.
577         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
578
579 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
580
581         * config/i386/sse.md (fma4modesuffixf4): Removed.
582         (ssemodesuffixf2s): Likewise.
583         (ssemodesuffixf4): Likewise.
584         (ssemodesuffixf2c): Likewise.
585         (ssescalarmodesuffix2s): Likewise.
586         (avxmodesuffixf2c): Likewise.
587         (ssemodesuffix): New.
588         (ssescalarmodesuffix): Likewise.
589         Update patterns with ssemodesuffix and ssescalarmodesuffix.
590
591 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
592
593         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
594
595 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
596
597         * stor-layout.c (debug_rli): Remove unused local variables.
598
599 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
600
601         PR rtl-optimization/40900
602         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
603         original expression for later reuse.
604         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
605         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
606
607 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
608
609         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
610         double_int_fits_in_uhwi_p): Implement as static inline.
611         (double_int_xor): New inline function.
612         (double_int_lrotate, double_int_rrotate, double_int_max,
613         double_int_umax, double_int_smax, double_int_min, double_int_umin,
614         double_int_smin): Declare.
615         (lrotate_double, rrotate_double): Remove declaration.
616         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
617         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
618         (double_int_lrotate, double_int_rrotate, double_int_max,
619         double_int_umax, double_int_smax, double_int_min, double_int_umin,
620         double_int_smin): New function.
621         * fold-const.c (int_const_binop): Clean up, use double_int_*
622         functions.
623         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
624         double_int_* and immed_double_int_const functions.
625
626 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
627
628         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
629         * function.c (types_used_by_cur_var_decl): Likewise.
630         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
631
632 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
633
634         * tree.h (record_layout_info): Change type of pending_statics field
635         to a VEC.
636         * stor-layout.c (start_record_layout): Store NULL into
637         pending_statics.
638         (debug_rli): Call debug_vec_tree instead of debug_tree.
639         (place_field): Likewise.
640         (finish_record_layout): Likewise.
641
642 2010-06-18  Alan Modra  <amodra@gmail.com>
643
644         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
645
646 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
647
648         PR target/43740
649         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
650         for SET source operand from SET destination operand.
651
652 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
653
654         PR rtl-optimization/39871
655         * reload1.c (init_eliminable_invariants): For flag_pic, disable
656         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
657         (function_invariant_p): Rule out a plus of frame or arg pointer with
658         a SYMBOL_REF.
659         * ira.c (find_reg_equiv_invariant_const): Likewise.
660
661 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
662
663         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
664         print_operand_address and puts to output the operand for CONST.
665
666 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
667
668         PR debug/44572
669         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
670         hook.
671
672 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
673
674         * v850-protos.h (print_operand): Delete.
675         (print_operand_address): Delete.
676         * v850.h (PRINT_OPERAND): Delete.
677         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
678         (PRINT_OPERAND_ADDRESS): Delete.
679         * v850.c (print_operand_address): Rename to...
680         (v850_print_operand_address): ...this.  Make static. Call
681         v850_print_operand.
682         (print_operand): Rename to...
683         (v850_print_operand): ...this.  Make static.  Call
684         v850_print_operand_address.
685         (v850_print_operand_punct_valid_p): New function.
686         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
687         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
688
689 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
690
691         * config/sh/sh-protos.h (print_operand): Delete.
692         (print_operand_address): Delete.
693         * config/sh/sh.h (PRINT_OPERAND): Delete.
694         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
695         (PRINT_OPERAND_ADDRESS): Delete.
696         * config/sh/sh.c (sh_print_operand_address): Make static.
697         (sh_print_operand): Make static.  Call sh_print_operand_address
698         and sh_print_operand.
699         (sh_print_operand_punct_valid_p): New function.
700         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
701         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
702
703 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
704
705         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
706         (mcore_print_operand_address): Delete.
707         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
708         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
709         (PRINT_OPERAND_ADDRESS): Delete.
710         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
711         (mcore_print_operand): Make static.
712         (mcore_print_operand_punct_valid_p): New function.
713         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
714         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
715
716 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
717
718         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
719         (print_operand_address): Delete.
720         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
721         (PRINT_OPERAND_ADDRESS): Delete.
722         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
723         static.
724         (m68hc11_print_operand): Make static.
725         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
726
727 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
728
729         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
730         (m32r_print_operand_address): Delete.
731         * config/m32r/m32r.h (m32r_punct_chars): Delete.
732         (PRINT_OPERAND): Delete.
733         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
734         (PRINT_OPERAND_ADDRESS): Delete.
735         * config/m32r/m32r.c (m32r_punct_chars): Make static.
736         (m32r_print_operand_address): Make static.
737         (m32r_print_operand): Make static.
738         (m32r_print_operand_punct_valid_p): New function.
739         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
740         (TARGET_PRINT_OPERAND_ADDRESS): Define.
741
742 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
743
744         * config/iq2000/iq2000-protos.h (print_operand): Delete.
745         (print_operand_address): Delete.
746         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
747         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
748         (PRINT_OPERAND_ADDRESS): Delete.
749         (iq2000_print_operand_punct): Delete.
750         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
751         (iq2000_print_operand_address): Make static.
752         (iq2000_print_operand): Make static.
753         (iq2000_print_operand_punct_valid_p): New function.
754         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
755         (TARGET_PRINT_OPERAND_ADDRESS): Define.
756
757 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
758
759         * config/frv/frv-protos.h (frv_print_operand): Delete.
760         (frv_print_operand_address): Delete.
761         * config/frv/frv.h (PRINT_OPERAND): Delete.
762         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
763         (PRINT_OPERAND_ADDRESS): Delete.
764         * config/frv/frv.c (frv_print_operand_address): Make static.
765         (frv_print_operand): Make static.
766         (frv_print_operand_punct_valid_p): New function.
767         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
768         (TARGET_PRINT_OPERAND_ADDRESS): Define.
769
770 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
771
772         * tree.h (vec_member): Declare.
773         * tree.c (vec_member): Define.
774
775 2010-06-17  Richard Guenther  <rguenther@suse.de>
776
777         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
778         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
779
780 2010-06-17  Richard Guenther  <rguenther@suse.de>
781
782         * tree-inline.c (declare_return_variable): Remove bogus code.
783
784 2010-06-17  Richard Guenther  <rguenther@suse.de>
785
786         * gimplify.c (gimplify_bind_expr): Always promote complex
787         and vector variables to registers if possible.
788
789 2010-06-17  Richard Guenther  <rguenther@suse.de>
790
791         * expr.c (get_inner_reference): Use double_int for bit_offset
792         calculation.
793
794 2010-06-16  DJ Delorie  <dj@redhat.com>
795
796         * common.opt (-fstrict-volatile-bitfields): new.
797         * doc/invoke.texi: Document it.
798         * fold-const.c (optimize_bit_field_compare): For volatile
799         bitfields, use the field's type to determine the mode, not the
800         field's size.
801         * expr.c (expand_assignment): Likewise.
802         (get_inner_reference): Likewise.
803         (expand_expr_real_1): Likewise.
804         * expmed.c (store_fixed_bit_field): Likewise.
805         (extract_bit_field_1): Likewise.
806         (extract_fixed_bit_field): Likewise.
807
808 2010-06-16  Richard Guenther  <rguenther@suse.de>
809
810         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
811
812 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
813
814         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
815         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
816         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
817         * debug.c: Likewise.
818         * sdbout.c: Likewise.
819         * vmsdbgout.c: Likewise.
820         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
821         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
822         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
823         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
824         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
825         * dwarf2out.c (dw_fde_struct): New fields
826         dw_fde_vms_{end,begin}_prologue.
827         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
828         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
829         (dwarf2out_vms_end_prologue): New function.
830         (dwarf2out_vms_begin_epilogue): New function.
831         (dw_val_struct): New value dw_val_class_vms_delta.
832         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
833         begin_epilogue for VMS.
834         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
835         new static functions.
836         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
837         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
838         static functions.
839         (print_die): New case dw_val_class_vms_delta.
840         (attr_checksum): Likewise.
841         (same_dw_val_p: Likewise.
842         (size_of_die): Likewise.
843         (value_format): Likewise.
844         (output_die): Likewise.
845         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
846         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
847         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
848         dwarf2out_cfi_begin_epilogue
849         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
850
851 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
852
853         * config/cris/cris-protos.h (cris_print_operand): Delete.
854         (cris_print_operand_address): Delete.
855         * config/cris/cris.h (PRINT_OPERAND): Delete.
856         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
857         (PRINT_OPERAND_ADDRESS): Delete.
858         * config/cris/cris.c (cris_print_operand_address): Make static.
859         (cris_print_operand): Make static.
860         (cris_print_operand_punct_valid_p): New function.
861         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
862         (TARGET_PRINT_OPERAND_ADDRESS): Define.
863
864 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
865
866         * config/arm/arm-protos.h (arm_print_operand): Delete.
867         (arm_print_operand_address): Delete.
868         * config/arm/arm.h (PRINT_OPERAND): Delete.
869         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
870         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
871         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
872         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
873         (arm_print_operand): Make static.
874         (arm_print_operand_punct_valid_p): New function.
875         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
876         (TARGET_PRINT_OPERAND_ADDRESS): Define.
877
878 2010-06-16  Nick Clifton  <nickc@redhat.com>
879
880         * config/rx/constraints.md (NEGint4): New constraint.
881         * config/rx/rx.md (attr cc): Add set_zsc.
882         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
883         initialised.
884         (cmpsf): Likewise.
885         (call_internal): Clobber the cc0 register.
886         (call_value_internal): Likewise.
887         (cstoresi4): Likewise.
888         (movsieq): Likewise.
889         (movsine): Likewise.
890         (addsi3): Add alternative to handle small negative constants.
891         (sunsi3): Likewise.
892         (addsi3): Do not set the O bit in the cc0 register.
893         (adddi3): Likewise.
894         (subsi3): Likewise.
895         (subdi3): Likewise.
896         (andsi3): Reorder alternatives to prefer shorter forms.
897         (mulsi3): Likewise.
898         (iorsi3): Likewise.
899         (negsi2): Note that the cc0 flags are set.
900         (rotlsi3): Note that only the Z and S bits are set in cc0.
901         (lshrsi3): Likewise.
902         (ashlsi3): Likewise.
903         (subsf3): Use %Q for the MEM operand.
904         (fix_truncsfsi2): Likewise.
905         (floatsisf2): Likewise.
906         (bitset): Remove early clobber from destination.
907         (bitset_in_memory): Likewise.
908         (lrintsf2): Clobber the cc0 register.
909         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
910         (rx_print_operand): Handle %N.
911
912 2010-06-16  Jan Hubicka  <jh@suse.cz>
913
914         * df-core.c (df_compact_blocks): Free problem_temps vector.
915
916 2010-06-16  Martin Jambor  <mjambor@suse.cz>
917
918         PR tree-optimization/43905
919         * tree-sra.c: Include tree-inline.h.
920         (create_abstract_origin): Removed.
921         (modify_function): Version the call graph node instead of creating
922         abstract origins and dealing with same_body aliases.
923         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
924         function is versionable.
925         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
926
927 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
928
929         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
930         (CHOOSE_DYNAMIC_LINKER): Update.
931
932 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
933
934         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
935         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
936         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
937         *prefetch_3dnow_rex.
938
939 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
940
941         * target.h (struct asm_out):Add declare_constant_name field.
942         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
943         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
944         * output.h (default_asm_declare_constant_name): Declare.
945         (assemble_label): Update prototype.
946         * varasm.c (assemble_constant_contents): Use
947         targetm.asm_out.declare_constant_name target hook.
948         (assemble_label): Add 'file' argument.
949         (default_asm_declare_constant_name): New function.
950         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
951         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
952         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
953
954         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
955         * config/darwin.c (darwin_asm_declare_constant_name): New function.
956         (machopic_output_indirection): Update assemble_label argument list.
957         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
958         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
959
960 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
961
962         PR middle-end/44391
963         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
964         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
965
966 2010-06-15  Richard Guenther  <rguenther@suse.de>
967
968         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
969
970 2010-06-15  Paul Brook  <paul@codesourcery.com>
971
972         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
973         hard-float ABI.
974
975 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
976
977         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
978         don't get a vector type for output.
979
980 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
981
982         PR fortran/44536
983         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
984         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
985         (LANG_HOOKS_DECLS): Add it.
986         * gimplify.c (omp_notice_variable): Call
987         lang_hooks.decls.omp_report_decl.
988
989 2010-06-15  Martin Jambor  <mjambor@suse.cz>
990
991         PR lto/44464
992         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
993         on the newly dead SSA name.
994
995 2010-06-15  Alan Modra  <amodra@gmail.com>
996
997         * doc/invoke.texi: Add mcmodel to powerpc options.
998         * configure.ac: Add HAVE_LD_LARGE_TOC test.
999         * configure: Regenerate.
1000         * config.in: Regenerate.
1001         * config/rs6000/linux64.opt (mcmodel): New.
1002         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
1003         (TARGET_CMODEL, SET_CMODEL): Define.
1004         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
1005         select CMODEL_MEDIUM default.
1006         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
1007         (TARGET_CMODEL): Define default.
1008         * config/rs6000/rs6000.c (cmodel): New variable.
1009         (rs6000_explicit_options): Add cmodel field.
1010         (rs6000_handle_option): Handle -mcmodel.
1011         (create_TOC_reference): Add largetoc_reg param.  Generate high,
1012         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
1013         (rs6000_delegitimize_address): Recognise new toc reference rtl
1014         and minimal-toc rtl.
1015         (rs6000_legitimize_reload_address): Handle new toc references.
1016         (print_operand_address): Handle legitimate_constant_pool_address_p
1017         match before lo_sum.
1018         (rs6000_eliminate_indexed_memrefs): Tidy.
1019         (rs6000_emit_move): Tweak threshold for inlining constants.
1020         Keep rs6000_emit_allocate_stack large stack frame offsets
1021         loaded into r0 inline.
1022         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
1023         (tocrel_base, tocrel_offset): New variables.
1024         (toc_relative_expr_p): Set them here.
1025         (print_operand_address): Skip over any offset on constant pool address.
1026         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
1027         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
1028         (offsettable_ok_by_alignment): New function.
1029         (rs6000_emit_move): Address suitably aligned local symbol_refs
1030         relative to the toc pointer for -mcmodel=medium.
1031         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
1032         strict param.  Allow lo_sum version of addressing.  Verify reg
1033         used for -mminimal-toc and -mcmodel != small.  Update all callers.
1034         * config/rs6000/constraints.md: Update for above change.
1035         * config/rs6000/predicates.md: Likewise.
1036         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
1037         code.
1038         (tls_gd): Split for -mcmodel=medium/large.
1039         (tls_gd_high, tls_gd_low): New.
1040         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
1041         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
1042         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
1043         (largetoc_high, largetoc_low): New.
1044         (cmptf_internal2): Add clobber.
1045         * config/rs6000/rs6000-protos.h: Update.
1046
1047 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
1048
1049         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
1050         true if no prefetch is going to be generated for a given group.
1051         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
1052         estimate the prefetch_count.
1053         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
1054         prefetch count by considering the unroll_factor and prefetch_mod
1055         for is_loop_prefetching_profitable.
1056
1057 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
1058
1059         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
1060         anything if the argument is not a MEM.
1061
1062 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1063
1064         PR debug/43650
1065         PR debug/44181
1066         PR debug/44247
1067         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
1068         debug stmts.
1069         (canonicalize_loop_ivs): Likewise.
1070
1071 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
1072
1073         PR debug/43656
1074         * haifa-sched.c (setup_insn_reg_pressure_info,
1075         update_register_pressure): Reject debug insns.
1076         (ready_sort): Don't setup reg pressure for debug insns.
1077         (schedule_insn): Don't update reg pressure for debug insns.
1078
1079 2010-06-14  Richard Guenther  <rguenther@suse.de>
1080
1081         * lto-streamer.c (cached_bp): Remove.
1082         (bitpack_delete): Likewise.
1083         (bitpack_create): Likewise.
1084         (bp_get_next_word): Likewise.
1085         (bp_pack_value, bp_unpack_value): Move ...
1086         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
1087         Re-implement.
1088         (struct bitpack_d): Likewise.
1089         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
1090         New inline functions.
1091         * lto-streamer-out.c (lto_output_bitpack): Remove.
1092         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1093         (pack_value_fields): Adjust.
1094         (lto_write_tree): Likewise.
1095         (output_gimple_stmt): Likewise.
1096         (output_function): Likewise.
1097         * lto-streamer-in.c (input_gimple_stmt): Adjust.
1098         (input_function): Likewise.
1099         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
1100         (lto_input_bitpack): Remove.
1101         (lto_materialize_tree): Adjust.
1102         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
1103         * lto-cgraph.c (lto_output_edge): Adjust.
1104         (lto_output_node): Likewise.
1105         (lto_output_varpool_node): Likewise.
1106         (lto_output_ref): Likewise.
1107         (input_node): Likewise.
1108         (input_varpool_node): Likewise.
1109         (input_ref): Likewise.
1110         (input_edge): Likewise.
1111         (output_node_opt_summary): Likewise.
1112         (input_node_opt_summary): Likewise.
1113         * ipa-pure-const.c (pure_const_write_summary): Likewise.
1114         (pure_const_read_summary): Likewise.
1115         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
1116         (ipa_read_indirect_edge_info): Likewise.
1117         (ipa_write_node_info): Likewise.
1118         (ipa_read_node_info): Likewise.
1119
1120 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
1121
1122         PR target/44534
1123         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
1124         (vec_extract_lo_v16hi): Likewise.
1125         (vec_extract_lo_v32qi): Likewise.
1126
1127 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1128
1129         PR bootstrap/44426
1130         * tree.h (build_call_expr): Don't define as vararg macro, instead
1131         add a prototype.
1132         * builtins.c (build_call_nofold): Remove.
1133         (expand_builtin_int_roundingfn, expand_builtin_pow,
1134         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
1135         expand_builtin_memset_args, expand_builtin_strcmp,
1136         expand_builtin_strncmp, expand_builtin_memory_chk): Use
1137         build_call_nofold_loc instead of build_call_nofold.
1138         (build_call_expr): New function.
1139
1140         PR tree-optimization/44508
1141         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
1142         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
1143         don't eliminate trivially dead stmts.
1144         * tree-vrp.c (vrp_finalize): Pass false as last argument
1145         to substitute_and_fold.
1146         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
1147         to substitute_and_fold.
1148         * tree-ssa-ccp.c (ccp_finalize): Likewise.
1149
1150         PR bootstrap/44509
1151         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
1152         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
1153         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
1154         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
1155         ggc_strdup instead of xstrdup.
1156
1157 2010-06-14  Ira Rosen  <irar@il.ibm.com>
1158
1159         PR tree-optimization/44507
1160         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
1161         to build initial vector for BIT_AND_EXPR.
1162         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1163
1164 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
1165
1166         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
1167         adjust z10prop set_attr.
1168
1169 2010-06-13  Jan Hubicka  <jh@suse.cz>
1170
1171         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
1172         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
1173         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
1174         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
1175         datastructure checks into checking asserts.
1176         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
1177         * tree-ssa-sccvn.c (VN_INFO): Likewise.
1178         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
1179         df_ref_create_structure): Likewise.
1180         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
1181         pool_free): Use gcc_checking_assert.
1182         * alias.c (get_alias_set): Likewise.
1183         * var-tracking.c (variable_htab_free, shared_hash_copy,
1184         canonicalize_values_mark, variable_merge_over_cur): Likewise.
1185         * lto-streamer.c (bp_unpack_value): Likewise.
1186
1187 2010-06-13  Richard Guenther  <rguenther@suse.de>
1188
1189         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
1190         Do not stream but initialize TYPE_CANONICAL to NULL.
1191         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
1192         * gimple.c (gimple_types_compatible_p): Disregard
1193         TYPE_STRUCTURAL_EQUALITY_P.
1194         (gimple_register_type): Use TYPE_CANONICAL as cache.
1195         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
1196         before registering common types.
1197         * config/i386/i386.c (ix86_function_arg_boundary): Do not
1198         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
1199         * tree.h (TYPE_CANONICAL): Clarify documentation.
1200
1201 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
1202
1203         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1204         LIBCALL_VALUE): Remove macros.
1205         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
1206         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1207         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1208         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
1209         (ia64_function_value): Make static. Handle receiving the function
1210         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
1211
1212 2010-06-12  Jan Hubicka  <jh@suse.cz>
1213
1214         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
1215         at correct place.
1216
1217 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
1218
1219         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
1220
1221 2010-06-12  Jan Hubicka  <jh@suse.cz>
1222
1223         * df-core.c (df_clear_bb_info): New function.
1224         (df_set_blocks): bb_info is always allocated.
1225         (df_get_bb_info): Use block_info_elt_size.
1226         (df_set_bb_info): Likewise.
1227         (df_compact_blocks): Update for new block_info.
1228         (grow_bb_info): New function.
1229         * df-problems.c (df_grow_bb_info): Move to df-core.c
1230         (df_rd_set_bb_info): Remove.
1231         (df_rd_free_bb_info): Do not free block pool.
1232         (df_rd_alloc): Do not create pool, use check for
1233         obstack presence instead of NULL pointer for new blocks.
1234         (df_rd_free): DO not free alloc pool; clear block_info.
1235         (problem_RD): Add size of block info structure.
1236         (df_lr_set_bb_info): Remove.
1237         (df_lr_free_bb_info): Do not free block pool.
1238         (df_lr_alloc): Do not create pool, use check for
1239         obstack presence instead of NULL pointer for new blocks.
1240         (df_lr_free): DO not free alloc pool; clear block_info.
1241         (problem_LR): Add size of block info structure.
1242         (df_live_set_bb_info): Remove.
1243         (df_live_free_bb_info): Do not free block pool.
1244         (df_live_alloc): Do not create pool, use check for
1245         obstack presence instead of NULL pointer for new blocks.
1246         (df_live_free): DO not free alloc pool; clear block_info.
1247         (problem_LIVE): Add size of block info structure.
1248         (problem_CHAIN): Add size of block info structure.
1249         (df_byte_lr_set_bb_info): Remove.
1250         (df_byte_lr_free_bb_info): Do not free block pool.
1251         (df_byte_lr_alloc): Do not create pool, use check for
1252         obstack presence instead of NULL pointer for new blocks.
1253         (df_byte_lr_free): DO not free alloc pool; clear block_info.
1254         (problem_BYTE_LR): Add size of block info structure.
1255         (problem_NOTE): Add size of block info structure.
1256         (df_byte_MD_set_bb_info): Remove.
1257         (df_byte_MD_free_bb_info): Do not free block pool.
1258         (df_byte_MD_alloc): Do not create pool, use check for
1259         obstack presence instead of NULL pointer for new blocks.
1260         (df_byte_MD_free): DO not free alloc pool; clear block_info.
1261         (problem_BD): Add size of block info structure.
1262         * df-scan.c (df_scan_free_internal): Free block pool.
1263         (df_scan_set_bb_info): Remove.
1264         (df_scan_free_bb_info): Check for artificial_defs instead
1265         of bb_info being non-NULL.
1266         (df_scan_alloc): DO not create df_scan_block pool.
1267         (problem_SCAN): Set size of block info.
1268         (df_bb_refs_record): Do not allocate bb_info.
1269         * df.h (df_problem): Add block_info_elt_size.
1270         (struct dataflow): Change block_info to void *.
1271         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
1272         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
1273         in-line structures.
1274
1275 2010-06-12  Jan Hubicka  <jh@suse.cz>
1276
1277         PR tree-optimize/44485
1278         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
1279         containing use of return value of noreturn function.
1280
1281 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
1282
1283         * targhooks.c (default_function_value): Don't use
1284         FUNCTION_OUTGOING_VALUE.
1285         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
1286         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
1287
1288 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
1289
1290         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
1291         Add crtfastmath.o to extra_parts.
1292         * config/mips/crtfastmath.c: New.
1293         * config/mips/linux.h (ENDFILE_SPEC): New.
1294
1295 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
1296
1297         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
1298         old_type in parameter.
1299         (gcc_type_for_value): Update call to gcc_type_for_interval.
1300         (compute_type_for_level_1): Renamed compute_type_for_level.
1301         Update call to gcc_type_for_interval.
1302
1303 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1304
1305         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
1306         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
1307
1308 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
1309
1310         * opts-common.c: Include options.h.
1311         (integral_argument): Move from opts.c.
1312         (decode_cmdline_option): New.  Based on read_cmdline_option.
1313         * opts.c (integral_argument): Move to opts-common.c.
1314         (read_cmdline_option): Move most contents to
1315         decode_cmdline_option.  Use %qs in diagnostics.
1316         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
1317         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
1318         decode_cmdline_option): New.
1319
1320 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1321
1322         PR target/44481
1323         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
1324         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
1325         (partiysi2_cmp): Ditto.
1326         (*partiyhi2_cmp): Ditto.
1327         (*parityqi2_cmp): Remove.
1328
1329 2010-06-11  Jan Hubicka  <jh@suse.cz>
1330
1331         * bitmap.h (bmp_iter_next_bit): New.
1332         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
1333
1334 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
1335             Eric Botcazou  <ebotcazou@adacore.com>
1336
1337         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
1338         computed cost.
1339
1340 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1341
1342         * config/i386/i386.md (unspec): New define_c_enum.
1343         (unspecv): Ditto.
1344
1345 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
1346
1347         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
1348         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
1349         (lazy_hex_fp_value): New function.
1350         (builtin_define_with_hex_fp_value): Provide definitions lazily.
1351         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
1352
1353 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
1354
1355         PR middle-end/44483
1356         * tree-if-conv.c (bb_predicate_s): New struct.
1357         (bb_predicate_p): New.
1358         (bb_has_predicate): New.
1359         (bb_predicate): New.
1360         (set_bb_predicate): New.
1361         (bb_predicate_gimplified_stmts): New.
1362         (set_bb_predicate_gimplified_stmts): New.
1363         (add_bb_predicate_gimplified_stmts): New.
1364         (init_bb_predicate): New.
1365         (free_bb_predicate): New.
1366         (is_predicated): Use bb_predicate.
1367         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
1368         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
1369         before processing their successors.
1370         (clean_predicate_lists): Removed.
1371         (find_phi_replacement_condition): Use bb_predicate.
1372         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
1373         computations.
1374         (insert_gimplified_predicates): New.
1375         (combine_blocks): Call insert_gimplified_predicates.
1376         (tree_if_conversion): Call free_bb_predicate instead of
1377         clean_predicate_lists.
1378
1379 2010-10-11  Paul Brook  <paul@codesourcery.com>
1380
1381         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
1382         * config/arm/arm.c (all_architectures): Change v7e-m default to
1383         cortexm4.
1384         * config/arm/arm-cores.def: Add cortex-m4.
1385         * config/arm/arm-tune.md: Regenerate.
1386
1387 2010-06-11  Jan Hubicka  <jh@suse.cz>
1388
1389         * ipa-pure-const.c (special_builtlin_state): New function.
1390         (check_call): Use it instead of special casign BUILT_IN_RETURN.
1391         (propagate_pure_const): Use it.
1392
1393 2010-06-11  Jan Hubicka  <jh@suse.cz>
1394
1395         * df-problems.c (df_live_scratch): Convert to bitmap_head.
1396         (df_live_alloc): Initialize df_live_scratch when initializing
1397         problem_data.
1398         (df_live_transfer_function): Update uses of df_live_scratch.
1399         (df_live_free): Free problem_data; clear df_live_scratch before
1400         releasing the obstack.
1401         (df_md_free): Free problem data.
1402
1403 2010-06-11  Jan Hubicka  <jh@suse.cz>
1404
1405         * doc/invoke.texi (Wsuggest-attribute): Document.
1406         (Wmissing-noreturn): Remove.
1407         * ipa-pure-const.c (warn_function_noreturn): New function.
1408         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
1409         warn_missing_noreturn.
1410         * common.opt (Wsuggest-attribute=noreturn): New.
1411         * tree-flow.h (warn_function_noreturn): Declare.
1412         * tree-cfg.c (execute_warn_function_noreturn): Use
1413         warn_function_noreturn.
1414         (gate_warn_function_noreturn): New.
1415         (pass_warn_function_noreturn): Update.
1416
1417 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1418
1419         * c-typeck.c (handle_warn_cast_qual): Add loc
1420         parameter. Improve warning message.
1421         (build_c_cast): Pass location to handle_warn_cast_qual.
1422
1423 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
1424
1425         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
1426         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
1427         insn mnemonic.
1428         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
1429
1430 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
1431
1432         Fix bootstap on mips
1433         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
1434         be naming typedefs.
1435
1436 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
1437
1438         * system.h (helper_const_non_const_cast): New inline for
1439         gcc version <= 4.0.
1440         (CONST_CAST2): For gcc version <= 4.0 use
1441         new helper to do const/non-const casting.
1442
1443 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1444
1445         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
1446         * Makefile.in (OBJS-common): Include insn-enums.o.
1447         (insn-enums.o): New rule.
1448         (simple_generated_c): Add insn-enums.c.
1449         (build/genenums.o): New rule.
1450         (genprogmd): Add "enums".
1451         * genconstants.c (print_enum_type): Declare a C string array
1452         for each enum.
1453         * genenums.c: New file.
1454         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
1455         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
1456         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
1457
1458 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1459
1460         * doc/md.texi (define_enum_attr): Document.
1461         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
1462         * read-md.h (lookup_enum_type): Declare.
1463         * read-md.c (lookup_enum_type): New function.
1464         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
1465         * genattrtab.c (attr_desc): Add an enum_name field.
1466         (evaluate_eq_attr): Take the associated attribute as argument.
1467         Get the enum prefix from the enum_name field, if defined.
1468         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
1469         (simplify_test_exp): Pass attr to evaluate_eq_attr.
1470         (add_attr_value): New function, split out from...
1471         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
1472         (write_test_expr): Pass attr to evaluate_eq_attr.
1473         (write_attr_get): Use the enum_name as the enum tag, if defined.
1474         (write_attr_valueq): Use the enum_name as a prefix, if defined.
1475         (find_attr): Initialize enum_name.
1476         (main): Handle DEFINE_ENUM_ATTR.
1477         * gensupport.c (process_rtx): Likewise.
1478         * config/mips/mips.h (mips_tune_attr): Delete.
1479         * config/mips/mips.md (cpu): Use define_attr_enum.
1480
1481 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1482
1483         * doc/md.texi (define_c_enum, define_enum): Document.
1484         * read-md.h (md_constant): Add a parent_enum field.
1485         (enum_value, enum_type): New structures.
1486         (upcase_string, traverse_enum_types): Declare.
1487         * read-md.c (enum_types): New variable.
1488         (upcase_string, add_constant): New functions.
1489         (handle_constants): Don't create the hash table here.
1490         Use add_constant.
1491         (traverse_md_constants): Don't check for a null md_constants.
1492         (decimal_string, handle_enum, traverse_enum_types): New functions.
1493         (read_md_files): Initialize md_constants and md_enums.
1494         * genconstants.c (print_md_constant): Ignore info argument.
1495         Only print constants that belong to no enum.
1496         (print_enum_type): New function.
1497         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
1498         for each defined enum type.
1499         * config/mips/mips.md (processor): New define_enum.
1500         (unspec): New define_c_enum.
1501         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
1502         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
1503         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
1504         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
1505         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
1506         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
1507         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
1508         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
1509         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
1510         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
1511         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
1512         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
1513         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
1514         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
1515         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
1516         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
1517         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
1518         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
1519         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
1520         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
1521         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
1522         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
1523         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1524         (UNSPEC_RDDSP): Move to mips-dsp.md.
1525         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
1526         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
1527         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
1528         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
1529         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
1530         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
1531         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
1532         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
1533         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
1534         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
1535         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
1536         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
1537         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
1538         Moved to mips-dspr2.md.
1539         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
1540         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
1541         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
1542         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
1543         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
1544         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
1545         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1546         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1547         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1548         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1549         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1550         UNSPEC_LOONGSON_PSADBH)
1551         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1552         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1553         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
1554         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1555         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1556         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1557         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
1558         (cpu): Update comment.
1559         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
1560         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
1561         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
1562         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
1563         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
1564         UNSPEC_LOONGSON_PCMPEQ)
1565         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
1566         UNSPEC_LOONGSON_PINSR_0)
1567         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
1568         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
1569         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
1570         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
1571         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
1572         UNSPEC_LOONGSON_PSADBH)
1573         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
1574         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
1575         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
1576         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
1577         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
1578         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
1579         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
1580         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
1581         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
1582         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
1583         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
1584         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
1585         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
1586         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
1587         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
1588         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
1589         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
1590         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
1591         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
1592         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
1593         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
1594         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
1595         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
1596         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
1597         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
1598         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
1599         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
1600         (UNSPEC_RDDSP): Moved from mips.md.
1601         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
1602         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
1603         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
1604         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
1605         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
1606         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
1607         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
1608         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
1609         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
1610         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
1611         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
1612         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
1613         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
1614         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
1615         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
1616         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
1617         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
1618         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
1619         (UNSPEC_SCC): Moved from mips.md.
1620         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
1621         "processor_type" to "processor".
1622         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
1623         * config/mips/mips.h (processor_type): Delete.
1624         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
1625         "processor_type" to "processor".
1626
1627 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1628
1629         * configure.ac (tm_include_list): Add insn-constants.h.
1630         * configure: Regenerate.
1631         * Makefile.in (GTM_H): Move insn-constants.h here from...
1632         (TM_H): ...here.
1633         * mkconfig.sh: Remove special handling for insn-constants.h.
1634
1635 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1636
1637         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
1638         (BUILD_MD): ...this new variable.
1639         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
1640         that include the old contents of simple_generated_h and
1641         simple_generated_c.
1642         (simple_generated_h, simple_generated_c): Include them.  Add
1643         insn-constants.h.
1644         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
1645         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
1646         Remove these dependencies from the main rule and include
1647         insn-conditions.md in the command line only if it appears
1648         in the dependency list.
1649         (insn-constants.h, s-constants): Delete.
1650         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
1651         or gensupport.h.
1652         (build/genmddeps.o): Likewise.
1653         (genprogrtl): New variable that contains everything from genprogmd
1654         except mddeps and constants.
1655         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
1656         depend on $(BUILD_MD)
1657         (genprog): New variable.  Make these programs depend on
1658         $(BUILD_ERRORS).
1659         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
1660         (main): Use read_md_files instead of init_rtx_reader_args.
1661         * genconstants.c: As for genmddeps.c.
1662         * read-md.h (read_skip_construct): Declare.
1663         * read-md.c (read_skip_construct): New function.
1664         (handle_file): Allow a null handle_directive, skipping the
1665         construct if so.
1666         (parse_include): Update the comment accordingly.
1667
1668 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1669
1670         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
1671         * genmddeps.c: Include read-md.h.
1672         (main): Call init_rtx_reader_args instead of init_md_reader_args.
1673         * genattr.c (main): Likewise.
1674         * genattrtab.c (main): Likewise.
1675         * genautomata.c (main): Likewise.
1676         * gencodes.c (main): Likewise.
1677         * genconditions.c (main): Likewise.
1678         * genconfig.c (main): Likewise.
1679         * genconstants.c (main): Likewise.
1680         * genemit.c (main): Likewise.
1681         * genextract.c (main): Likewise.
1682         * genflags.c (main): Likewise.
1683         * genopinit.c (main): Likewise.
1684         * genoutput.c (main): Likewise.
1685         * genpeep.c (main): Likewise.
1686         * genrecog.c (main): Likewise.
1687         * genpreds.c (main): Likewise.
1688         * gensupport.h (in_fname): Move to read-md.h.
1689         (init_md_reader_args_cb): Rename to...
1690         (init_rtx_reader_args_cb): ...this and return a bool.
1691         (init_md_reader_args): Rename to...
1692         (init_rtx_reader_args): ...this and return a bool.
1693         (include_callback): Move to read-md.h.
1694         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
1695         (file_name_list, first_dir_md_include): Move to read-md.c
1696         (first_bracket_include): Delete unused variable.
1697         (last_dir_md_include): Move to read-md.c.
1698         (process_include): Delete, moving code to read-md.c:handle_include.
1699         (process_rtx): Don't handle INCLUDE.
1700         (save_string): Delete.
1701         (rtx_handle_directive): New function.
1702         (init_md_reader_args_cb): Rename to...
1703         (init_rtx_reader_args_cb): ...this and return a boolean success value.
1704         Use read_md_args.
1705         (init_md_reader_args): Rename to...
1706         (init_rtx_reader_args): ...this and return a boolean success value.
1707         * rtl.def (INCLUDE): Delete.
1708         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
1709         argument.
1710         * read-rtl.c (read_conditions): Don't gobble ')' here.
1711         (read_mapping): Likewise.
1712         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
1713         Handle top-level non-rtx constructs here rather than in read_rtx_1.
1714         Store the whole queue in *X.  Remove call to init_md_reader.
1715         (read_rtx_1): Rename to...
1716         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
1717         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
1718         here.
1719         (read_nested_rtx): New function.  Handle (nil) here rather than
1720         in read_rtx_code.
1721         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
1722         gobble ')' here.
1723         * read-md.h (directive_handler_t): New type.
1724         (in_fname, include_callback): Moved from read-md.h.
1725         (read_constants, init_md_reader): Delete.
1726         (read_md_files): Declare.
1727         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
1728         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
1729         from gensupport.c.
1730         (read_constants): Rename to...
1731         (handle_constants): ...this.  Don't gobble ')' here.
1732         (handle_include, handle_file, handle_toplevel_file)
1733         (parse_include): New functions, mostly taken from gensupport.c.
1734         (init_md_reader): Subsume into...
1735         (read_md_files): ...this new function.
1736
1737 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1738
1739         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
1740         (unread_char): Decrement read_md_lineno after putting back '\n'.
1741         * read-md.c (fatal_with_file_and_line): Push back any characters
1742         that we decide not to add to the context.
1743         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
1744         fatal_expected_char in cases where '/' ends a line (for example).
1745         (read_name): Don't increment read_md_lineno here.
1746         (read_escape): Likewise.
1747         (read_quoted_string): Likewise.
1748         (read_braced_string): Likewise.
1749
1750 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1751
1752         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
1753         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
1754         * genconstants.c: Include read-md.h.
1755         * read-rtl.c (md_constants): Move to read-md.c.
1756         (md_name): Move to read-md.h.
1757         (initialize_iterators): Use leading_string_hash instead of def_hash
1758         and leading_string_eq_p instead of def_name_eq_p.
1759         (read_name): Move to read-md.c.
1760         (def_hash, def_name_eq_p): Delete.
1761         (read_constants, traverse_md_constants): Move to read-md.c.
1762         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
1763         * read-md.h: Include hashtab.h.
1764         (md_name): Moved from read-rtl.c.
1765         (md_constant): Moved from read-md.h.
1766         (leading_string_hash, leading_string_eq_p, read_name)
1767         (read_constants, traverse_md_constants): Declare.
1768         * read-md.c (md_constants): Moved from read-rtl.c.
1769         (leading_string_hash, leading_string_eq_p): New functions.
1770         (read_name, read_constants, traverse_md_constants): Moved from
1771         read-rtl.c.
1772
1773 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1774
1775         * read-rtl.c (md_name): New structure.
1776         (read_name): Take an md_name instead of a buffer pointer.
1777         Use the "string" field instead of strcpy when expanding constants.
1778         (read_constants): Remove the tmp_char argument.  Update the calls
1779         to read_name, using two local name buffers instead of the tmp_char
1780         argument.  Merge the constant-creation code.
1781         (read_conditions): Remove the tmp_char argument.  Update the calls
1782         to read_name, using a local name buffer instead of the tmp_char
1783         argument.
1784         (read_mapping): Replace tmp_char variable with a local name buffer.
1785         Update the calls to read_name.
1786         (read_rtx_1): Likewise.  Update the calls to read_constants and
1787         read_conditions.
1788
1789 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1790
1791         * Makefile.in (build/read-md.o): Depend on errors.h.
1792         * read-md.h (error_with_line): Declare.
1793         * read-md.c: Include errors.h.
1794         (message_with_line_1): New function, extracted from...
1795         (message_with_line): ...here.
1796         (error_with_line): New function.
1797         * genattrtab.c: If a call to message_with_line is followed by
1798         "have_error = 1;", replace both statements with a call to
1799         error_with_line.
1800         * genoutput.c: Likewise.
1801         * genpreds.c: Likewise.
1802         * genrecog.c: If a call to message_with_line is followed by
1803         "error_count++;", replace both statements with a call to
1804         error_with_line.
1805         (errorcount): Delete.
1806         (main): Don't check it.
1807         * gensupport.c: If a call to message_with_line is followed by
1808         "errors = 1;", replace both statements with a call to error_with_line.
1809         (errors): Delete.
1810         (process_define_cond_exec): Check have_error instead of errors.
1811         (init_md_reader_args_cb): Likewise.  Don't set errors.
1812
1813 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1814
1815         * read-md.h (read_md_file): Declare.
1816         (read_char, unread_char): New functions.
1817         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1818         (read_quoted_string, read_string): Remove FILE * argument.
1819         * read-md.c (read_md_file): New variable.
1820         (read_md_filename, read_md_lineno): Update comments and remove
1821         unnecessary initialization.
1822         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
1823         (read_escape, read_quoted_string, read_braced_string, read_string):
1824         Remove FILE * argument.  Update calls accordingly, using read_char
1825         and unread_char instead of getc and ungetc.
1826         * rtl.h (read_rtx): Remove FILE * argument.
1827         * read-rtl.c (iterator_group): Remove FILE * argument from
1828         "find_builtin".
1829         (iterator_traverse_data): Remove "infile" field.
1830         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
1831         (add_mapping, read_name, read_constants, read_conditions)
1832         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
1833         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
1834         Remove file arguments from all calls, using read_char and unread_char
1835         instead of getc and ungetc.
1836         * gensupport.c (process_include): Preserve read_md_file around
1837         the include.  Set read_md_file to the handle of the included file.
1838         Update call to read_rtx.
1839         (init_md_reader_args_cb): Set read_md_file to the handle of the file
1840         and remove local FILE *.  Update calls to read_rtx.
1841
1842 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1843
1844         * read-md.h (read_rtx_lineno): Rename to...
1845         (read_md_lineno): ...this.
1846         (read_rtx_filename): Rename to...
1847         (read_md_filename): ...this.
1848         (copy_rtx_ptr_loc): Rename to...
1849         (copy_md_ptr_loc): ...this.
1850         (print_rtx_ptr_loc): Rename to...
1851         (print_md_ptr_loc): ...this.
1852         * read-md.c: Likewise.  Update references after renaming.
1853         (string_obstack): Replace RTL with MD in comment.
1854         (set_rtx_ptr_loc): Rename to...
1855         (set_md_ptr_loc): ...this.
1856         (get_rtx_ptr_loc): Rename to...
1857         (get_md_ptr_loc): ...this.
1858         * genconditions.c: Update references after renaming.
1859         * genemit.c: Likewise.
1860         * genoutput.c: Likewise.
1861         * genpreds.c: Likewise.
1862         * gensupport.c: Likewise.
1863         * read-rtl.c: Likewise.
1864
1865 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
1866
1867         * Makefile.in (READ_MD_H): New variable.
1868         (BUILD_RTL): Add build/read-md.o.
1869         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
1870         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
1871         (build/genattrtab.o, build/genconditions.o build/genemit.o)
1872         (build/genextract.o, build/genflags.o, build/genoutput.o)
1873         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
1874         (build/read-md.o): New rule.
1875         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
1876         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
1877         * coretypes.h: ...here.
1878         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
1879         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
1880         * genattr.c: Include read-md.h.
1881         * genattrtab.c: Likewise.
1882         * genconditions.c: Likewise.
1883         * genemit.c: Likewise.
1884         * genextract.c: Likewise.
1885         * genflags.c: Likewise.
1886         * genoutput.c: Likewise.
1887         * genpreds.c: Likewise.
1888         * genrecog.c: Likewise.
1889         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
1890         (join_c_conditions, print_c_condition, read_rtx_filename)
1891         (read_rtx_lineno): Move to read-md.h.
1892         * read-rtl.c: Include read-md.h.
1893         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
1894         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
1895         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
1896         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
1897         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
1898         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
1899         (read_braced_string, read_string): Move to read-md.c.
1900         (read_rtx): Move some initialization to init_md_reader and call
1901         init_md_reader here.
1902         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
1903         Move to read-md.h.
1904         * gensupport.c: Include read-md.h.
1905         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
1906         * read-md.h, read-md.c: New files.
1907
1908 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
1909
1910         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1911         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1912         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
1913         * config/moxie/moxie.c (moxie_function_value): Make static.
1914         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
1915         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
1916
1917 2010-06-10  Martin Jambor  <mjambor@suse.cz>
1918
1919         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
1920         * dbgcnt.def (tree_sra): New counter.
1921         * tree-sra.c: Include dbgcnt.h.
1922         (gate_intra_sra): Check tree_sra debug counter.
1923
1924 2010-06-10  Martin Jambor  <mjambor@suse.cz>
1925
1926         PR tree-optimization/44258
1927         * tree-sra.c (build_access_subtree): Return false iff there is a
1928         partial overlap.
1929         (build_access_trees): Likewise.
1930         (analyze_all_variable_accesses): Disqualify candidates if
1931         build_access_trees returns true for them.
1932
1933 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
1934
1935         PR debug/41371
1936         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
1937         tail-recurse into canonical node.  Fast-forward over
1938         non-canonical VALUEs.
1939
1940 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
1941
1942         PR boostrap/44470
1943         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
1944         (*addsi_1_zext) <TYPE_LEA>: Likewise.
1945         (add lea splitter): Likewise.
1946         (add_zext lea splitter): Likewise.
1947
1948 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
1949
1950         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
1951
1952 2010-06-10  Jan Hubicka  <jh@suse.cz>
1953
1954         * df-problems.c (df_live_problem_data): Add live_bitmaps.
1955         (df_live_alloc): Initialize problem data and live_osbtacks.
1956         (df_live_finalize): Remove obstack, problem data; do not
1957         clear all bitmaps.
1958         (df_live_top_dump, df_live_bottom_dump): Do not dump old
1959         data when not allocated.
1960         (df_live_verify_solution_start): Do not allocate problem data.
1961         (df_live_verify_solution_end): Check if out is allocated.
1962         (struct df_md_problem_data): New structure.
1963         (df_md_alloc): Allocate problem data.
1964         (df_md_free): Free problem data; do not clear bitmaps.
1965
1966 2010-06-10  Jan Beulich  <jbeulich@novell.com>
1967
1968         PR bootstrap/37304
1969         * configure.ac: Replace $() with ${} when intending to expand
1970         variables rather than invoking commands.
1971         * configure: Re-generate.
1972
1973 2010-06-10  Jan Hubicka  <jh@suse.cz>
1974
1975         PR rtl-optimization/44460
1976         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
1977         TYPE_NEEDS_CONSTRUCTING sanity check.
1978
1979 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1980
1981         * doc/include/fdl.texi: Move to GFDL version 1.3.
1982
1983         * doc/cpp.texi: Move to GFDL version 1.3.
1984         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
1985         * doc/gccint.texi: Move to GFDL version 1.3.
1986         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
1987         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
1988         * doc/invoke.texi: Move to GFDL version 1.3.
1989
1990 2010-06-09  Jan Hubicka  <jh@suse.cz>
1991
1992         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
1993         Break out from ...
1994         (propagate) ... here; swap the order.
1995
1996 2010-06-09  Jan Hubicka  <jh@suse.cz>
1997
1998         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
1999         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
2000         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
2001         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
2002
2003 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2004
2005         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
2006         Do not the gather memory reference in the outer loop if the step
2007         is not a constant.
2008
2009 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
2010
2011         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
2012         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
2013         8 to 4.  Minor change of the related comments.
2014
2015 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2016
2017         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
2018         the scev analysis when the variable is not used outside the loop
2019         in a close phi node: call compute_overall_effect_of_inner_loop.
2020
2021 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2022
2023         * graphite-sese-to-poly.c (single_pred_cond): Renamed
2024         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
2025         (build_sese_conditions_before): Renamed call to single_pred_cond.
2026         (build_sese_conditions_after): Same.
2027
2028 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2029
2030         * graphite-poly.h: Fix comments and indentation.
2031         * graphite-sese-to-poly.c: Same.
2032         (build_sese_conditions_before): Compute stmt and gbb only when needed.
2033         * tree-chrec.c: Fix comments and indentation.
2034         (tree-ssa-loop-niter.c): Same.
2035
2036 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
2037
2038         PR rtl-optimization/42461
2039         * dce.c (deletable_insn_p): Return true for const or pure calls again.
2040         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
2041
2042 2010-06-09  Jan Hubicka  <jh@suse.cz>
2043
2044         * bitmap.c (bitmap_and): Walk array forward.
2045         (bitmap_and_compl_into): Likewise.
2046         (bitmap_xor): Likewise.
2047         (bitmap_xor_into):  Likewise.
2048         (bitmap_equal_p): Likewise.
2049         (bitmap_intersect_p): Likewise.
2050         (bitmap_intersect_compl_p): Likewise.
2051         (bitmap_ior_and_into): Likewise.
2052         (bitmap_elt_copy): Likewise.
2053         (bitmap_and_compl): Likewise.
2054         (bitmap_elt_ior): Likewise.
2055
2056 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2057
2058         * opts-common.c (prune_options): Ensure replacement argv array
2059         is correctly terminated by a NULL entry.
2060
2061 2010-06-09  Jan Hubicka  <jh@suse.cz>
2062
2063         * cgraph.h (varpool_first_static_initializer,
2064         varpool_next_static_initializer): Make checking only when
2065         checking enabled.
2066         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
2067         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
2068         gcc_assert to gcc_checking_assert.
2069         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
2070         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
2071         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
2072         op_iter_init_phiuse, op_iter_init_phidef,
2073         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
2074         gcc_checking_assert.
2075         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
2076         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
2077         partition_is_global, live_on_entry, live_on_exit,
2078         live_merge_and_clear): Likewise.
2079         * system.h (gcc_checking_assert): New macro.
2080         * gimple.h (set_bb_seq): Use gcc_checking_assert.
2081
2082 2010-06-09  Jason Merrill  <jason@redhat.com>
2083
2084         * Makefile.in (TAGS): Collect tags info from c-family.
2085
2086 2010-06-09  Jan Hubicka  <jh@suse.cz>
2087
2088         * gimple.h (gcc_gimple_checking_assert): New macro.
2089         (gimple_set_def_ops, gimple_set_use_ops,
2090         gimple_set_vuse, gimple_set_vdef,
2091         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
2092         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
2093         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
2094         gimple_asm_output_op, gimple_asm_output_op_ptr,
2095         gimple_asm_set_output_op, gimple_asm_clobber_op,
2096         gimple_asm_set_clobber_op, gimple_asm_label_op,
2097         gimple_asm_set_label_op, gimple_try_set_kind,
2098         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
2099         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
2100         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
2101         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
2102         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
2103         gimple_omp_for_set_initial, gimple_omp_for_final,
2104         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
2105         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
2106         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
2107         conditional with ENABLE_GIMPLE_CHECKING.
2108         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2109
2110 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
2111
2112         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
2113         (get_computation_cost_at): Use it.
2114         (determine_use_iv_cost_condition): Likewise.
2115         (determine_iv_cost): Likewise.
2116
2117 2010-06-09  Richard Guenther  <rguenther@suse.de>
2118
2119         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
2120         replace constants.
2121
2122 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2123
2124         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
2125
2126 2010-06-09  Martin Jambor  <mjambor@suse.cz>
2127
2128         PR tree-optimization/44423
2129         * tree-sra.c (dump_access): Dump also grp_assignment_read.
2130         (analyze_access_subtree): Pass negative allow_replacements to children
2131         if the current type is scalar.
2132
2133 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2134
2135         PR testsuite/42843
2136         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
2137         * doc/plugins.texi (Plugin license check): Update information
2138         on type of plugin_is_GPL_compatible.
2139         * Makefile.in (PLUGINCC): Define as $(COMPILER).
2140         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2141
2142 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
2143
2144         * config/arm/arm.c (thumb2_reorg): New function.
2145         (arm_reorg): Call it.
2146         * config/arm/thumb2.md (define_peephole2 for flag clobbering
2147         arithmetic operations): Delete.
2148
2149 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
2150
2151         PR target/44067
2152         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
2153         e500v2 target.
2154
2155 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2156
2157         PR plugins/44459
2158         * gcc-plugin.h: Encapsulate all declarations in extern "C".
2159
2160 2010-06-08  Jan Hubicka  <jh@suse.cz>
2161
2162         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
2163         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
2164
2165 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
2166
2167         PR tree-optimization/39874
2168         PR middle-end/28685
2169         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
2170         Declare.
2171         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
2172         same_bool_result_p): New.
2173         (and_var_with_comparison, and_var_with_comparison_1,
2174         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
2175         (or_var_with_comparison, or_var_with_comparison_1,
2176         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
2177         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
2178         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
2179         of combine_comparisons.
2180         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
2181
2182 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
2183
2184         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2185         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2186         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
2187         pdp11_function_value_regno_p): New functions.
2188         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2189         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2190
2191 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
2192
2193         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
2194         Thumb-2 in the MINUS case.
2195
2196 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2197
2198         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
2199
2200         * doc/gty.texi (GTY Options): Document typed GC allocation and
2201         variable_size GTY option.
2202
2203         * ggc-internal.h: New.
2204
2205         * ggc.h: Update copyright year.
2206         (digit_string): Move to stringpool.c.
2207         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
2208         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
2209         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
2210         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
2211         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
2212         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
2213         (ggc_force_collect, ggc_get_size, ggc_statistics)
2214         (ggc_print_common_statistics): Move to ggc-internal.h.
2215         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
2216         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
2217         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
2218         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
2219         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
2220         (ggc_alloc_zone_pass_stat): Remove.
2221         (ggc_internal_alloc_stat, ggc_internal_alloc)
2222         (ggc_internal_cleared_alloc_stat): New.
2223         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
2224         (ggc_internal_vec_alloc_stat)
2225         (ggc_internal_cleared_vec_alloc_stat)
2226         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
2227         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
2228         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
2229         (ggc_cleared_alloc_ptr_array_two_args): New.
2230         (htab_create_ggc, splay_tree_new_ggc): Redefine.
2231         (ggc_splay_alloc): Change the type of the first argument to
2232         enum gt_types_enum.
2233         (ggc_alloc_string): Make macro.
2234         (ggc_alloc_string_stat): New.
2235         (ggc_strdup): Redefine.
2236         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
2237         (ggc_alloc_rtvec_sized): New.
2238         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
2239         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
2240         (ggc_internal_cleared_alloc_zone_stat)
2241         (ggc_internal_zone_alloc_stat)
2242         (ggc_internal_zone_cleared_alloc_stat)
2243         (ggc_internal_zone_vec_alloc_stat)
2244         (ggc_alloc_zone_rtx_def_stat)
2245         (ggc_alloc_zone_tree_node_stat)
2246         (ggc_alloc_zone_cleared_tree_node_stat)
2247         (ggc_alloc_cleared_gimple_statement_d_stat): New.
2248
2249         * ggc-common.c: Include ggc-internal.h.
2250         (ggc_internal_cleared_alloc_stat): Rename from
2251         ggc_alloc_cleared_stat.
2252         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
2253         (ggc_calloc): Remove.
2254         (ggc_cleared_alloc_htab_ignore_args): New.
2255         (ggc_cleared_alloc_ptr_array_two_args): New.
2256         (ggc_splay_alloc): Add obj_type parameter.
2257         (init_ggc_heuristics): Formatting fixes.
2258
2259         * ggc-none.c: Update copyright year.
2260         (ggc_alloc_stat): Rename to ggc_alloc_stat.
2261         (ggc_alloc_cleared_stat): Rename to
2262         ggc_internal_cleared_alloc_stat.
2263         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2264
2265         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
2266         Remove references to ggc_alloc in comments.
2267         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
2268         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
2269         (new_ggc_zone, destroy_ggc_zone): Remove.
2270         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
2271
2272         * ggc-zone.c: Include ggc-internal.h.  Remove references to
2273         ggc_alloc in comments.
2274         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
2275         (ggc_internal_alloc_zone_pass_stat): New.
2276         (ggc_internal_cleared_alloc_zone_stat): New.
2277         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
2278         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
2279         (new_ggc_zone, destroy_ggc_zone): Remove.
2280
2281         * stringpool.c: Update copyright year.  Include ggc-internal.h
2282         (digit_vector): Make static.
2283         (digit_string): Moved from ggc.h.
2284         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
2285         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
2286
2287         * Makefile.in (GGC_INTERNAL_H): New.
2288         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
2289         $(GGC_INTERNAL_H) to dependencies.
2290
2291         * gentype.c: Update copyright year.
2292         (walk_type): Accept variable_size GTY option.
2293         (USED_BY_TYPED_GC_P): New macro.
2294         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
2295         whitespace at the end of strings.
2296         (get_type_specifier, variable_size_p): New functions.
2297         (alloc_quantity, alloc_zone): New enums.
2298         (write_typed_alloc_def): New function.
2299         (write_typed_struct_alloc_def): Likewise.
2300         (write_typed_typed_typedef_alloc_def): Likewise.
2301         (write_typed_alloc_defns): Likewise.
2302         (output_typename, write_splay_tree_allocator_def): Likewise.
2303         (write_splay_tree_allocators): Likewise.
2304         (main): Call write_typed_alloc_defns and
2305         write_splay_tree_allocators.
2306
2307         * lto-streamer.h (lto_file_decl_data_ptr): New.
2308
2309         * passes.c (order): Define using cgraph_node_ptr.
2310
2311         * strinpool.c (struct string_pool_data): Declare nested_ptr using
2312         ht_identifier_ptr.
2313
2314         * gimple.h (union gimple_statement_d): Likewise.
2315
2316         * rtl.h (struct rtx_def): Likewise.
2317         (struct rtvec_def): Likewise.
2318
2319         * tree.h (union tree_node): Likewise.
2320
2321         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
2322
2323         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
2324
2325         * tree-scalar-evolution.c (scev_initialize): Likewise.
2326
2327         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
2328
2329         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2330
2331         * omp-low.c (lower_omp_critical): Likewise.
2332
2333         * bitmap.h (struct bitmap_head_def): Update comment to not
2334         reference ggc_alloc.
2335
2336         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
2337
2338         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
2339
2340         * ipa-prop.c (duplicate_ggc_array): Rename to
2341         duplicate_ipa_jump_func_array.  Use typed GC allocation.
2342         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
2343
2344         * gimple.c (gimple_alloc_stat): Use
2345         ggc_alloc_cleared_gimple_statement_d_stat.
2346
2347         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
2348
2349         * tree.c (make_node_stat): Use
2350         ggc_alloc_zone_cleared_tree_node_stat.
2351         (make_tree_vec_stat): Likewise.
2352         (build_vl_exp_stat): Likewise.
2353         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
2354         (make_tree_binfo_stat): Likewise.
2355         (tree_cons_stat): Likewise.
2356
2357         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
2358         (shallow_copy_rtx_stat): Likewise.
2359         (make_node_stat): Likewise.
2360
2361         * lto-symtab.c: Fix comment.
2362
2363         * tree-cfg.c (create_bb): Update comment to not reference
2364         ggc_alloc_cleared.
2365         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
2366
2367         * varpool.c (varpool_node): Use typed GC allocation.
2368         (varpool_extra_name_alias): Likewise.
2369
2370         * varasm.c (emutls_decl): Likewise.
2371         (get_unnamed_section): Likewise.
2372         (get_noswitch_section): Likewise.
2373         (get_section): Likewise.
2374         (get_block_for_section): Likewise.
2375         (build_constant_desc): Likewise.
2376         (create_constant_pool): Likewise.
2377         (force_const_mem): Likewise.
2378
2379         * tree.c (build_vl_exp_stat): Likewise.
2380         (build_real): Likewise.
2381         (build_string): Likewise.
2382         (decl_debug_expr_insert): Likewise.
2383         (decl_value_expr_insert): Likewise.
2384         (type_hash_add): Likewise.
2385         (build_omp_clause): Likewise.
2386
2387         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
2388
2389         * tree-ssa.c (init_tree_ssa): Likewise.
2390
2391         * tree-ssa-structalias.c (heapvar_insert): Likewise.
2392
2393         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
2394
2395         * tree-ssa-loop-niter.c (record_estimate): Likewise.
2396
2397         * tree-ssa-alias.c (get_ptr_info): Likewise.
2398
2399         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
2400
2401         * tree-phinodes.c (allocate_phi_node): Likewise.
2402
2403         * tree-iterator.c (tsi_link_before): Likewise.
2404         (tsi_link_after): Likewise.
2405
2406         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
2407
2408         * tree-dfa.c (create_var_ann): Likewise.
2409
2410         * tree-cfg.c (create_bb): Likewise.
2411
2412         * toplev.c (alloc_for_identifier_to_locale): Likewise.
2413         (general_init): Likewise.
2414
2415         * stringpool.c (stringpool_ggc_alloc): Likewise.
2416         (gt_pch_save_stringpool): Likewise.
2417
2418         * sese.c (if_region_set_false_region): Likewise.
2419
2420         * passes.c (do_per_function_toporder): Likewise.
2421
2422         * optabs.c (set_optab_libfunc): Likewise.
2423         (set_conv_libfunc): Likewise.
2424
2425         * lto-symtab.c (lto_symtab_register_decl): Likewise.
2426
2427         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
2428         (input_eh_region): Likewise.
2429         (input_eh_lp): Likewise.
2430         (make_new_block): Likewise.
2431         (unpack_ts_real_cst_value_fields): Likewise.
2432
2433         * lto-section-in.c (lto_new_in_decl_state): Likewise.
2434
2435         * lto-cgraph.c (input_node_opt_summary): Likewise.
2436
2437         * loop-init.c (loop_optimizer_init): Likewise.
2438
2439         * lambda.h (lambda_vector_new): Likewise.
2440
2441         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
2442
2443         * ira.c (update_equiv_regs): Likewise.
2444
2445         * ipa.c (cgraph_node_set_new): Likewise.
2446         (cgraph_node_set_add): Likewise.
2447         (varpool_node_set_new): Likewise.
2448         (varpool_node_set_add): Likewise.
2449
2450         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
2451         (duplicate_ipa_jump_func_array): Likewise.
2452         (ipa_read_node_info): Likewise.
2453
2454         * ipa-cp.c (ipcp_create_replace_map): Likewise.
2455
2456         * integrate.c (get_hard_reg_initial_val): Likewise.
2457
2458         * gimple.c (gimple_alloc_stat): Likewise.
2459         (gimple_build_omp_for): Likewise.
2460         (gimple_seq_alloc): Likewise.
2461         (gimple_copy): Likewise.
2462
2463         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
2464         (gsi_insert_after_without_update): Likewise.
2465
2466         * function.c (add_frame_space): Likewise.
2467         (insert_temp_slot_address): Likewise.
2468         (assign_stack_temp_for_type): Likewise.
2469         (allocate_struct_function): Likewise.
2470         (types_used_by_var_decl_insert): Likewise.
2471
2472         * except.c (init_eh_for_function): Likewise.
2473         (gen_eh_region): Likewise.
2474         (gen_eh_region_catch): Likewise.
2475         (gen_eh_landing_pad): Likewise.
2476         (add_call_site): Likewise.
2477
2478         * emit-rtl.c (get_mem_attrs): Likewise.
2479         (get_reg_attrs): Likewise.
2480         (start_sequence): Likewise.
2481         (init_emit): Likewise.
2482
2483         * dwarf2out.c (new_cfi): Likewise.
2484         (queue_reg_save): Likewise.
2485         (dwarf2out_frame_init): Likewise.
2486         (new_loc_descr): Likewise.
2487         (find_AT_string): Likewise.
2488         (new_die): Likewise.
2489         (add_var_loc_to_decl): Likewise.
2490         (clone_die): Likewise.
2491         (clone_as_declaration): Likewise.
2492         (break_out_comdat_types): Likewise.
2493         (new_loc_list): Likewise.
2494         (loc_descriptor): Likewise.
2495         (add_loc_descr_to_each): Likewise.
2496         (add_const_value_attribute): Likewise.
2497         (tree_add_const_value_attribute): Likewise.
2498         (add_comp_dir_attribute): Likewise.
2499         (add_name_and_src_coords_attributes): Likewise.
2500         (lookup_filename): Likewise.
2501         (store_vcall_insn): Likewise.
2502         (dwarf2out_init): Likewise.
2503
2504         * dbxout.c (dbxout_init): Likewise.
2505
2506         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2507
2508         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2509
2510         * config/score/score7.c (score7_output_external): Likewise.
2511
2512         * config/score/score3.c (score3_output_external): Likewise.
2513
2514         * config/s390/s390.c (s390_init_machine_status): Likewise.
2515
2516         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
2517         (rs6000_init_machine_status): Likewise.
2518         (output_toc): Likewise.
2519
2520         * config/pa/pa.c (pa_init_machine_status): Likewise.
2521         (get_deferred_plabel): Likewise.
2522
2523         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
2524
2525         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
2526
2527         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
2528
2529         * config/mep/mep.c (mep_init_machine_status): Likewise.
2530         (mep_note_pragma_flag): Likewise.
2531
2532         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
2533
2534         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
2535
2536         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
2537
2538         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
2539         (i386_pe_maybe_record_exported_symbol): Likewise.
2540
2541         * config/i386/i386.c (get_dllimport_decl): Likewise.
2542         (ix86_init_machine_status): Likewise.
2543         (assign_386_stack_local): Likewise.
2544
2545         * config/frv/frv.c (frv_init_machine_status): Likewise.
2546
2547         * config/darwin.c (machopic_indirection_name): Likewise.
2548
2549         * config/cris/cris.c (cris_init_machine_status): Likewise.
2550
2551         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
2552
2553         * config/avr/avr.c (avr_init_machine_status): Likewise.
2554
2555         * config/arm/arm.c (arm_init_machine_status): Likewise.
2556
2557         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
2558         (alpha_need_linkage): Likewise.
2559         (alpha_use_linkage): Likewise.
2560
2561         * cgraph.c (cgraph_allocate_node): Likewise.
2562         (cgraph_create_edge_1): Likewise.
2563         (cgraph_create_indirect_edge): Likewise.
2564         (cgraph_add_asm_node): Likewise.
2565
2566         * cfgrtl.c (init_rtl_bb_info): Likewise.
2567
2568         * cfgloop.c (alloc_loop): Likewise.
2569         (rescan_loop_exit): Likewise.
2570
2571         * cfg.c (init_flow): Likewise.
2572         (alloc_block): Likewise.
2573         (unchecked_make_edge): Likewise.
2574
2575         * c-parser.c (c_parse_init): Likewise.
2576         (c_parse_file): Likewise.
2577
2578         * c-decl.c (bind): Likewise.
2579         (record_inline_static): Likewise.
2580         (push_scope): Likewise.
2581         (make_label): Likewise.
2582         (lookup_label_for_goto): Likewise.
2583         (finish_struct): Likewise.
2584         (finish_enum): Likewise.
2585         (c_push_function_context): Likewise.
2586
2587         * bitmap.c (bitmap_element_allocate): Likewise.
2588         (bitmap_gc_alloc_stat): Likewise.
2589
2590         * alias.c (record_alias_subset): Likewise.
2591         (init_alias_analysis): Likewise.
2592
2593 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
2594
2595         * fold-const.c (fold_comparison): Remove redundant parenthesis.
2596         * tree-inline.c (expand_call_inline): Pass translated return value of
2597         cgraph_inline_failed_string to diagnostic function.
2598
2599 2010-06-08  Andrew Pinski <pinskia@gmail.com>
2600             Shujing Zhao  <pearly.zhao@oracle.com>
2601
2602         PR c/37724
2603         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
2604         implicit bad conversions is initialization.
2605         (error_init): Use gmsgid instead of msgid for argument name and change
2606         the call for error.
2607         (pedwarn_init): Use gmsgid instead of msgid for argument name and
2608         change the call for pedwarn.
2609         (warning_init): Use gmsgid instead of msgid for argument name and
2610         change the call for warning.
2611
2612 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
2613
2614         * config/mips/mips-protos.h (mips_print_operand): Delete.
2615         (mips_print_operand_address): Delete.
2616         * config/mips/mips.h (mips_print_operand_punct): Delete.
2617         (PRINT_OPERAND): Delete.
2618         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2619         (PRINT_OPERAND_ADDRESS): Delete.
2620         * config/mips/mips.c (mips_print_operand_punct): Make static.
2621         (mips_print_operand_address): Make static.
2622         (mips_print_operand): Make static.  Call
2623         mips_print_operand_punct_valid_p.
2624         (mips_print_operand_punct_valid_p): New function.
2625         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
2626         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2627
2628 2010-06-07  Jan Hubicka  <jh@suse.cz>
2629
2630         PR middle-end/44454
2631         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
2632         are allocated.
2633
2634 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2635
2636         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
2637         name of RECORD.
2638
2639 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2640
2641         * doc/sourcebuild.texi (Effective-Target Keywords, Other
2642         attributes): Document gas.
2643
2644 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
2645
2646         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
2647         <TYPE_LEA>: Split instruction.
2648         <default>: Remove alternative 2 handling.
2649         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
2650         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
2651         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
2652
2653         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
2654         (ashift_zext lea splitter): Use DImode for multiplication.
2655
2656         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
2657         to generate addition.
2658
2659 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
2660
2661         * common.opt (fira-verbose): Use Var.
2662         (fpcc-struct-return): Use Init instead of VarExists.
2663         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
2664         toplev.c.
2665         * flags.h (flag_signed_char, flag_short_enums,
2666         flag_pcc_struct_return, flag_ira_verbose,
2667         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
2668         * toplev.c (flag_detailed_statistics, flag_signed_char,
2669         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
2670         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
2671         * toplev.h (flag_crossjumping, flag_if_conversion,
2672         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
2673         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
2674         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
2675         flag_cprop_registers, time_report, flag_ira_loop_pressure,
2676         flag_ira_coalesce, flag_ira_move_spills,
2677         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
2678
2679 2010-06-07  Jan Hubicka  <jh@suse.cz>
2680
2681         * df-core.c (df_analyze_problem): Do verification after allocation.
2682
2683         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
2684         (df_lr_alloc): Initialize problem data; move bitmaps to
2685         lr_bitmaps obstack.
2686         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
2687         (df_lr_verify_solution_start): Do not initialize problem data;
2688         allocate bitmaps in lr_bitmaps.
2689         (df_lr_verify_solution_end): Do not free problem data.
2690
2691 2010-06-07  Jan Hubicka  <jh@suse.cz>
2692
2693         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
2694         if caller is noreturn.
2695         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
2696         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
2697         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
2698         * ipa-pure-const.c (check_decl): Add IPA parameter.
2699         (state_from_flags): New function.
2700         (better_state, worse_state): New functions.
2701         (check_call): When in IPA mode, do not care about callees.
2702         (check_load, check_store): Update.
2703         (check_ipa_load, check_ipa_store): New.
2704         (check_stmt): When in IPA mode, use IPA checkers.
2705         (analyze_function): Use state_from_flags.
2706         (propagate): Check indirect edges and references.
2707
2708 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
2709
2710         PR rtl-optimization/44404
2711         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
2712         of count_occurrences to see if it's safe to modify mem_insn.
2713
2714 2010-06-07  Richard Guenther  <rguenther@suse.de>
2715
2716         * gimplify.c (gimplify_cleanup_point_expr): For empty body
2717         and EH-only cleanup drop the cleanup instead of inserting it
2718         unconditionally.
2719
2720 2010-06-07  Ira Rosen  <irar@il.ibm.com>
2721
2722         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
2723         documentation.
2724         * targhooks.c (default_builtin_vectorization_cost): New function.
2725         * targhooks.h (default_builtin_vectorization_cost): Declare.
2726         * target.h (enum vect_cost_for_stmt): Define.
2727         (builtin_vectorization_cost): Change argument and comment.
2728         * tree-vectorizer.h: Remove cost model macros.
2729         * tree-vect-loop.c: Include target.h.
2730         (vect_get_cost): New function.
2731         (vect_estimate_min_profitable_iters): Replace cost model macros with
2732         calls to vect_get_cost.
2733         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
2734         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
2735         default implementation.
2736         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
2737         calls to target hook builtin_vectorization_cost.
2738         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
2739         Likewise.
2740         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
2741         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
2742         implementation to return costs.
2743         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
2744         * config/spu/spu.h: Remove vectorizer cost model macros.
2745         * config/i386/i386.h: Likewise.
2746         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
2747         a call to target hook builtin_vectorization_cost.
2748
2749 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
2750
2751         PR target/44319
2752         * config/i386/i386.c (override_options): Turn zee pass on for level 2
2753         and above and defer till target is known.
2754         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
2755         turn off otherwise.
2756
2757 2010-05-25  Jan Hubicka  <jh@suse.cz>
2758
2759         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
2760         (df_compact_blocks): Likewise.
2761         * df.h (struct df): Turn hardware_regs_used,
2762         regular_block_artificial_uses, eh_block_artificial_uses,
2763         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
2764         bitmap_head.
2765         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
2766         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
2767         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
2768         df_scan_blocks, df_insn_delete, df_insn_rescan,
2769         df_insn_rescan_debug_internal, df_insn_rescan_all,
2770         df_process_deferred_rescans, df_process_deferred_rescans,
2771         df_notes_rescan, df_get_call_refs, df_get_call_refs,
2772         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
2773         df_record_entry_block_defs, df_record_exit_block_uses,
2774         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
2775         df_scan_verify): Update.
2776
2777 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
2778
2779         PR c++/44188
2780         * c-common.c (is_typedef_decl): Move this definition ...
2781         * tree.c (is_typedef_decl): ... here.
2782         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
2783         * c-common.h (is_typedef_decl): Move this declaration ...
2784         * tree.h (is_typedef_decl): ... here.
2785         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
2786         * dwarf2out.c (is_naming_typedef_decl): New function.
2787         (gen_tagged_type_die): Split out of ...
2788         (gen_type_die_with_usage): ... this function. When an anonymous
2789         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
2790         is emitted for the typedef.
2791         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
2792         anonymous tagged types.
2793
2794 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2795
2796         PR c/20000
2797         * c-decl.c (grokdeclarator): Delete warning.
2798
2799 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
2800
2801         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
2802         newly built CALL_EXPR.
2803         * tree-profile.c (tree_profiling): Don't profile functions produced
2804         for built-in stuff.
2805
2806 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
2807
2808         PR bootstrap/44427
2809         PR bootstrap/44428
2810         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
2811         endianness-independent.
2812
2813 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
2814
2815         * c-common.c: Move to c-family/.
2816         * c-common.def: Likewise.
2817         * c-common.h: Likewise.
2818         * c-cppbuiltin.c: Likewise.
2819         * c-dump.c: Likewise.
2820         * c-format.c: Likewise.
2821         * c-format.h : Likewise.
2822         * c-gimplify.c: Likewise.
2823         * c-lex.c: Likewise.
2824         * c-omp.c: Likewise.
2825         * c.opt: Likewise.
2826         * c-opts.c: Likewise.
2827         * c-pch.c: Likewise.
2828         * c-ppoutput.c: Likewise.
2829         * c-pragma.c: Likewise.
2830         * c-pragma.h: Likewise.
2831         * c-pretty-print.c: Likewise.
2832         * c-pretty-print.h: Likewise.
2833         * c-semantics.c: Likewise.
2834         * stub-objc.c: Likewise.
2835
2836         * gengtype.c (get_file_langdir): Special-case files in c-family/.
2837         (get_output_file_with_visibility): Fix name for c-common.h.
2838         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
2839
2840         * c-tree.h: Update include path for moved files.
2841         * c-lang.c: Likewise.
2842         * c-lang.h: Likewise.
2843         * c-parser.c: Likewise.
2844         * c-convert.c: Likewise.
2845         * c-decl.c: Likewise.
2846         * c-objc-common.c: Likewise.
2847         * configure.ac: Make sure c-family/ exists in the build directory.
2848         * configure: Regenerate.
2849         * Makefile.in: Update paths for moved files.  Regroup files per
2850         location and update dependencies.  Move generated_files down after
2851         ALL_GTFILES_H.
2852
2853         * config/spu/spu-c.c: Update paths for moved files.
2854         * config/mep/mep-pragma.c: Likewise.
2855         * config/darwin-c.c: Likewise.
2856         * config/i386/msformat-c.c: Likewise.
2857         * config/i386/i386-c.c: Likewise.
2858         * config/avr/avr-c.c: Likewise.
2859         * config/sol2-c.c: Likewise.
2860         * config/ia64/ia64-c.c: Likewise.
2861         * config/rs6000/rs6000-c.c: Likewise.
2862         * config/arm/arm.c: Likewise.
2863         * config/arm/arm-c.c: Likewise.
2864         * config/h8300/h8300.c: Likewise.
2865         * config/v850/v850-c.c: Likewise.
2866
2867         * config/t-darwin: Fix dependencies for moved files.
2868         * config/t-sol2: Fix dependencies for moved files.
2869         * config/mep/t-mep: Fix dependencies for moved files.
2870         * config/ia64/t-ia64: Fix dependencies for moved files.
2871         * config/rs6000/t-rs6000: Fix dependencies for moved files.
2872         * config/v850/t-v850: Fix dependencies for moved files.
2873         * config/v850/t-v850e: Fix dependencies for moved files.
2874
2875         * config/m32c/m32c-pragma.c
2876
2877         * po/exgettext: Look in c-family/ also.
2878
2879 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
2880
2881         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
2882         (mark_control_dependent_edges_necessary): Call it instead of marking
2883         the last statement manually.
2884         (propagate_necessity): Likewise.
2885
2886 2010-06-05  Jan Hubicka  <jh@suse.cz>
2887
2888         * basic-block.h (compute_dominance_frontiers): Updated.
2889         (compute_idf): Likewise.
2890
2891         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
2892         for dominance frontiers.
2893         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
2894         (insert_updated_phi_nodes_for): Likewise.
2895         (update_ssa): Likewise.
2896         * cfganal.c (compute_dominance_frontiers_1): Likewise.
2897         (compute_dominance_frontiers): Likewise.
2898         (compute_idf): Likewise.
2899         * df-problems.c (df_md_local_compute): Likewise.
2900
2901 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
2902
2903         * target.h (struct gcc_target): Add memory_move_cost field.
2904         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
2905         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
2906         * targhooks.c (default_memory_move_cost): New function.
2907         * targhooks.h (default_memory_move_cost): Declare function.
2908         * reload.h (memory_move_cost): Declare.
2909         (memory_move_secondary_cost): Change type of 'in' argument to bool.
2910         * reginfo.c (memory_move_cost): New function.
2911         (memory_move_secondary_cost): Change type of 'in' argument to bool.
2912         * ira.h (ira_memory_move_cost): Update comment.
2913         * ira.c: (ira_memory_move_cost): Update comment.
2914         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
2915         with memory_move_cost.
2916         * postreload.c (reload_cse_simplify_set): (Ditto.).
2917         * reload1.c (choose_reload_regs): (Ditto.).
2918         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
2919         (MEMORY_MOVE_COST):  Revise documentation.
2920
2921         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
2922         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
2923         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
2924         type of 'in' argument to bool.
2925         (TARGET_MEMORY_MOVE_COST): Define.
2926
2927 2010-06-05  Jan Hubicka  <jh@suse.cz>
2928
2929         * ipa-pure-const.c (propagate): Fix typo in handling of functions
2930         that cannot return.  Be more careful when merging the results with
2931         previously known ones.
2932
2933 2010-06-05  Matthias Klose  <doko@ubuntu.com>
2934
2935         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
2936         function to add the -iplugindir option.
2937         (find_plugindir_spec_function): Add new declaration and function.
2938         (static_spec_func): Use it for "find-plugindir".
2939
2940 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
2941
2942         PR c++/44361
2943         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
2944         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
2945         statement expression.
2946
2947 2010-06-05  Jan Hubicka  <jh@suse.cz>
2948
2949         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
2950         (df_rd_problem_data): Convert sparse_invalidated_by_call,
2951         dense_invalidated_by_call to bitmap head.
2952         (df_rd_alloc, df_rd_bb_local_compute_process_def,
2953         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
2954         df_rd_start_dump, df_lr_verify_transfer_functions,
2955         df_live_verify_transfer_functions, df_chain_create_bb,
2956         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
2957         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
2958         df_simulate_one_insn_forwards, df_md_alloc,
2959         df_md_bb_local_compute_process_def,
2960         df_md_bb_local_compute_process_def, df_md_local_compute,
2961         df_md_transfer_function df_md_free): Update.
2962
2963 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
2964
2965         PR c/44322
2966         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
2967         target type for ADDR_EXPR; require no changes to qualifiers except
2968         for function types.
2969         * c-tree.h (c_build_type_variant): Remove.
2970
2971 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
2972
2973         * genautomata.c (get_excl_set): Do work per element, not per char.
2974         (check_presence_pattern_sets): Similar.
2975         (check_absence_pattern_sets): Similar.
2976
2977 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
2978
2979         * genautomata.c (curr_state_pass_num): Delete.
2980         (min_issue_delay_pass_states): Delete.
2981         (min_issue_delay): Delete.
2982         (initiate_min_issue_delay_pass_states): Delete.
2983         (output_min_issue_delay_table): Compute min_issue_delay_vect
2984         using a breadth-first search variant.
2985         (output_tables): Don't call initiate_min_issue_delay_pass_states.
2986
2987 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
2988
2989         PR boostrap/44421
2990         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
2991         (df_byte_lr_bb_local_compute): Likewise.
2992
2993 2010-06-03  Jason Merrill  <jason@redhat.com>
2994
2995         Implement noexcept operator (5.3.7)
2996         * c-common.c (c_common_reswords): Add noexcept.
2997         * c-common.h (enum rid): Add RID_NOEXCEPT.
2998
2999 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3000
3001         * config/darwin-driver.c (darwin_default_min_version): Use
3002         GCC-specific formats in diagnostics.
3003         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
3004         diagnostics.
3005         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
3006         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
3007         eval_spec_function, handle_braces, process_brace_body, main,
3008         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
3009         getenv_spec_function, compare_version_strings,
3010         version_compare_spec_function): Use GCC-specific formats in
3011         diagnostics.
3012
3013 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3014
3015         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
3016         that operand 0 and operand 1 are equal.
3017         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
3018         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
3019         and operand 1 are equal.
3020         <default>: Ditto.  Remove ??? comment.
3021         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
3022         and operand 1 are equal.
3023         <default>: Ditto.  Remove ??? comment.
3024         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
3025         are equal.
3026         (*add<mode>_4) <default>: Ditto.
3027         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
3028
3029 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
3030
3031         * config/i386/i386-protos.h (ix86_print_operand): Declare.
3032         * config/i386/i386.c (ix86_print_operand): Make non-static.
3033         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
3034         * output.h (output_operand): Declare.
3035         * final.c (output_operand): Make non-static.
3036
3037 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
3038
3039         PR rtl-optimization/44013
3040         * sched-deps.c (add_dependence_list_and_free): Don't free lists
3041         when processing debug insns.
3042
3043         PR debug/41371
3044         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
3045         recursing.  Check that recursion is bounded.  Rename inner var
3046         to avoid hiding incoming argument.
3047
3048 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3049
3050         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
3051         operands[2] == 255.
3052         (*addqi_3): Ditto.
3053         (*addqi_4): Ditto.
3054         (*addqi_5): Ditto.
3055         (*addqi_ext_1_rex64): Ditto.
3056         (*addqi_ext_1): Ditto.
3057
3058         (*addqi_4): Check for incdec_operand in QImode.
3059
3060         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
3061         using SWI mode iterator.
3062         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
3063         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
3064         mode iterator.
3065         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
3066         using SWI mode iterator.
3067
3068 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3069
3070         PR c/25880
3071         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
3072         * c-format.c (gcc_diag_flag_specs): Add hash.
3073         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
3074         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
3075         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
3076         pp_c_cv_qualifiers. Handle qualifiers spelling here.
3077         (pp_c_type_qualifier_list): Call the function above.
3078         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
3079         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
3080         (WARN_FOR_QUALIFIERS): New macro.
3081         (convert_for_assignment): Use it.
3082
3083 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
3084
3085         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
3086
3087 2010-06-04  Jan Hubicka  <jh@suse.cz>
3088
3089         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
3090         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
3091         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
3092         DF_BYTE_LR_OUT): Update for embedded bitmaps.
3093         * fwprop.c (single_def_use_enter_block): Likewise.
3094         * ddg.c (create_ddg_dep_from_intra_loop_link,
3095         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
3096         * loop-iv.c (latch_dominating_def): Likewise.
3097         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
3098         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
3099         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
3100         df_rd_transfer_function, df_rd_top_dump,
3101         df_rd_bottom_dump): Update.
3102         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
3103         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
3104         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
3105         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
3106         df_lr_verify_solution_start, df_lr_verify_solution_end,
3107         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
3108         df_live_free_bb_info, df_live_alloc, df_live_reset,
3109         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
3110         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
3111         df_live_verify_solution_start, df_live_verify_solution_end,
3112         df_live_verify_transfer_functions, df_chain_create_bb,
3113         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
3114         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3115         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
3116         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
3117         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
3118         df_byte_lr_transfer_function, df_byte_lr_top_dump,
3119         df_byte_lr_bottom_dump, df_create_unused_note,
3120         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
3121         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
3122         df_md_transfer_function, df_md_init, df_md_confluence_0,
3123         df_md_confluence_n,
3124         df_md_top_dump, df_md_bottom_dump): Update.
3125         (struct df_lr_problem_data): Embedd bitmap headers.
3126
3127 2010-06-04  Jan Hubicka  <jh@suse.cz>
3128
3129         * dce.c (dce_process_block): Do not re-scan already marked
3130         instructions.
3131
3132 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
3133
3134         PR rtl-optimization/39871
3135         PR rtl-optimization/40615
3136         PR rtl-optimization/42500
3137         PR rtl-optimization/42502
3138         * ira.c (init_reg_equiv_memory_loc: New function.
3139         (ira): Call it twice.
3140         * reload.h (calculate_elim_costs_all_insns): Declare.
3141         * ira-costs.c: Include "reload.h".
3142         (regno_equiv_gains): New static variable.
3143         (init_costs): Allocate it.
3144         (finish_costs): Free it.
3145         (ira_costs): Call calculate_elim_costs_all_insns.
3146         (find_costs_and_classes): Take estimated elimination costs
3147         into account.
3148         (ira_adjust_equiv_reg_cost): New function.
3149         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
3150         * reload1.c (init_eliminable_invariants, free_reg_equiv,
3151         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
3152         (elim_bb): New static variable.
3153         (reload): Move code out of here into init_eliminable_invariants and
3154         free_reg_equiv.  Call them.
3155         (calculate_elim_costs_all_insns): New function.
3156         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
3157         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
3158         but call note_reg_elim_costly if we turned a valid memory address
3159         into an invalid one.
3160         * Makefile.in (ira-costs.o): Depend on reload.h.
3161
3162 2010-06-04  Julian Brown  <julian@codesourcery.com>
3163
3164         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
3165         for pool ranges.
3166
3167 2010-06-04  Richard Guenther  <rguenther@suse.de>
3168
3169         PR lto/41584
3170         * cgraph.h (struct varpool_node): Add lto_file_data field.
3171         * lto-cgraph.c (input_varpool_node): Initialize it.
3172
3173 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
3174
3175         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
3176         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
3177         predicate in "type" attribute calculation.
3178         (*addsi_1_zext): Ditto.
3179         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
3180         (*addsi_2_zext): Ditto.
3181         (*add<mode>_3): Ditto.
3182         (*addsi_3_zext): Ditto.
3183         (*add<mode>_5): Ditto.
3184
3185 2010-06-03  Jan Hubicka  <jh@suse.cz>
3186
3187         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
3188         of bitmap_bit_p.
3189         * cfganal.c (compute_dominance_frontiers_1): Likewise.
3190
3191 2010-06-03  Jan Hubicka  <jh@suse.cz>
3192
3193         * df-problems.c (df_create_unused_note, df_note_bb_compute):
3194         micro-optimize the checks when to add new note.
3195
3196 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
3197
3198         * final.c (output_asm_insn): Call
3199         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
3200         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
3201         (output_address): Call targetm.asm_out.print_operand_address.
3202         Update comments.
3203         * target.h (struct gcc_target): Add print_operand,
3204         print_operand_address, and print_operand_punct_valid_p fields.
3205         * targhooks.h (default_print_operand): Declare.
3206         (default_print_operand_address): Declare.
3207         (default_print_operand_punct_valid_p): Declare.
3208         * targhooks.c (default_print_operand): Define.
3209         (default_print_operand_address): Define.
3210         (default_print_operand_punct_valid_p): Define.
3211         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
3212         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
3213         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3214         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
3215         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
3216         * vmsdbgout.c (addr_const_to_string): Update comment.
3217         * config/i386/i386.c (print_operand): Rename to...
3218         (ix86_print_operand): ...this.  Make static.
3219         (print_operand_address): Rename to...
3220         (ix86_print_operand_address): ...this.  Make static.  Call
3221         ix86_print_operand instead of PRINT_OPERAND.
3222         (ix86_print_operand_punct_valid_p): New function.
3223         (TARGET_PRINT_OPERAND): Define.
3224         (TARGET_PRINT_OPERAND_ADDRESS): Define.
3225         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3226         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
3227         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
3228         (PRINT_OPERAND): Delete.
3229         (PRINT_OPERAND_ADDRESS): Delete.
3230         * config/i386/i386-protos.h (print_operand): Delete prototype.
3231         (print_operand_address): Delete prototype.
3232
3233 2010-06-03  Richard Guenther  <rguenther@suse.de>
3234
3235         PR tree-optimization/44403
3236         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3237         Preserve pointer qualifiers.
3238         (vect_create_data_ref_ptr): Likewise.
3239
3240 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
3241
3242         PR c++/44294
3243         * defaults.h (MAX_FIXED_MODE_SIZE): New.
3244
3245         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
3246
3247 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
3248
3249         PR debug/44375
3250         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
3251         return false if merging the bbs would lead to goto_locus
3252         location being lost from the IL.
3253
3254 2010-06-03  Jan Hubicka  <jh@suse.cz>
3255             Jakub Jelinek  <jakub@redhat.com>
3256
3257         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
3258         set->regs[i] is NULL or has just one entry.
3259
3260 2010-06-03  Jan Hubicka  <jh@suse.cz>
3261
3262         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
3263         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
3264
3265 2010-06-03  Paul Brook  <paul@codesourcery.com>
3266
3267         * config/arm/arm.c (FL_TUNE): Define.
3268         (arm_default_cpu, arm_cpu_select): Remove.
3269         (all_cores): Populate core field.
3270         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
3271         (arm_find_cpu): New function.
3272         (arm_handle_option): Lookup cpu/architecture names.
3273         (arm_override_options): Cleanup mcpu/march/mtune handling.
3274         (arm_file_start): Ditto.
3275
3276 2010-06-03  Alan Modra  <amodra@gmail.com>
3277
3278         PR target/44169
3279         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
3280         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
3281         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
3282         (rs6000_emit_load_toc_table): Likewise.
3283
3284 2010-06-02  Jan Hubicka  <jh@suse.cz>
3285
3286         * passes.c (init_optimization_passes): Put ipa reference
3287         after ipa pure-const.
3288
3289 2010-06-02  Jan Hubicka  <jh@suse.cz>
3290
3291         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
3292         calls_read_all and calls_write_all.
3293         (get_reference_optimization_summary): Fix formatting.
3294         (is_proper_for_analysis): Check that decl is not readonly.
3295         (propagate_bits): Check CONST/PURE/noreturn flags.
3296         (ipa_init): Move all_module_statics to optimization_summary_obstack.
3297         (analyze_function): Ignore indirect edges.
3298         (copy_global_bitmap): For all module statics, do nothing.
3299         (generate_summary): Do not print calls_read_all/calls_write_all.
3300         (read_write_all_from_decl): Take node as argument; check
3301         cgraph_node_cannot_return.
3302         (propagate): Reorganize read_all/write_all computation;
3303         check indirect edges; check ecf flags; use all_module_statics
3304         in the results; do not free all_module_statics.
3305         (stream_out_bitmap): Handle all_module_statics.
3306         (ipa_reference_write_optimization_summary): Likewise; use
3307         varpool/cgraph encoders to get boundaries.
3308         (ipa_reference_read_optimization_summary): Read in all_module_statics;
3309         use it when possible.
3310
3311 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3312
3313         PR target/44218
3314         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
3315         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
3316
3317         * doc/extend.texi (powerpc builtins): Document vec_recip,
3318         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
3319
3320         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
3321         (rs6000_emit_swrsqrt): Ditto.
3322         (rs6000_emit_swdivsf): Delete.
3323         (rs6000_emit_swdivdf): Ditto.
3324         (rs6000_emit_swrsqrtsf): Ditto.
3325
3326         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
3327         describe the reciprocal estimate support for each type.
3328         (recip_options): Map -mrecip=<opt> into option bits.
3329         (gen_2arg_fn_t): New typedef for binary rtx gen function.
3330         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
3331         reciprocal estimate instructions.
3332         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
3333         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
3334         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
3335         cost information if -mdebug=cost or -mdebug=reg.
3336         (rs6000_override_options): Set -mrecip-precision for power6, and
3337         power7 machines.  If -mvsx or -mdfp, enable various options that
3338         came in previous instruction set ISAs, unless the option was
3339         explicitly disabled by the command line option.  Parse
3340         -mrecip=<opt> options.
3341         (rs6000_builtin_vectorized_function): Add support for vectorizing
3342         the reciprocal estimate builtins and expansions.
3343         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
3344         (bdesc_2arg): Add reciprocal estimate builtins.
3345         (bdesc_1arg): Add reciprocal square root estimate builtins.
3346         (rs6000_expand_builtin): Rewrite to use a switch statement,
3347         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
3348         (rs6000_init_builtins): Create declarations for reciprocal
3349         estimate builtins.
3350         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
3351         sized, prefer traditional floating point registers, if integer
3352         vector types, prefer altivec registers.  Don't actually look at
3353         the memory address any more.
3354         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
3355         builtins.
3356         (rs6000_load_constant_and_splat): New helper function to load up
3357         the constant for reciprocal estimate instructions.
3358         (rs6000_emit_madd): New helper function for generating
3359         multiply/add type instructions, based on the current switches.
3360         (rs6000_emit_msub): Ditto.
3361         (rs6000_emit_mnsub): Ditto.
3362         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
3363         replace a divide with a reciprocal estimate and fixup, adding
3364         support for machines with high precision and vectors.
3365         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
3366         low precision machines.
3367         (rs6000_emit_swdiv): New common function to be called to replace a
3368         division with reciprocal estimate and fixup.
3369         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
3370         for double and vector types.  Add support for high precision machines.
3371
3372         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
3373         the reciprocal estimate instructions can be generated.
3374         (TARGET_FRE): Ditto.
3375         (TARGET_FRSQRTES): Ditto.
3376         (TARGET_FRSQRTE): Ditto.
3377         (RS6000_RECIP_*): New macros for reciprocal estimate support.
3378
3379         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
3380         square root estimate on vectors.
3381         (re<mode>2): New insn for reciprocal division estimate on vectors.
3382
3383         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
3384         New builtin.
3385         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
3386         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
3387         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
3388         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
3389         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
3390         (RS6000_BUILTIN_RSQRT): Ditto.
3391         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
3392         floating point builtin.
3393
3394         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3395         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
3396         __RECIP_PRECISION__ based on the command line switches.
3397         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
3398
3399         * config/rs6000/rs6000.opt (-mrecip): Document add support for
3400         replacing division instructions with reciprocal estimate and fixup.
3401         (-mrecip=<opt>): New option.
3402         (-mrecip-precision): Ditto.
3403
3404         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
3405         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
3406         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
3407         precision scalar.
3408
3409         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
3410         (UNSPEC_VREFP): Ditto.
3411         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
3412         conterparts with regard to support of -mno-fused-madd and -ffast-math.
3413         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
3414         reciprocal estimate instructions to be generated.
3415         (altivec_vrefp): Ditto.
3416
3417         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
3418         estimate support.
3419         (rreg): New mode attribute for reciprocal estimate support.
3420         (recip<mode>3): New insn for division using reciprocal estimate
3421         and fixup builtins.
3422         (divide define_split): New define_split to convert floating point
3423         division to use reciprocal estimate if the user used the
3424         appropriate options and the split is run when we can add new
3425         pseudo registers for the fixup.
3426         (rsqrt<mode>2): New insn for reciprocal square root support.
3427         (recipsf3): Move into recip<mode>3.
3428         (recipdf3): Ditto.
3429         (fres): Use TARGET_FRES.
3430         (rsqrtsf2): Move into rsqrt<mode>2.
3431         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
3432         (copysignsf3): Add support for VSX.
3433         (fred): Use TARGET_FRE.
3434         (fred_fpr): Ditto.
3435         (rsqrtdf_internal1): New function for frsqrte instruciton.
3436
3437         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
3438         (vec_rsqrt): Ditto.
3439
3440 2010-06-03  Richard Guenther  <rguenther@suse.de>
3441
3442         PR middle-end/44291
3443         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
3444         (set_user_assembler_libfunc): Likewise.
3445
3446 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3447
3448         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
3449         defaults.h.
3450         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
3451         to defaults.h
3452         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
3453         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
3454         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
3455         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
3456         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
3457         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
3458         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
3459         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
3460         * defaults.h: Updated for above mentioned changes.
3461
3462 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
3463
3464         * c-common.c: Remove header include of tm_p.h.
3465         * Makefile.in (c-common.o): Remove TM_P_H dependency.
3466
3467 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
3468
3469         * tree.h (struct tree_decl_map): New type.
3470         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
3471         (tree_decl_map_hash): New prototype.
3472         (debug_expr_for_decl, value_expr_for_decl): Change into
3473         tree_decl_map hashtab from tree_map.
3474         (init_ttree): Adjust initialization.
3475         (tree_decl_map_hash): New function.
3476         (decl_debug_expr_lookup, decl_debug_expr_insert,
3477         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
3478
3479 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3480
3481         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
3482         linker emulations.
3483         * configure: Regenerate.
3484         * config.in: Regenerate.
3485
3486         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
3487         (X86_64_EMULATION): Define.
3488         (TARGET_LD_EMULATION): Use them.
3489
3490         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
3491         (SPARC64_EMULATION): Define.
3492         (LINK_ARCH_SPEC): Use them.
3493
3494 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3495
3496         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
3497         smallest_mode_for_size for computing the precision types of new
3498         graphite IVs.  Do not call lang_hooks.types.type_for_size.
3499
3500 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3501
3502         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
3503         information.
3504         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
3505
3506 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
3507
3508         PR middle-end/44363
3509         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
3510         return false instead.
3511
3512 2010-06-02  Jan Hubicka  <jh@suse.cz>
3513
3514         PR middle-end/44295
3515         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
3516         create new cgraph node to check callee.
3517
3518 2010-06-02  Richard Guenther  <rguenther@suse.de>
3519
3520         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
3521
3522 2010-06-02  Richard Guenther  <rguenther@suse.de>
3523
3524         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
3525         (lto_wrapper_cleanup): ... this.  Do not exit.
3526         (fatal): Adjust.  Exit here.
3527         (fatal_perror): Likewise.
3528         (fatal_signal): New function.
3529         (main): Set up signal handlers to cleanup temporary files.
3530         * Makefile.in (lto-wrapper.o): Adjust dependencies.
3531
3532 2010-06-02  Richard Guenther  <rguenther@suse.de>
3533
3534         PR tree-optimization/44377
3535         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
3536
3537 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3538
3539         * config/s390/2097.md (z10_fhex): Remove insn reservation.
3540         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
3541         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
3542         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
3543         instruction.
3544         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
3545
3546 2010-06-02  Jan Hubicka  <jh@suse.cz>
3547
3548         * bitmap.c (bitmap_descriptor): Add search_iter.
3549         (bitmap_find_bit): Increment it.
3550         (print_statistics): Print it.
3551
3552 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
3553
3554         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
3555         instead of gimple_build_call_vec.  Delete unnecessary local variable.
3556
3557 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3558
3559         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
3560         change from yesterday.
3561
3562 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
3563
3564         * c-ada-spec.c: Clean up redundant includes.
3565
3566 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
3567
3568         * gimplify.c: Do not include except.h and optabs.h.
3569         (gimplify_body): Do not initialize RTL profiling.
3570         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
3571         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
3572         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
3573         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
3574         langhooks.h.
3575
3576         * tree-pretty-print.h: Include pretty-print.h.
3577         * gimple-pretty-print.h: Include pretty-print.h.
3578
3579         * tree-pretty-print.c: Do not include diagnostic.h.
3580         * tree-vrp.c: Likewise.
3581         * tree-tailcall.c: Likewise
3582         * tree-scalar-evolution.c: Likewise
3583         * tree-ssa-dse.c: Likewise
3584         * tree-chrec.c: Likewise
3585         * tree-ssa-sccvn.c: Likewise
3586         * tree-ssa-copyrename.c: Likewise
3587         * tree-nomudflap.c: Likewise
3588         * tree-call-cdce.c: Likewise
3589         * tree-stdarg.c: Likewise
3590         * tree-ssa-math-opts.c: Likewise
3591         * tree-nrv.c: Likewise
3592         * tree-ssa-sink.c: Likewise
3593         * tree-browser.c: Likewise
3594         * tree-ssa-loop-ivcanon.c: Likewise
3595         * tree-ssa-loop.c: Likewise
3596         * tree-parloops.c: Likewise
3597         * tree-ssa-address.c: Likewise
3598         * tree-ssa-ifcombine.c: Likewise
3599         * tree-if-conv.c: Likewise
3600         * tree-data-ref.c: Likewise
3601         * tree-affine.c: Likewise
3602         * tree-ssa-phiopt.c: Likewise
3603         * tree-ssa-coalesce.c: Likewise
3604         * tree-ssa-pre.c: Likewise
3605         * tree-ssa-live.c: Likewise
3606         * tree-predcom.c: Likewise
3607         * tree-ssa-forwprop.c: Likewise
3608         * tree-ssa-dce.c: Likewise
3609         * tree-ssa-ter.c: Likewise
3610         * tree-ssa-loop-prefetch.c: Likewise
3611         * tree-optimize.c: Likewise
3612         * tree-ssa-phiprop.c: Likewise
3613         * tree-object-size.c: Likewise
3614         * tree-outof-ssa.c: Likewise
3615         * tree-ssa-structalias.c: Likewise
3616         * tree-switch-conversion.c: Likewise
3617         * tree-ssa-reassoc.c: Likewise
3618         * tree-ssa-operands.c: Likewise
3619         * tree-vectorizer.c: Likewise
3620         * tree-vect-data-refs.c: Likewise
3621         * tree-vect-generic.c: Likewise
3622         * tree-vect-stmts.c: Likewise
3623         * tree-vect-patterns.c: Likewise
3624         * tree-vect-slp.c: Likewise
3625         * tree-vect-loop.c: Likewise
3626         * tree-ssa-loop-ivopts.c: Likewise
3627         * tree-ssa-loop-im.c: Likewise
3628         * tree-ssa-loop-niter.c: Likewise
3629         * tree-ssa-loop-unswitch.c: Likewise
3630         * tree-ssa-loop-manip.c: Likewise
3631         * tree-ssa-loop-ch.c: Likewise
3632         * tree-dump.c: Likewise
3633         * tree-complex.c: Likewise
3634
3635         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
3636         * tree-ssa-uninit.c: Likewise
3637         * tree-ssa-threadupdate.c: Likewise
3638         * tree-ssa-uncprop.c: Likewise
3639         * tree-ssa-ccp.c: Likewise
3640         * tree-ssa-dom.c: Likewise
3641         * tree-ssa-propagate.c: Likewise
3642         * tree-ssa-alias.c: Likewise
3643         * tree-dfa.c: Likewise
3644         * tree-cfgcleanup.c: Likewise
3645         * tree-sra.c: Likewise
3646         * tree-ssa-copy.c: Likewise
3647         * tree-ssa.c: Likewise
3648         * tree-profile.c: Likewise
3649         * tree-cfg.c: Likewise
3650         * tree-ssa-threadedge.c: Likewise
3651         * tree-vect-loop-manip.c: Likewise
3652
3653         * tree-inline.c: Do not include diagnostic.h and expr.h.
3654         Include rtl.h.
3655         (copy_decl_for_dup_finish): Do not use NULL_RTX.
3656
3657         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
3658         * tree-loop-distribution.c: Likewise.
3659
3660 2010-06-01  Jan Hubicka  <jh@suse.cz>
3661
3662         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
3663
3664 2010-06-01  Jan Hubicka  <jh@suse.cz>
3665
3666         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
3667         remove return value.
3668         (split_bbs_on_noreturn_calls) .... here.
3669         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
3670         * tree-flow.h (fixup_noreturn_call): New.
3671
3672 2010-06-01  Jan Hubicka  <jh@suse.cz>
3673
3674         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
3675
3676 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
3677
3678         * tree.h (build_nt_call_list): Delete.
3679         * tree.c (build_nt_call_list): Delete.
3680
3681 2010-06-01  Jan Hubicka  <jh@suse.cz>
3682
3683         * fwprop.c: Make emit-rtl.h include last.
3684         * rtlanal.c: Include emit-rtl.h.
3685         * genautomata.c: Output emit-rtl include into insn-automata.c
3686         * df-scan.c: Include emit-rtl.h.
3687         * haifa-sched.c: Indlude emit-rtl.h.
3688         * mode-switching.c: Indlude emit-rtl.h.
3689         * graph.c: Indlude emit-rtl.h.
3690         * sel-sched.c: Include emit-rtl.h.
3691         * sel-sched-ir.c: Include emit-rtl.h.
3692         * ira-build.c: Include emit-rtl.h.
3693         * emit-rtl.c: (first_insn, last_insn): Remove defines.
3694         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
3695         Move to emit-rtl.h.
3696         (set_new_first_and_last_insn, get_last_insn_anywhere,
3697         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
3698         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
3699         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
3700         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
3701         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
3702         Use accessor functions.
3703         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3704          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3705         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3706         mem_expr_equal_p): Move here from rtl.h.
3707         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
3708         Move here from emit-rtl.c; make inline.
3709         * cfglayout.h: Include emit-rtl.h.
3710         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
3711          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
3712         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
3713         mem_expr_equal_p, get_insns, set_first-insn,
3714         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
3715         * reg-stack.c: Include emit-rtl.h.
3716         * dce.c: Likewise.
3717
3718 2010-06-01  Jan Hubicka  <jh@suse.cz>
3719
3720         * cgraph.h (tree_function_versioning): Update prototype.
3721         (cgraph_function_versioning): Update prototype.
3722         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
3723         bitmap.
3724         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
3725         (cgraph_materialize_clone, save_inline_function_body): Update use of
3726         tree_function_versioning.
3727         * tree-inline.c (copy_bb): Look for previous copied block to link
3728         after; fix debug output.
3729         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
3730         (copy_body): Likewise.
3731         (expand_call_inline): Update use of copy_body.
3732         (tree_function_versioning): Update use of copy body; accept
3733         blocks_to_copy and new_entry.
3734
3735 2010-06-01  Jan Hubicka  <jh@suse.cz>
3736
3737         * gegenrtl.c: Remove unnecesary prototypes.
3738         (gendecl): Remove.
3739         (gendef): Produce static inline.
3740         (gencode): Remove.
3741         (main): Do not decode parameters; generate header only.
3742         * Makefile.in (genrtl.c): Remove.
3743
3744 2010-06-01  Jan Hubicka  <jh@suse.cz>
3745
3746         * tree-switch-conversion.c (build_one_array): Make it readonly.
3747
3748 2010-06-01  Richard Guenther  <rguenther@suse.de>
3749
3750         * optabs.c (init_optabs): Guard all accesses to reinit.
3751         * ipa-pure-const.c (propagate): Fix another typo.
3752         * opts.c (common_handle_option): Split assignment to bool.
3753         * c-opts.c (c_common_handle_option): Likewise.
3754
3755 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
3756             Matthew Gingell  <gingell@adacore.com>
3757
3758         * doc/invoke.texi: Mention -fdump-ada-spec.
3759         * tree-dump.c (dump_files): Add ada-spec.
3760         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
3761         * tree-pass.h (tree_dump_index): Add TDI_ada.
3762         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
3763         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
3764         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
3765         * c-decl.c: Include c-ada-spec.h.
3766         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
3767         functions.
3768         (c_write_global_declarations): Add handling of -fdump-ada-spec.
3769         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
3770         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
3771         * c-ada-spec.h, c-ada-spec.c: New files.
3772
3773 2010-06-01  Richard Guenther  <rguenther@suse.de>
3774
3775         PR lto/43853
3776         * ipa-pure-const.c (get_function_state): Hand back varying state
3777         if we do not have one.
3778         (has_function_state): New function.
3779         (duplicate_node_data): Adjust.
3780         (remove_node_data): Likewise.
3781         (pure_const_write_summary): Likewise.
3782         (propagate): Likewise.  Fix typo.
3783
3784 2010-06-01  Jan Hubicka  <jh@suse.cz>
3785
3786         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
3787         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
3788         (execute_all_ipa_transforms): Do not play with the states.
3789
3790 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
3791
3792         * config/arm/t-linux-androideabi: New.
3793         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
3794
3795 2010-06-01  Jan Hubicka  <jh@suse.cz>
3796
3797         * tree-inline.c (estimate_num_insns): For stdarg functions look
3798         into call statement to count cost of argument passing.
3799
3800 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
3801
3802         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
3803         argument for fprintf.
3804         (ix86_output_addr_diff_elt): Likewise.
3805         (x86_function_profiler): Likewise.
3806         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
3807         (LPREFIX): Likewise.
3808         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
3809
3810 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
3811
3812         PR target/44338
3813         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
3814         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
3815         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
3816         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
3817         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
3818         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
3819         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
3820         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
3821         TARGET_FUSED_MADD.
3822
3823 2010-05-31  Jan Hubicka  <jh@suse.cz>
3824
3825         * tree.h (tree_range_check_failed): Declare noreturn.
3826
3827 2010-05-31  Jan Hubicka  <jh@suse.cz>
3828
3829         * gimple.c (gimple_call_builtin_p): New function.
3830         * gimple.h (gimple_call_builtin_p): Declare.
3831         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
3832         to exit.
3833         (execute_warn_function_return): BUILT_IN_RETURN is return.
3834         (split_critical_edges): Return edges are not critical.
3835         (is_ctrl_altering_stmt): Builtin_in_return is altering.
3836         (gimple_verify_flow_info): Handle built_in_return.
3837         (execute_warn_function_return): Handle built_in_return.
3838         * ipa-pure-const.c (check_call): Ignore builtin_return.
3839
3840 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
3841
3842         PR middle-end/44337
3843         * expr.c (expand_assignment): Don't store anything for out-of-bounds
3844         array accesses with non-MEM.
3845
3846         PR tree-optimization/44182
3847         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
3848         newly needs to end a bb is followed by debug stmts, instead return
3849         true from the function at the end.
3850         (maybe_move_debug_stmts_to_successors): New function.
3851         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
3852
3853 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
3854
3855         PR target/44161
3856         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
3857
3858 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
3859
3860         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
3861         for nested functions in non-optimized compilation.
3862
3863 2010-05-31  Richard Guenther  <rguenther@suse.de>
3864
3865         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
3866
3867 2010-05-30  Jan Hubicka  <jh@suse.cz>
3868
3869         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
3870
3871 2010-05-30  Richard Guenther  <rguenther@suse.de>
3872
3873         PR lto/42975
3874         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
3875         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
3876         no longer needed.
3877
3878 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
3879
3880         * config/darwin.c (output_objc_section_asm_op): Add comment.
3881         (name_needs_quotes): Add '_' to list of valid comment chars.
3882         (machopic_output_function_base_name): Remove unneeded quotes.
3883         (darwin_encode_section_info): Adjust asm whitespace.
3884         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
3885         (ASM_OUTPUT_LOCAL): Ditto.
3886         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
3887         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
3888         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
3889
3890 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
3891
3892         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
3893         RS6000_OUTPUT_BASENAME unconditionally.
3894         (rs6000_output_function_epilogue): Likewise.
3895
3896 2010-05-30  Jan Hubicka  <jh@suse.cz>
3897
3898         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
3899         nodes.
3900
3901 2010-05-30  Richard Guenther  <rguenther@suse.de>
3902
3903         * tree-cfg.c (verify_gimple_assign_single): Implement
3904         verification for COND_EXPR rhs.
3905
3906 2010-05-30  Jan Hubicka  <jh@suse.cz>
3907
3908         * cgraph.h (cgraph_dump_file): Declare.
3909         * cgraphunit.c (cgraph_dump_file): Export.
3910         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
3911
3912 2010-05-30  Jan Hubicka  <jh@suse.cz>
3913
3914         * dwarf2out.c (reference_to_unused,
3915         premark_types_used_by_global_vars_helper): Avoid creation of new
3916         varpool nodes.
3917
3918 2010-05-30  Jan Hubicka  <jh@suse.cz>
3919
3920         * cgraph.h (cgraph_node_cannot_return,
3921         cgraph_edge_cannot_lead_to_return): New functions.
3922         * cgraph.c (cgraph_node_cannot_return,
3923         cgraph_edge_cannot_lead_to_return): Use them.
3924         * ipa-pure-const.c (pure_const_names): New static var.
3925         (check_call): Handle calls not leading to return.
3926         (pure_const_read_summary): Dump info read.
3927         (propagate): Dump info about propagation process; ignore side effects
3928         of functions not leading to exit; fix handling of pure functions.
3929
3930 2010-05-30  Jan Hubicka  <jh@suse.cz>
3931
3932         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
3933         for tail call epilogues.
3934
3935 2010-05-30  Jan Hubicka  <jh@suse.cz>
3936
3937         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
3938         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
3939         dump files.
3940
3941 2010-05-29  Jan Hubicka  <jh@suse.cz>
3942
3943         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
3944         node; remove references in node we no longer keep in cgrpah but need
3945         body of.
3946
3947 2010-05-29  Jan Hubicka  <jh@suse.cz>
3948
3949         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
3950
3951 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3952
3953         PR target/44165
3954         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
3955
3956 2010-05-29  Jan Hubicka  <jh@suse.cz>
3957
3958         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
3959         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
3960         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
3961         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
3962         debug_names_replaced_by, debug_update_ssa): Likewise.
3963         * sbitmap.c (debug_sbitmap): Likewise.
3964         * genrecog.c (debug_decision, debug_decision_list): Likewise.
3965         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
3966         debug_tree_chain): Likewise.
3967         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
3968         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
3969         * optabs.c  (debug_optab_libfuncs): Likewise.
3970         (verify_loop_closed_ssa): Likewise.
3971         * value-prof.c (verify_histograms): Likewise.
3972         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
3973         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
3974         * cfghooks.c (verify_flow_info): Likewise.
3975         * fold-const.c (debug_fold_checksum): Likewise.
3976         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
3977         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
3978         Likewise.
3979         * omega.c (debug_omega_problem): Likewise.
3980         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
3981         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
3982         * dominance.c (verify_dominators, debug_dominance_info,
3983         debug_dominance_tree): Likewise.
3984         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,