OSDN Git Service

Fix PR c++/44188
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
2
3         PR c++/44188
4         * c-common.c (is_typedef_decl): Move this definition ...
5         * tree.c (is_typedef_decl): ... here.
6         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
7         * c-common.h (is_typedef_decl): Move this declaration ...
8         * tree.h (is_typedef_decl): ... here.
9         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
10         * dwarf2out.c (is_naming_typedef_decl): New function.
11         (gen_tagged_type_die): Split out of ...
12         (gen_type_die_with_usage): ... this function. When an anonymous
13         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
14         is emitted for the typedef.
15         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
16         anonymous tagged types.
17
18 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19
20         PR c/20000
21         * c-decl.c (grokdeclarator): Delete warning.
22
23 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
24
25         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
26         newly built CALL_EXPR.
27         * tree-profile.c (tree_profiling): Don't profile functions produced
28         for built-in stuff.
29
30 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
31
32         PR bootstrap/44427
33         PR bootstrap/44428
34         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
35         endianness-independent.
36
37 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
38
39         * c-common.c: Move to c-family/.
40         * c-common.def: Likewise.
41         * c-common.h: Likewise.
42         * c-cppbuiltin.c: Likewise.
43         * c-dump.c: Likewise.
44         * c-format.c: Likewise.
45         * c-format.h : Likewise.
46         * c-gimplify.c: Likewise.
47         * c-lex.c: Likewise.
48         * c-omp.c: Likewise.
49         * c.opt: Likewise.
50         * c-opts.c: Likewise.
51         * c-pch.c: Likewise.
52         * c-ppoutput.c: Likewise.
53         * c-pragma.c: Likewise.
54         * c-pragma.h: Likewise.
55         * c-pretty-print.c: Likewise.
56         * c-pretty-print.h: Likewise.
57         * c-semantics.c: Likewise.
58         * stub-objc.c: Likewise.
59
60         * gengtype.c (get_file_langdir): Special-case files in c-family/.
61         (get_output_file_with_visibility): Fix name for c-common.h.
62         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
63
64         * c-tree.h: Update include path for moved files.
65         * c-lang.c: Likewise.
66         * c-lang.h: Likewise.
67         * c-parser.c: Likewise.
68         * c-convert.c: Likewise.
69         * c-decl.c: Likewise.
70         * c-objc-common.c: Likewise.
71         * configure.ac: Make sure c-family/ exists in the build directory.
72         * configure: Regenerate.
73         * Makefile.in: Update paths for moved files.  Regroup files per
74         location and update dependencies.  Move generated_files down after
75         ALL_GTFILES_H.
76
77         * config/spu/spu-c.c: Update paths for moved files.
78         * config/mep/mep-pragma.c: Likewise.
79         * config/darwin-c.c: Likewise.
80         * config/i386/msformat-c.c: Likewise.
81         * config/i386/i386-c.c: Likewise.
82         * config/avr/avr-c.c: Likewise.
83         * config/sol2-c.c: Likewise.
84         * config/ia64/ia64-c.c: Likewise.
85         * config/rs6000/rs6000-c.c: Likewise.
86         * config/arm/arm.c: Likewise.
87         * config/arm/arm-c.c: Likewise.
88         * config/h8300/h8300.c: Likewise.
89         * config/v850/v850-c.c: Likewise.
90
91         * config/t-darwin: Fix dependencies for moved files.
92         * config/t-sol2: Fix dependencies for moved files.
93         * config/mep/t-mep: Fix dependencies for moved files.
94         * config/ia64/t-ia64: Fix dependencies for moved files.
95         * config/rs6000/t-rs6000: Fix dependencies for moved files.
96         * config/v850/t-v850: Fix dependencies for moved files.
97         * config/v850/t-v850e: Fix dependencies for moved files.
98
99         * config/m32c/m32c-pragma.c
100
101         * po/exgettext: Look in c-family/ also.
102
103 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
104
105         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
106         (mark_control_dependent_edges_necessary): Call it instead of marking
107         the last statement manually.
108         (propagate_necessity): Likewise.
109
110 2010-06-05  Jan Hubicka  <jh@suse.cz>
111
112         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
113         for dominance frontiers.
114         (rewrite_into_ssa): Update for bitmap heads in dominance
115         frontiers.
116         (insert_updated_phi_nodes_for): Likewise.
117         (update_ssa): Likewise.
118         * cfganal.c (compute_dominance_frontiers_1): Likewise.
119         (compute_dominance_frontiers): Likewise.
120         (compute_idf): Likewise.
121         * df-problems.c (df_md_local_compute): Likewise.
122
123 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
124
125         * target.h (struct gcc_target): Add memory_move_cost field.
126         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
127         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
128         * targhooks.c (default_memory_move_cost): New function.
129         * targhooks.h (default_memory_move_cost): Declare function.
130         * reload.h (memory_move_cost): Declare.
131         (memory_move_secondary_cost): Change type of 'in' argument to bool.
132         * reginfo.c (memory_move_cost): New function.
133         (memory_move_secondary_cost): Change type of 'in' argument to bool.
134         * ira.h (ira_memory_move_cost): Update comment.
135         * ira.c: (ira_memory_move_cost): Update comment.
136         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
137         with memory_move_cost.
138         * postreload.c (reload_cse_simplify_set): (Ditto.).
139         * reload1.c (choose_reload_regs): (Ditto.).
140         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
141         (MEMORY_MOVE_COST):  Revise documentation.
142
143         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
144         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
145         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
146         type of 'in' argument to bool.
147         (TARGET_MEMORY_MOVE_COST): Define.
148
149 2010-06-05  Jan Hubicka  <jh@suse.cz>
150
151         * ipa-pure-const.c (propagate): Fix typo in handling of functions
152         that cannot return.  Be more careful when merging the results with
153         previously known ones.
154
155 2010-06-05  Matthias Klose  <doko@ubuntu.com>
156
157         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
158         function to add the -iplugindir option.
159         (find_plugindir_spec_function): Add new declaration and function.
160         (static_spec_func): Use it for "find-plugindir".
161
162 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
163
164         PR c++/44361
165         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
166         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
167         statement expression.
168
169 2010-06-05  Jan Hubicka  <jh@suse.cz>
170
171         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
172         (df_rd_problem_data): Convert sparse_invalidated_by_call,
173         dense_invalidated_by_call to bitmap head.
174         (df_rd_alloc, df_rd_bb_local_compute_process_def,
175         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
176         df_rd_start_dump, df_lr_verify_transfer_functions,
177         df_live_verify_transfer_functions, df_chain_create_bb,
178         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
179         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
180         df_simulate_one_insn_forwards, df_md_alloc,
181         df_md_bb_local_compute_process_def,
182         df_md_bb_local_compute_process_def, df_md_local_compute,
183         df_md_transfer_function df_md_free): Update.
184
185 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
186
187         PR c/44322
188         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
189         target type for ADDR_EXPR; require no changes to qualifiers except
190         for function types.
191         * c-tree.h (c_build_type_variant): Remove.
192
193 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
194
195         * genautomata.c (get_excl_set): Do work per element, not per char.
196         (check_presence_pattern_sets): Similar.
197         (check_absence_pattern_sets): Similar.
198
199 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
200
201         * genautomata.c (curr_state_pass_num): Delete.
202         (min_issue_delay_pass_states): Delete.
203         (min_issue_delay): Delete.
204         (initiate_min_issue_delay_pass_states): Delete.
205         (output_min_issue_delay_table): Compute min_issue_delay_vect
206         using a breadth-first search variant.
207         (output_tables): Don't call initiate_min_issue_delay_pass_states.
208
209 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
210
211         PR boostrap/44421
212         * df-problems.c (df_lr_bb_local_compute): Updated for embedded
213         bitmaps.
214         (df_byte_lr_bb_local_compute): Likewise.
215
216 2010-06-03  Jason Merrill  <jason@redhat.com>
217
218         Implement noexcept operator (5.3.7)
219         * c-common.c (c_common_reswords): Add noexcept.
220         * c-common.h (enum rid): Add RID_NOEXCEPT.
221
222 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
223
224         * config/darwin-driver.c (darwin_default_min_version): Use
225         GCC-specific formats in diagnostics.
226         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
227         diagnostics.
228         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
229         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
230         eval_spec_function, handle_braces, process_brace_body, main,
231         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
232         getenv_spec_function, compare_version_strings,
233         version_compare_spec_function): Use GCC-specific formats in
234         diagnostics.
235
236 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
237
238         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
239         that operand 0 and operand 1 are equal.
240         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
241         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
242         and operand 1 are equal.
243         <default>: Ditto. Remove ??? comment.
244         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
245         and operand 1 are equal.
246         <default>: Ditto. Remove ??? comment.
247         (*adddi_4) <default>:  Remove assert that operand 0 and operand 1
248         are equal.
249         (*add<mode>_4) <default>: Ditto.
250         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
251
252 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
253
254         * config/i386/i386-protos.h (ix86_print_operand): Declare.
255         * config/i386/i386.c (ix86_print_operand): Make non-static.
256         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
257         * output.h (output_operand): Declare.
258         * final.c (output_operand): Make non-static.
259
260 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
261
262         PR rtl-optimization/44013
263         * sched-deps.c (add_dependence_list_and_free): Don't free lists
264         when processing debug insns.
265
266         PR debug/41371
267         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
268         recursing.  Check that recursion is bounded.  Rename inner var
269         to avoid hiding incoming argument.
270
271 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
272
273         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
274         operands[2] == 255.
275         (*addqi_3): Ditto.
276         (*addqi_4): Ditto.
277         (*addqi_5): Ditto.
278         (*addqi_ext_1_rex64): Ditto.
279         (*addqi_ext_1): Ditto.
280
281         (*addqi_4): Check for incdec_operand in QImode.
282
283         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
284         using SWI mode iterator.
285         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
286         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
287         mode iterator.
288         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
289         using SWI mode iterator.
290
291 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
292
293         PR c/25880
294         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
295         * c-format.c (gcc_diag_flag_specs): Add hash.
296         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
297         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
298         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
299         pp_c_cv_qualifiers. Handle qualifiers spelling here.
300         (pp_c_type_qualifier_list): Call the function above.
301         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
302         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
303         (WARN_FOR_QUALIFIERS): New macro.
304         (convert_for_assignment): Use it.
305
306 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
307
308         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
309
310 2010-06-04  Jan Hubicka  <jh@suse.cz>
311
312         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
313         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
314         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
315         DF_BYTE_LR_OUT): Update for embedded bitmaps.
316         * fwprop.c (single_def_use_enter_block): Likewise.
317         * ddg.c (create_ddg_dep_from_intra_loop_link,
318         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
319         * loop-iv.c (latch_dominating_def): Likewise.
320         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
321         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
322         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
323         df_rd_transfer_function, df_rd_top_dump,
324         df_rd_bottom_dump): Update.
325         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
326         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
327         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
328         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
329         df_lr_verify_solution_start, df_lr_verify_solution_end,
330         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
331         df_live_free_bb_info, df_live_alloc, df_live_reset,
332         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
333         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
334         df_live_verify_solution_start, df_live_verify_solution_end,
335         df_live_verify_transfer_functions, df_chain_create_bb,
336         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
337         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
338         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
339         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
340         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
341         df_byte_lr_transfer_function, df_byte_lr_top_dump,
342         df_byte_lr_bottom_dump, df_create_unused_note,
343         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
344         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
345         df_md_transfer_function, df_md_init, df_md_confluence_0,
346         df_md_confluence_n,
347         df_md_top_dump, df_md_bottom_dump): Update.
348         (struct df_lr_problem_data): Embedd bitmap headers.
349
350 2010-06-04  Jan Hubicka  <jh@suse.cz>
351
352         * dce.c (dce_process_block): Do not re-scan already marked
353         instructions.
354
355 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
356
357         PR rtl-optimization/39871
358         PR rtl-optimization/40615
359         PR rtl-optimization/42500
360         PR rtl-optimization/42502
361         * ira.c (init_reg_equiv_memory_loc: New function.
362         (ira): Call it twice.
363         * reload.h (calculate_elim_costs_all_insns): Declare.
364         * ira-costs.c: Include "reload.h".
365         (regno_equiv_gains): New static variable.
366         (init_costs): Allocate it.
367         (finish_costs): Free it.
368         (ira_costs): Call calculate_elim_costs_all_insns.
369         (find_costs_and_classes): Take estimated elimination costs
370         into account.
371         (ira_adjust_equiv_reg_cost): New function.
372         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
373         * reload1.c (init_eliminable_invariants, free_reg_equiv,
374         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
375         (elim_bb): New static variable.
376         (reload): Move code out of here into init_eliminable_invariants and
377         free_reg_equiv.  Call them.
378         (calculate_elim_costs_all_insns): New function.
379         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
380         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
381         but call note_reg_elim_costly if we turned a valid memory address
382         into an invalid one.
383         * Makefile.in (ira-costs.o): Depend on reload.h.
384
385 2010-06-04  Julian Brown  <julian@codesourcery.com>
386
387         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
388         for pool ranges.
389
390 2010-06-04  Richard Guenther  <rguenther@suse.de>
391
392         PR lto/41584
393         * cgraph.h (struct varpool_node): Add lto_file_data field.
394         * lto-cgraph.c (input_varpool_node): Initialize it.
395
396 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
397
398         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
399         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
400         predicate in "type" attribute calculation.
401         (*addsi_1_zext): Ditto.
402         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
403         (*addsi_2_zext): Ditto.
404         (*add<mode>_3): Ditto.
405         (*addsi_3_zext): Ditto.
406         (*add<mode>_5): Ditto.
407
408 2010-06-03  Jan Hubicka  <jh@suse.cz>
409
410         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
411         of bitmap_bit_p.
412         * cfganal.c (compute_dominance_frontiers_1): Likewise.
413
414 2010-06-03  Jan Hubicka  <jh@suse.cz>
415
416         * df-problems.c (df_create_unused_note, df_note_bb_compute):
417         micro-optimize the checks when to add new note.
418
419 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
420
421         * final.c (output_asm_insn): Call
422         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
423         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
424         (output_address): Call targetm.asm_out.print_operand_address.
425         Update comments.
426         * target.h (struct gcc_target): Add print_operand,
427         print_operand_address, and print_operand_punct_valid_p fields.
428         * targhooks.h (default_print_operand): Declare.
429         (default_print_operand_address): Declare.
430         (default_print_operand_punct_valid_p): Declare.
431         * targhooks.c (default_print_operand): Define.
432         (default_print_operand_address): Define.
433         (default_print_operand_punct_valid_p): Define.
434         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
435         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
436         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
437         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
438         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
439         * vmsdbgout.c (addr_const_to_string): Update comment.
440         * config/i386/i386.c (print_operand): Rename to...
441         (ix86_print_operand): ...this.  Make static.
442         (print_operand_address): Rename to...
443         (ix86_print_operand_address): ...this.  Make static.  Call
444         ix86_print_operand instead of PRINT_OPERAND.
445         (ix86_print_operand_punct_valid_p): New function.
446         (TARGET_PRINT_OPERAND): Define.
447         (TARGET_PRINT_OPERAND_ADDRESS): Define.
448         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
449         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
450         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
451         (PRINT_OPERAND): Delete.
452         (PRINT_OPERAND_ADDRESS): Delete.
453         * config/i386/i386-protos.h (print_operand): Delete prototype.
454         (print_operand_address): Delete prototype.
455
456 2010-06-03  Richard Guenther  <rguenther@suse.de>
457
458         PR tree-optimization/44403
459         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
460         Preserve pointer qualifiers.
461         (vect_create_data_ref_ptr): Likewise.
462
463 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
464
465         PR c++/44294
466         * defaults.h (MAX_FIXED_MODE_SIZE): New.
467
468         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
469
470 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
471
472         PR debug/44375
473         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
474         return false if merging the bbs would lead to goto_locus
475         location being lost from the IL.
476
477 2010-06-03  Jan Hubicka  <jh@suse.cz>
478             Jakub Jelinek  <jakub@redhat.com>
479
480         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
481         set->regs[i] is NULL or has just one entry.
482
483 2010-06-03  Jan Hubicka  <jh@suse.cz>
484
485         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
486         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
487
488 2010-06-03  Paul Brook  <paul@codesourcery.com>
489
490         * config/arm/arm.c (FL_TUNE): Define.
491         (arm_default_cpu, arm_cpu_select): Remove.
492         (all_cores): Populate core field.
493         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
494         (arm_find_cpu): New function.
495         (arm_handle_option): Lookup cpu/architecture names.
496         (arm_override_options): Cleanup mcpu/march/mtune handling.
497         (arm_file_start): Ditto.
498
499 2010-06-03  Alan Modra  <amodra@gmail.com>
500
501         PR target/44169
502         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
503         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
504         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
505         (rs6000_emit_load_toc_table): Likewise.
506
507 2010-06-02  Jan Hubicka  <jh@suse.cz>
508
509         * passes.c (init_optimization_passes): Put ipa reference
510         after ipa pure-const.
511
512 2010-06-02  Jan Hubicka  <jh@suse.cz>
513
514         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
515         calls_read_all and calls_write_all.
516         (get_reference_optimization_summary): Fix formatting.
517         (is_proper_for_analysis): Check that decl is not readonly.
518         (propagate_bits): Check CONST/PURE/noreturn flags.
519         (ipa_init): Move all_module_statics to optimization_summary_obstack.
520         (analyze_function): Ignore indirect edges.
521         (copy_global_bitmap): For all module statics, do nothing.
522         (generate_summary): Do not print calls_read_all/calls_write_all.
523         (read_write_all_from_decl): Take node as argument; check
524         cgraph_node_cannot_return.
525         (propagate): Reorganize read_all/write_all computation;
526         check indirect edges; check ecf flags; use all_module_statics
527         in the results; do not free all_module_statics.
528         (stream_out_bitmap): Handle all_module_statics.
529         (ipa_reference_write_optimization_summary): Likewise; use
530         varpool/cgraph encoders to get boundaries.
531         (ipa_reference_read_optimization_summary): Read in all_module_statics;
532         use it when possible.
533
534 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
535
536         PR target/44218
537         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
538         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
539
540         * doc/extend.texi (powerpc builtins): Document vec_recip,
541         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
542
543         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
544         (rs6000_emit_swrsqrt): Ditto.
545         (rs6000_emit_swdivsf): Delete.
546         (rs6000_emit_swdivdf): Ditto.
547         (rs6000_emit_swrsqrtsf): Ditto.
548
549         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
550         describe the reciprocal estimate support for each type.
551         (recip_options): Map -mrecip=<opt> into option bits.
552         (gen_2arg_fn_t): New typedef for binary rtx gen function.
553         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
554         reciprocal estimate instructions.
555         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
556         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
557         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
558         cost information if -mdebug=cost or -mdebug=reg.
559         (rs6000_override_options): Set -mrecip-precision for power6, and
560         power7 machines.  If -mvsx or -mdfp, enable various options that
561         came in previous instruction set ISAs, unless the option was
562         explicitly disabled by the command line option.  Parse
563         -mrecip=<opt> options.
564         (rs6000_builtin_vectorized_function): Add support for vectorizing
565         the reciprocal estimate builtins and expansions.
566         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
567         (bdesc_2arg): Add reciprocal estimate builtins.
568         (bdesc_1arg): Add reciprocal square root estimate builtins.
569         (rs6000_expand_builtin): Rewrite to use a switch statement,
570         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
571         (rs6000_init_builtins): Create declarations for reciprocal
572         estimate builtins.
573         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
574         sized, prefer traditional floating point registers, if integer
575         vector types, prefer altivec registers.  Don't actually look at
576         the memory address any more.
577         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
578         builtins.
579         (rs6000_load_constant_and_splat): New helper function to load up
580         the constant for reciprocal estimate instructions.
581         (rs6000_emit_madd): New helper function for generating
582         multiply/add type instructions, based on the current switches.
583         (rs6000_emit_msub): Ditto.
584         (rs6000_emit_mnsub): Ditto.
585         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
586         replace a divide with a reciprocal estimate and fixup, adding
587         support for machines with high precision and vectors.
588         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
589         low precision machines.
590         (rs6000_emit_swdiv): New common function to be called to replace a
591         division with reciprocal estimate and fixup.
592         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
593         for double and vector types.  Add support for high precision machines.
594
595         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
596         the reciprocal estimate instructions can be generated.
597         (TARGET_FRE): Ditto.
598         (TARGET_FRSQRTES): Ditto.
599         (TARGET_FRSQRTE): Ditto.
600         (RS6000_RECIP_*): New macros for reciprocal estimate support.
601
602         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
603         square root estimate on vectors.
604         (re<mode>2): New insn for reciprocal division estimate on vectors.
605
606         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
607         New builtin.
608         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
609         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
610         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
611         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
612         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
613         (RS6000_BUILTIN_RSQRT): Ditto.
614         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
615         floating point builtin.
616
617         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
618         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
619         __RECIP_PRECISION__ based on the command line switches.
620         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
621
622         * config/rs6000/rs6000.opt (-mrecip): Document add support for
623         replacing division instructions with reciprocal estimate and fixup.
624         (-mrecip=<opt>): New option.
625         (-mrecip-precision): Ditto.
626
627         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
628         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
629         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
630         precision scalar.
631
632         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
633         (UNSPEC_VREFP): Ditto.
634         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
635         conterparts with regard to support of -mno-fused-madd and -ffast-math.
636         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
637         reciprocal estimate instructions to be generated.
638         (altivec_vrefp): Ditto.
639
640         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
641         estimate support.
642         (rreg): New mode attribute for reciprocal estimate support.
643         (recip<mode>3): New insn for division using reciprocal estimate
644         and fixup builtins.
645         (divide define_split): New define_split to convert floating point
646         division to use reciprocal estimate if the user used the
647         appropriate options and the split is run when we can add new
648         pseudo registers for the fixup.
649         (rsqrt<mode>2): New insn for reciprocal square root support.
650         (recipsf3): Move into recip<mode>3.
651         (recipdf3): Ditto.
652         (fres): Use TARGET_FRES.
653         (rsqrtsf2): Move into rsqrt<mode>2.
654         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
655         (copysignsf3): Add support for VSX.
656         (fred): Use TARGET_FRE.
657         (fred_fpr): Ditto.
658         (rsqrtdf_internal1): New function for frsqrte instruciton.
659
660         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
661         (vec_rsqrt): Ditto.
662
663 2010-06-03  Richard Guenther  <rguenther@suse.de>
664
665         PR middle-end/44291
666         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
667         (set_user_assembler_libfunc): Likewise.
668
669 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
670
671         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
672         defaults.h.
673         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
674         to defaults.h
675         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
676         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
677         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
678         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
679         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
680         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
681         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
682         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
683         * defaults.h: Updated for above mentioned changes.
684
685 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
686
687         * c-common.c: Remove header include of tm_p.h.
688         * Makefile.in (c-common.o): Remove TM_P_H dependency.
689
690 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
691
692         * tree.h (struct tree_decl_map): New type.
693         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
694         (tree_decl_map_hash): New prototype.
695         (debug_expr_for_decl, value_expr_for_decl): Change into
696         tree_decl_map hashtab from tree_map.
697         (init_ttree): Adjust initialization.
698         (tree_decl_map_hash): New function.
699         (decl_debug_expr_lookup, decl_debug_expr_insert,
700         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
701
702 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
703
704         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
705         linker emulations.
706         * configure: Regenerate.
707         * config.in: Regenerate.
708
709         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
710         (X86_64_EMULATION): Define.
711         (TARGET_LD_EMULATION): Use them.
712
713         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
714         (SPARC64_EMULATION): Define.
715         (LINK_ARCH_SPEC): Use them.
716
717 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
718
719         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
720         smallest_mode_for_size for computing the precision types of new
721         graphite IVs.  Do not call lang_hooks.types.type_for_size.
722
723 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
724
725         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
726         information.
727         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
728
729 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
730
731         PR middle-end/44363
732         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
733         return false instead.
734
735 2010-06-02  Jan Hubicka  <jh@suse.cz>
736
737         PR middle-end/44295
738         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
739         create new cgraph node to check callee.
740
741 2010-06-02  Richard Guenther  <rguenther@suse.de>
742
743         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
744
745 2010-06-02  Richard Guenther  <rguenther@suse.de>
746
747         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
748         (lto_wrapper_cleanup): ... this.  Do not exit.
749         (fatal): Adjust.  Exit here.
750         (fatal_perror): Likewise.
751         (fatal_signal): New function.
752         (main): Set up signal handlers to cleanup temporary files.
753         * Makefile.in (lto-wrapper.o): Adjust dependencies.
754
755 2010-06-02  Richard Guenther  <rguenther@suse.de>
756
757         PR tree-optimization/44377
758         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
759
760 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
761
762         * config/s390/2097.md (z10_fhex): Remove insn reservation.
763         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
764         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
765         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
766         instruction.
767         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
768
769 2010-06-02  Jan Hubicka  <jh@suse.cz>
770
771         * bitmap.c (bitmap_descriptor): Add search_iter.
772         (bitmap_find_bit): Increment it.
773         (print_statistics): Print it.
774
775 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
776
777         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
778         instead of gimple_build_call_vec.  Delete unnecessary local variable.
779
780 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
781
782         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
783         change from yesterday.
784
785 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
786
787         * c-ada-spec.c: Clean up redundant includes.
788
789 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
790
791         * gimplify.c: Do not include except.h and optabs.h.
792         (gimplify_body): Do not initialize RTL profiling.
793         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
794         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
795         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
796         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
797         langhooks.h.
798
799         * tree-pretty-print.h: Include pretty-print.h.
800         * gimple-pretty-print.h: Include pretty-print.h.
801
802         * tree-pretty-print.c: Do not include diagnostic.h.
803         * tree-vrp.c: Likewise.
804         * tree-tailcall.c: Likewise
805         * tree-scalar-evolution.c: Likewise
806         * tree-ssa-dse.c: Likewise
807         * tree-chrec.c: Likewise
808         * tree-ssa-sccvn.c: Likewise
809         * tree-ssa-copyrename.c: Likewise
810         * tree-nomudflap.c: Likewise
811         * tree-call-cdce.c: Likewise
812         * tree-stdarg.c: Likewise
813         * tree-ssa-math-opts.c: Likewise
814         * tree-nrv.c: Likewise
815         * tree-ssa-sink.c: Likewise
816         * tree-browser.c: Likewise
817         * tree-ssa-loop-ivcanon.c: Likewise
818         * tree-ssa-loop.c: Likewise
819         * tree-parloops.c: Likewise
820         * tree-ssa-address.c: Likewise
821         * tree-ssa-ifcombine.c: Likewise
822         * tree-if-conv.c: Likewise
823         * tree-data-ref.c: Likewise
824         * tree-affine.c: Likewise
825         * tree-ssa-phiopt.c: Likewise
826         * tree-ssa-coalesce.c: Likewise
827         * tree-ssa-pre.c: Likewise
828         * tree-ssa-live.c: Likewise
829         * tree-predcom.c: Likewise
830         * tree-ssa-forwprop.c: Likewise
831         * tree-ssa-dce.c: Likewise
832         * tree-ssa-ter.c: Likewise
833         * tree-ssa-loop-prefetch.c: Likewise
834         * tree-optimize.c: Likewise
835         * tree-ssa-phiprop.c: Likewise
836         * tree-object-size.c: Likewise
837         * tree-outof-ssa.c: Likewise
838         * tree-ssa-structalias.c: Likewise
839         * tree-switch-conversion.c: Likewise
840         * tree-ssa-reassoc.c: Likewise
841         * tree-ssa-operands.c: Likewise
842         * tree-vectorizer.c: Likewise
843         * tree-vect-data-refs.c: Likewise
844         * tree-vect-generic.c: Likewise
845         * tree-vect-stmts.c: Likewise
846         * tree-vect-patterns.c: Likewise
847         * tree-vect-slp.c: Likewise
848         * tree-vect-loop.c: Likewise
849         * tree-ssa-loop-ivopts.c: Likewise
850         * tree-ssa-loop-im.c: Likewise
851         * tree-ssa-loop-niter.c: Likewise
852         * tree-ssa-loop-unswitch.c: Likewise
853         * tree-ssa-loop-manip.c: Likewise
854         * tree-ssa-loop-ch.c: Likewise
855         * tree-dump.c: Likewise
856         * tree-complex.c: Likewise
857
858         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
859         * tree-ssa-uninit.c: Likewise
860         * tree-ssa-threadupdate.c: Likewise
861         * tree-ssa-uncprop.c: Likewise
862         * tree-ssa-ccp.c: Likewise
863         * tree-ssa-dom.c: Likewise
864         * tree-ssa-propagate.c: Likewise
865         * tree-ssa-alias.c: Likewise
866         * tree-dfa.c: Likewise
867         * tree-cfgcleanup.c: Likewise
868         * tree-sra.c: Likewise
869         * tree-ssa-copy.c: Likewise
870         * tree-ssa.c: Likewise
871         * tree-profile.c: Likewise
872         * tree-cfg.c: Likewise
873         * tree-ssa-threadedge.c: Likewise
874         * tree-vect-loop-manip.c: Likewise
875
876         * tree-inline.c: Do not include diagnostic.h and expr.h.
877         Include rtl.h.
878         (copy_decl_for_dup_finish): Do not use NULL_RTX.
879
880         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
881         * tree-loop-distribution.c: Likewise.
882
883 2010-06-01  Jan Hubicka  <jh@suse.cz>
884
885         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
886
887 2010-06-01  Jan Hubicka  <jh@suse.cz>
888
889         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
890         remove return value.
891         (split_bbs_on_noreturn_calls) .... here.
892         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
893         * tree-flow.h (fixup_noreturn_call): New.
894
895 2010-06-01  Jan Hubicka  <jh@suse.cz>
896
897         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
898
899 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
900
901         * tree.h (build_nt_call_list): Delete.
902         * tree.c (build_nt_call_list): Delete.
903
904 2010-06-01  Jan Hubicka  <jh@suse.cz>
905
906         * fwprop.c: Make emit-rtl.h include last.
907         * rtlanal.c: Include emit-rtl.h.
908         * genautomata.c: Output emit-rtl include into insn-automata.c
909         * df-scan.c: Include emit-rtl.h.
910         * haifa-sched.c: Indlude emit-rtl.h.
911         * mode-switching.c: Indlude emit-rtl.h.
912         * graph.c: Indlude emit-rtl.h.
913         * sel-sched.c: Include emit-rtl.h.
914         * sel-sched-ir.c: Include emit-rtl.h.
915         * ira-build.c: Include emit-rtl.h.
916         * emit-rtl.c: (first_insn, last_insn): Remove defines.
917         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
918         Move to emit-rtl.h.
919         (set_new_first_and_last_insn, get_last_insn_anywhere,
920         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
921         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
922         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
923         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
924         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
925         Use accessor functions.
926         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
927          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
928         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
929         mem_expr_equal_p): Move here from rtl.h.
930         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
931         Move here from emit-rtl.c; make inline.
932         * cfglayout.h: Include emit-rtl.h.
933         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
934          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
935         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
936         mem_expr_equal_p, get_insns, set_first-insn,
937         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
938         * reg-stack.c: Include emit-rtl.h.
939         * dce.c: Likewise.
940
941 2010-06-01  Jan Hubicka  <jh@suse.cz>
942
943         * cgraph.h (tree_function_versioning): Update prototype.
944         (cgraph_function_versioning): Update prototype.
945         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
946         bitmap.
947         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
948         (cgraph_materialize_clone, save_inline_function_body): Update use of
949         tree_function_versioning.
950         * tree-inline.c (copy_bb): Look for previous copied block to link
951         after; fix debug output.
952         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
953         (copy_body): Likewise.
954         (expand_call_inline): Update use of copy_body.
955         (tree_function_versioning): Update use of copy body; accept
956         blocks_to_copy and new_entry.
957
958 2010-06-01  Jan Hubicka  <jh@suse.cz>
959
960         * gegenrtl.c: Remove unnecesary prototypes.
961         (gendecl): Remove.
962         (gendef): Produce static inline.
963         (gencode): Remove.
964         (main): Do not decode parameters; generate header only.
965         * Makefile.in (genrtl.c): Remove.
966
967 2010-06-01  Jan Hubicka  <jh@suse.cz>
968
969         * tree-switch-conversion.c (build_one_array): Make it readonly.
970
971 2010-06-01  Richard Guenther  <rguenther@suse.de>
972
973         * optabs.c (init_optabs): Guard all accesses to reinit.
974         * ipa-pure-const.c (propagate): Fix another typo.
975         * opts.c (common_handle_option): Split assignment to bool.
976         * c-opts.c (c_common_handle_option): Likewise.
977
978 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
979             Matthew Gingell  <gingell@adacore.com>
980
981         * doc/invoke.texi: Mention -fdump-ada-spec.
982         * tree-dump.c (dump_files): Add ada-spec.
983         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
984         * tree-pass.h (tree_dump_index): Add TDI_ada.
985         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
986         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
987         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
988         * c-decl.c: Include c-ada-spec.h.
989         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
990         functions.
991         (c_write_global_declarations): Add handling of -fdump-ada-spec.
992         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
993         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
994         * c-ada-spec.h, c-ada-spec.c: New files.
995
996 2010-06-01  Richard Guenther  <rguenther@suse.de>
997
998         PR lto/43853
999         * ipa-pure-const.c (get_function_state): Hand back varying state
1000         if we do not have one.
1001         (has_function_state): New function.
1002         (duplicate_node_data): Adjust.
1003         (remove_node_data): Likewise.
1004         (pure_const_write_summary): Likewise.
1005         (propagate): Likewise.  Fix typo.
1006
1007 2010-06-01  Jan Hubicka  <jh@suse.cz>
1008
1009         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
1010         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
1011         (execute_all_ipa_transforms): Do not play with the states.
1012
1013 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1014
1015         * config/arm/t-linux-androideabi: New.
1016         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
1017
1018 2010-06-01  Jan Hubicka  <jh@suse.cz>
1019
1020         * tree-inline.c (estimate_num_insns): For stdarg functions look
1021         into call statement to count cost of argument passing.
1022
1023 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
1024
1025         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
1026         argument for fprintf.
1027         (ix86_output_addr_diff_elt): Likewise.
1028         (x86_function_profiler): Likewise.
1029         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
1030         (LPREFIX): Likewise.
1031         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1032
1033 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1034
1035         PR target/44338
1036         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
1037         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
1038         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
1039         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
1040         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
1041         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
1042         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
1043         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
1044         TARGET_FUSED_MADD.
1045
1046 2010-05-31  Jan Hubicka  <jh@suse.cz>
1047
1048         * tree.h (tree_range_check_failed): Declare noreturn.
1049
1050 2010-05-31  Jan Hubicka  <jh@suse.cz>
1051
1052         * gimple.c (gimple_call_builtin_p): New function.
1053         * gimple.h (gimple_call_builtin_p): Declare.
1054         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
1055         to exit.
1056         (execute_warn_function_return): BUILT_IN_RETURN is return.
1057         (split_critical_edges): Return edges are not critical.
1058         (is_ctrl_altering_stmt): Builtin_in_return is altering.
1059         (gimple_verify_flow_info): Handle built_in_return.
1060         (execute_warn_function_return): Handle built_in_return.
1061         * ipa-pure-const.c (check_call): Ignore builtin_return.
1062
1063 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1064
1065         PR middle-end/44337
1066         * expr.c (expand_assignment): Don't store anything for out-of-bounds
1067         array accesses with non-MEM.
1068
1069         PR tree-optimization/44182
1070         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
1071         newly needs to end a bb is followed by debug stmts, instead return
1072         true from the function at the end.
1073         (maybe_move_debug_stmts_to_successors): New function.
1074         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
1075
1076 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
1077
1078         PR target/44161
1079         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
1080
1081 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1082
1083         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
1084         for nested functions in non-optimized compilation.
1085
1086 2010-05-31  Richard Guenther  <rguenther@suse.de>
1087
1088         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
1089
1090 2010-05-30  Jan Hubicka  <jh@suse.cz>
1091
1092         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
1093
1094 2010-05-30  Richard Guenther  <rguenther@suse.de>
1095
1096         PR lto/42975
1097         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
1098         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
1099         no longer needed.
1100
1101 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
1102
1103         * config/darwin.c (output_objc_section_asm_op): Add comment.
1104         (name_needs_quotes): Add '_' to list of valid comment chars.
1105         (machopic_output_function_base_name): Remove unneeded quotes.
1106         (darwin_encode_section_info): Adjust asm whitespace.
1107         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
1108         (ASM_OUTPUT_LOCAL): Ditto.
1109         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
1110         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
1111         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
1112
1113 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1114
1115         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
1116         RS6000_OUTPUT_BASENAME unconditionally.
1117         (rs6000_output_function_epilogue): Likewise.
1118
1119 2010-05-30  Jan Hubicka  <jh@suse.cz>
1120
1121         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
1122         nodes.
1123
1124 2010-05-30  Richard Guenther  <rguenther@suse.de>
1125
1126         * tree-cfg.c (verify_gimple_assign_single): Implement
1127         verification for COND_EXPR rhs.
1128
1129 2010-05-30  Jan Hubicka  <jh@suse.cz>
1130
1131         * cgraph.h (cgraph_dump_file): Declare.
1132         * cgraphunit.c (cgraph_dump_file): Export.
1133         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
1134
1135 2010-05-30  Jan Hubicka  <jh@suse.cz>
1136
1137         * dwarf2out.c (reference_to_unused,
1138         premark_types_used_by_global_vars_helper): Avoid creation of new
1139         varpool nodes.
1140
1141 2010-05-30  Jan Hubicka  <jh@suse.cz>
1142
1143         * cgraph.h (cgraph_node_cannot_return,
1144         cgraph_edge_cannot_lead_to_return): New functions.
1145         * cgraph.c (cgraph_node_cannot_return,
1146         cgraph_edge_cannot_lead_to_return): Use them.
1147         * ipa-pure-const.c (pure_const_names): New static var.
1148         (check_call): Handle calls not leading to return.
1149         (pure_const_read_summary): Dump info read.
1150         (propagate): Dump info about propagation process; ignore side effects
1151         of functions not leading to exit; fix handling of pure functions.
1152
1153 2010-05-30  Jan Hubicka  <jh@suse.cz>
1154
1155         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
1156         for tail call epilogues.
1157
1158 2010-05-30  Jan Hubicka  <jh@suse.cz>
1159
1160         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
1161         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
1162         dump files.
1163
1164 2010-05-29  Jan Hubicka  <jh@suse.cz>
1165
1166         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
1167         node; remove references in node we no longer keep in cgrpah but need
1168         body of.
1169
1170 2010-05-29  Jan Hubicka  <jh@suse.cz>
1171
1172         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
1173
1174 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1175
1176         PR target/44165
1177         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
1178
1179 2010-05-29  Jan Hubicka  <jh@suse.cz>
1180
1181         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
1182         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
1183         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
1184         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
1185         debug_names_replaced_by, debug_update_ssa): Likewise.
1186         * sbitmap.c (debug_sbitmap): Likewise.
1187         * genrecog.c (debug_decision, debug_decision_list): Likewise.
1188         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
1189         debug_tree_chain): Likewise.
1190         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
1191         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
1192         * optabs.c  (debug_optab_libfuncs): Likewise.
1193         (verify_loop_closed_ssa): Likewise.
1194         * value-prof.c (verify_histograms): Likewise.
1195         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
1196         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
1197         * cfghooks.c (verify_flow_info): Likewise.
1198         * fold-const.c (debug_fold_checksum): Likewise.
1199         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
1200         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
1201         Likewise.
1202         * omega.c (debug_omega_problem): Likewise.
1203         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
1204         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
1205         * dominance.c (verify_dominators, debug_dominance_info,
1206         debug_dominance_tree): Likewise.
1207         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
1208         * df_regno_debug, df_ref_debug,
1209         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
1210         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
1211         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
1212         * sel-sched.c (debug_state): Likewise.
1213         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
1214         Likewise.
1215         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
1216         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
1217         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
1218         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
1219         Likewise.
1220         * c-pretty-print.c (debug_c_tree): Likewise.
1221         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
1222         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
1223         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
1224         * ebitmap.c (debug_ebitmap): Likewise.
1225         * function.c (debug_find_var_in_block_tree): Likewise.
1226         * print-rtl.c (debug_rtx): Likewise.
1227         (debug_rtx_count): Likewise.
1228         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
1229         * stor-layout.c (debug_rli): Likewise.
1230         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
1231         * tree-data-ref.c (debug_data_references,
1232         debug_data_dependence_relations, debug_data_reference,
1233         debug_data_dependence_relation, debug_rdg_vertex,
1234         debug_rdg_component, debug_rdg): Likewise.
1235         * tree-affine.c (debug_aff): Likewise.
1236         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
1237         Likewise.
1238         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
1239         * emit-rtl.c (verify_rtl_sharing): Likewise.
1240         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
1241         debug_value_expressions): Likewise.
1242         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
1243         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
1244         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
1245         * cfglayout.c (verify_insn_chain): Likewise.
1246         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
1247         debug_clast_stmt, debug_generated_program): Likewise.
1248         * ggc-page.c (debug_print_page_list): Likewise.
1249         * tree-ssa-ter.c (debug_ter): Likewise.
1250         * graphite-dependences.c (debug_pddr): Likewise.
1251         * sched-deps.c (debug_ds): Likewise.
1252         * tree-ssa.c (verify_ssa): Likewise.
1253         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
1254         debug_scattering_functions, debug_iteration_domains, debug_pdr,
1255         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
1256         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
1257         * tree-inline.c (debug_find_tree): Likewise.
1258         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
1259         debug_ppl_powerset_matrix): Likewise.
1260         * var-tracking.c (debug_dv): Likewise.
1261         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
1262         * cfgloop.c (verify_loop_structure): Likewise.
1263         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
1264         * c-common.c (verify_sequence_points): Likewise.
1265         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
1266         debug_candidates, debug_rgn_dependencies): Likewise.
1267         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
1268         * debug_constraint_graph, debug_solution_for_var,
1269         debug_sa_points_to_info): Likewise.
1270         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
1271         Likewie.
1272         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
1273         debug_loops, debug_loop, debug_loop_num): Likewise.
1274         * passes.c (debug_pass): Likewise.
1275         (dump_properties): Likewise; add cfglayout property.
1276         (debug_properties): Likewise.
1277         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
1278         * varpool.c (debug_varpool): Likewise.
1279         * regcprop.c (debug_value_data): Likewise.
1280         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
1281         debug_immediate_uses_for): Likewise.
1282
1283 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1284
1285         PR bootstrap/44315
1286         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
1287         Filter out insn-flags.h.
1288
1289 2010-05-29  Jan Hubicka  <jh@suse.cz>
1290
1291         * cgraph.h (struct varpool_node_set_def,
1292         struct cgraph_node_set_def): Remove unused AUX pointer.
1293         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
1294         VEC_empty macro.
1295
1296 2010-05-29  Jan Hubicka  <jh@suse.cz>
1297
1298         PR middle-end/44324
1299         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
1300
1301 2010-05-29  Richard Guenther  <rguenther@suse.de>
1302
1303         * lto-streamer.c (cached_bp): New global variable.
1304         (bitpack_create): Return the cached bitpack, if available.
1305         (bitpack_delete): Clear and cache the bitpack, if appropriate.
1306         (bp_pack_value): Remove redundant asserts.
1307
1308 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1309
1310         PR middle-end/44306
1311         * tree-if-conv.c (is_true_predicate): New.
1312         (is_predicated): Use is_true_predicate.
1313         (add_to_predicate_list): Same.  Do not use unshare_expr.
1314         (add_to_dst_predicate_list): Same.
1315
1316 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1317
1318         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
1319         field on edges.
1320         (predicate_bbs): Same.
1321         (clean_predicate_lists): Same.
1322         (find_phi_replacement_condition): Do not AND the predicate from
1323         edge->aux.
1324
1325 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1326
1327         PR bootstrap/44315
1328         * Makefile.in (build/gencondmd.o): Add a missing `\'.
1329
1330 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1331
1332         PR target/44261
1333         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
1334         (negdf2): Adjust expander pattern and use negdf2_slow.
1335         (negsf2): Likewise.
1336
1337 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
1338
1339         * basic-block.h (struct control_flow_graph): Move last_label_uid field
1340         up.
1341         * df.h (struct df_base_ref): Move regno field up.
1342         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
1343         * expr.h (struct separate_ops): Move location field up.
1344         * optabs.h (struct optab_d): Move libcall_basename field down.
1345         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
1346         * config/i386/i386.h (struct machine_function): Convert call_abi field
1347         into a bitfield.  Move cfa field to the end of the structure.
1348
1349 2010-05-29  Jan Hubicka  <jh@suse.cz>
1350
1351         * varpool.c (varpool_get_node): Fix lookup.
1352
1353 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1354
1355         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
1356         RTL specific prototypes with #ifdef RTX_CODE.
1357         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
1358         * config/spu/t-spu-elf: Fix dependencies.
1359
1360         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
1361
1362 2010-05-29  Mike Stump  <mikestump@comcast.net>
1363
1364         PR bootstrap/44315
1365         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
1366         TM_H when building to avoid dependency loops.
1367
1368 2010-05-29  Jan Hubicka  <jh@suse.cz>
1369
1370         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
1371         refs and body; not the whole node for masters of materialized
1372         clones.
1373
1374 2010-05-29  Mike Stump  <mikestump@comcast.net>
1375
1376         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
1377
1378 2010-05-29  Jan Hubicka  <jh@suse.cz>
1379
1380         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
1381         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
1382         use of clone_function_name.
1383         * cgraph.h (cgraph_create_virtual_clone,
1384         cgraph_function_versioning): update prototypes.
1385         (clone_function_name): Declare.
1386         * ipa-cp.c (ipcp_insert_stage): Update call of
1387         cgraph_create_virtual_clone.
1388         * omp-low.c (create_omp_child_function_name): Use
1389         cgraph_create_virtual_clone.
1390         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
1391         (cgraph_function_versioning): Take SUFFIX argument; produce new name
1392         and make decl local.
1393
1394 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1395
1396         * vec.h: Include statistics.h
1397         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
1398         with VEC_H.
1399
1400 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1401
1402         * c-lex.c: Do not include c-tree.h.
1403         * c-pretty-print.c: Likewise.
1404         * c-opts.c: Likewise.
1405         * c-gimplify.c: Likewise.
1406         * c-common.c: Likewise.
1407         * c-dump.c: Likewise.  Include c-common.h.
1408
1409 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1410
1411         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
1412         before including diagnostic-core.h.
1413         (c_cpp_error): New prototype moved from c-tree.h.
1414         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
1415         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
1416         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
1417         (c_cpp_error): Prototype moved to c-common.h.
1418         * Makefile.in: Update dependency for C_COMMON_H.
1419
1420 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1421
1422         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
1423         * c-common.c (c_register_addr_space): Remove here.
1424         * c-decl.c (c_register_addr_space): Re-add here.
1425
1426 2010-05-28  Mike Stump  <mikestump@comcast.net>
1427
1428         * config/darwin-c.c: Remove c-tree.h include.
1429
1430 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1431
1432         * gcc.c: Include diagnostic.h.
1433         (error_count): Remove.  All users changed to use errorcount.
1434         (programname): Remove.  All users changed to use progname.
1435         (fancy_abort, internal_error, fatal_error, error, warning, inform,
1436         fnotice): Remove.
1437         (execute): Don't include "Internal error" and bug reporting
1438         information in argument of internal_error call.
1439         (process_command): Don't increment error_count after calling
1440         perror_with_name.
1441         (input_filename): Rename to gcc_input_filename.  All users
1442         changed.
1443         (main): Call diagnostic_initialize.  Register delete_temp_files
1444         with atexit.  Use seen_error to test for errors.
1445         * gcc.h: Include diagnostic-core.h.
1446         (fatal_error, error, warning): Remove.
1447         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
1448         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
1449         (gcc.o): Update dependencies.
1450
1451 2010-05-28  Jeff Law  <law@redhat.com>
1452
1453         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
1454         functions.
1455         * ira.h (ira_bad_reload_regno): Declare
1456         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
1457
1458         * ira-color.c (update_curr_costs): Free updated hard reg costs.
1459         (ira_reassign_conflict_allocnos): Remove bogus asserts.
1460         (allocno_reload_assign): Likewise.
1461
1462 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
1463
1464         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
1465         build1_stat.
1466
1467 2010-05-28  Richard Guenther  <rguenther@suse.de>
1468
1469         PR lto/44312
1470         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
1471         Stream fixed-point constants mode.
1472         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
1473         and TYPE_PRECISION.
1474         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
1475         Stream fixed-point constants mode.
1476         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
1477         and TYPE_PRECISION.
1478
1479 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1480
1481         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
1482         only place it was called from.
1483         (number_of_latch_executions): Do not return chrec_dont_know when the
1484         may_be_zero is a runtime condition: instead, return a COND_EXPR
1485         including the may_be_zero condition.
1486         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
1487         of nb_iterations.
1488         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
1489         COND_EXPRs.
1490
1491 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1492
1493         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
1494         generate COND_EXPRs for degenerate_phi_result.
1495
1496 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1497
1498         PR middle-end/44293
1499         * tree-if-conv.c (if_convertible_loop_p): Check the
1500         if-convertibility of phi nodes in non predicated BBs.
1501
1502 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1503
1504         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
1505
1506 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1507
1508         PR driver/15303
1509         * gcc.c (inform, warning, inform): New functions.
1510         (fatal_ice): Rename to internal_error; change cmsgid parameter to
1511         gmsgid.  All callers changed.
1512         (notice): Rename to fnotice; add parameter fp.  All callers
1513         changed.
1514         (fatal_error): Rename to fatal_signal.  All users changed.
1515         (fatal): Rename to fatal_error; change cmsgid parameter to
1516         gmsgid.  All callers changed.
1517         (process_command): Use warning instead of error for warnings.
1518         (end_going_arg): Don't use _() around argument of error.
1519         (do_spec_1): Use inform for message from %n specs.  Use warning
1520         instead of error for warnings.
1521         (main): Use inform for comparison messages.  Use warning for
1522         message about unused linker input.
1523         (error): Increment error_count.  Print "error: ".
1524         * gcc.h (fatal): Change to fatal_error.
1525         (warning): Declare.
1526         * config/darwin-driver.c (darwin_default_min_version): Use warning
1527         instead of fprintf for warnings.
1528         * cppspec.c (lang_specific_driver): Use fatal_error instead of
1529         fatal.
1530
1531 2010-05-28  Julian Brown  <julian@codesourcery.com>
1532
1533         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
1534         (*thumb2_addsi3_compare0_scratch): New.
1535         * config/arm/constraints.md (Pv): New.
1536         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
1537         for ARM mode only.
1538         (*addsi3_compare0_scratch): Likewise.
1539
1540 2010-05-28  Jan Hubicka  <jh@suse.cz>
1541
1542         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
1543         check.
1544         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
1545         only on local statics.
1546
1547 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
1548
1549         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
1550
1551 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
1552
1553         PR bootstrap/44314
1554         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
1555         (OPTION_GLIBC): Define.
1556
1557 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
1558
1559         PR debug/41048
1560         * dwarf2out.c (double_int_type_size_in_bits): New function.
1561         (round_up_to_align): Change first argument and return value to
1562         double_int.
1563         (field_byte_offset): Work internally on double_ints.
1564
1565         PR target/43636
1566         * builtins.c (expand_movstr): Use a temporary pseudo instead
1567         of target even when target is not NULL and not const0_rtx, but
1568         fails movstr predicate.
1569         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
1570
1571 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1572
1573         * final.c (rest_of_clean_state): Use %m in errors instead of
1574         strerror (errno).
1575         * gengtype.c (read_input_list, close_output_files): Use xstrerror
1576         instead of strerror.
1577         * toplev.c (process_options): Use %m in errors instead of strerror
1578         (errno).
1579         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
1580         (errno).
1581
1582 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
1583
1584         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
1585         (ix86_canonical_va_list_type): Make static.  Add declaration.
1586         (ix86_enum_va_list): Make static.  Reindent.
1587         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
1588         (ix86_canonical_va_list_type): Ditto.
1589         (ix86_enum_va_list): Ditto.
1590
1591 2010-05-28  Richard Guenther  <rguenther@suse.de>
1592
1593         * lto-wrapper.c (run_gcc): With -save-temps generate a
1594         user-visible ltrans filename.  Fixup ltrans unit numbering.
1595
1596 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
1597
1598         * c-common.c (c_common_nodes_and_builtins): Replace use
1599         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
1600         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
1601         to ix86_enum_va_list.
1602         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
1603         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
1604         (TARGET_ENUM_VA_LIST_P): Add hook description.
1605         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
1606         * target.h (gcc_target): Add enum_va_list hook.
1607
1608         PR bootstrap/44299
1609         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
1610         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
1611         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
1612
1613 2010-05-28  Alan Modra  <amodra@gmail.com>
1614
1615         PR target/44266
1616         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1617         emit_library_call machinery to set up __tls_get_addr calls.
1618
1619 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1620
1621         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
1622
1623 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
1624
1625         Revert fix for PR c++/44188
1626         * c-common.c (is_typedef_decl): Revert the moving of  this
1627         definition ...
1628         * tree.c (is_typedef_decl): ... here.
1629         (typdef_variant_p): Revert the moving of this  definition
1630         here from gcc/cp/tree.c.
1631         * c-common.h (is_typedef_decl): Revert the moving of this
1632         declaration ...
1633         * tree.h (is_typedef_decl): ... here.
1634         (typedef_variant_p): Revert the moving of this  declaration here
1635         from gcc/cp/cp-tree.h
1636         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
1637         (gen_tagged_type_die): Revert the splitting out of ...
1638         (gen_type_die_with_usage): ... this function. Revert the anonymous
1639         tagged type handling.
1640         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
1641         typedefs naming anonymous tagged types.
1642
1643 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
1644
1645         * config/rs6000/rs6000-modes.def (PSImode): Delete.
1646
1647 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
1648
1649         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
1650         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
1651         throughout.
1652         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
1653         "xer" to "ca".
1654         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
1655         XER_REGS to CA_REGS throughout.
1656         * config/rs6000/rs6000.h: Same.
1657         (ADDITIONAL_REGISTER_NAMES): Add "xer".
1658         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
1659         that mode_iterator "P" is the size for arithmetic carries as well.
1660         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
1661
1662 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
1663
1664         PR bootstrap/44255
1665         * combine.c (struct rtx_subst_pair): Define unconditionally.
1666         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
1667         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
1668         Call make_compound_operation on pair->to.
1669         (propagate_for_debug): Don't call make_compound_operation here.
1670         Always use simplify_replace_fn_rtx.
1671
1672 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
1673
1674         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
1675         * config/xtensa/xtensa.c (override_options): Check
1676           TARGET_FORCE_NO_PIC and set flag_pic.
1677         * config/xtensa/xtensa.opt: Document -mforce-no-pic
1678
1679 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
1680
1681         PR bootstrap/44299
1682         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
1683         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
1684
1685 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1686
1687         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
1688         toplev.h.
1689         * diagnostic.c: Don't include toplev.h.
1690         (progname): Define.  Moved from toplev.c.
1691         (seen_error): New function.
1692         * diagnostic.h: Include diagnostic-core.h.
1693         (diagnostic_t, emit_diagnostic): Don't declare here.
1694         * toplev.c (progname): Move to toplev.c.
1695         (emit_debug_global_declarations, compile_file, finalize,
1696         do_compile, toplev_main): Use seen_error.
1697         * toplev.h: Include diagnostic-core.h.
1698         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
1699         internal_error, warning, warning_at, error, error_n, error_at,
1700         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
1701         verbatim, fnotice, progname): Move to diagnostic-core.h.
1702         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
1703         (expand_builtin_expect): Use seen_error.
1704         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
1705         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
1706         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
1707         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
1708         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
1709         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
1710         errorcount for errors.
1711         * c-opts.c (c_common_finish): Use seen_error.
1712         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
1713         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
1714         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
1715         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
1716         (get_coverage_counts): Use seen_error.
1717         * dwarf2out.c (dwarf2out_finish): Use seen_error.
1718         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
1719         gimplify_body): Use seen_error.
1720         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
1721         * ipa-pure-const.c (gate_pure_const): Use seen_error.
1722         * ipa-reference.c (gate_reference): Use seen_error.
1723         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
1724         * lambda-code.c: Include diagnostic-core.h instead of
1725         diagnostic.h.
1726         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
1727         * lto-compress.c: Include diagnostic-core.h instead of
1728         diagnostic.h.
1729         * lto-section-in.c: Include diagnostic-core.h instead of
1730         diagnostic.h.
1731         * lto-streamer-out.c: Include diagnostic-core.h instead of
1732         diagnostic.h.
1733         * lto-streamer.c: Include diagnostic-core.h instead of
1734         diagnostic.h.
1735         (gate_lto_out): Use seen_error.
1736         * matrix-reorg.c: Include diagnostic-core.h instead of
1737         diagnostic.h.
1738         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
1739         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
1740         (gate_expand_omp, lower_omp_1): Use seen_error.
1741         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
1742         (rest_of_decl_compilation, rest_of_type_compilation,
1743         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
1744         * tree-cfg.c (label_to_block_fn): Use seen_error.
1745         * tree-inline.c (optimize_inline_calls): Use seen_error.
1746         * tree-mudflap.c (mudflap_finish_file): Use
1747         seen_error.
1748         * tree-optimize.c (gate_all_optimizations,
1749         gate_all_early_local_passes, gate_all_early_optimizations): Use
1750         seen_error.
1751         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
1752         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
1753         (varpool_remove_unreferenced_decls,
1754         varpool_assemble_pending_decls): Use seen_error.
1755         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
1756         (TOPLEV_H, DIAGNOSTIC_H): Update.
1757         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
1758         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
1759         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
1760         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
1761         coverage.o, lambda-code.o): Update dependencies.
1762
1763 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
1764
1765         PR c++/44188
1766         * c-common.c (is_typedef_decl): Move this definition ...
1767         * tree.c (is_typedef_decl): ... here.
1768         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1769         * c-common.h (is_typedef_decl): Move this declaration ...
1770         * tree.h (is_typedef_decl): ... here.
1771         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1772         * dwarf2out.c (is_naming_typedef_decl): New function.
1773         (gen_tagged_type_die): Split out of ...
1774         (gen_type_die_with_usage): ... this function. When an anonymous
1775         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1776         is emitted for the typedef.
1777         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1778         anonymous tagged types.
1779
1780 2010-05-27  Jason Merrill  <jason@redhat.com>
1781
1782         * print-tree.c (debug_vec_tree): New fn.
1783         (print_vec_tree): New fn.
1784         * tree.h: Declare them.
1785         * gdbinit.in (pvt): New command.
1786
1787         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
1788
1789         * gdbinit.in (pdd): New command.
1790
1791 2010-05-27  Jan Hubicka  <jh@suse.cz>
1792
1793         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
1794         (update_caller_keys): Return early if there are no callers;
1795         only update fibheap when decresing the key.
1796         (update_callee_keys): Avoid recursion.
1797         (decide_inlining_of_small_functions): When badness does not match;
1798         re-insert into fibheap.
1799
1800 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
1801
1802         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
1803         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
1804         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
1805         (ALL_HOST_OBJS): Now a union of the above two.
1806         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
1807         all files in ALL_HOST_FRONTEND_OBJS.
1808         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
1809
1810         * c-common.c: Pretend to be a backend file by undefining
1811         IN_GCC_FRONTEND (still need rtl.h here).
1812
1813 2010-05-27  Jan Hubicka  <jh@suse.cz>
1814
1815         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
1816         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
1817
1818 2010-05-27  Jan Hubicka  <jh@suse.cz>
1819
1820         * sched-ebb.c: Rename struct deps to struct deps_desc.
1821         * ddg.c: Likewise.
1822         * sel-sched-ir.c: Likewise.
1823         * sched-deps.c: Likewise.
1824         * sched-int.h: Likewise.
1825         * sched-rgn.c: Likewise.
1826
1827 2010-05-27  Jon Beniston <jon@beniston.com>
1828
1829         PR 43726
1830         * config/lm32/lm32.h: Remove definition of
1831         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
1832
1833 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1834
1835         PR lto/44230
1836         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
1837
1838 2010-05-27  Richard Guenther  <rguenther@suse.de>
1839
1840         PR tree-optimization/44284
1841         * tree-vect-stmts.c (vectorizable_assignment): Handle
1842         sign-changing conversions as simple copy.
1843
1844 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1845
1846         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
1847         Bionic C library.
1848         (__gthread_active_p): Check for pthread_create if compiling against
1849         Bionic C library.
1850
1851 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1852
1853         Support compilation for Android platform.  Reimplement -mandroid.
1854
1855         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
1856         (*android*): Set ANDROID_DEFAULT.
1857         (arm*-*-linux*): Include linux-android.h.
1858         (arm*-*-eabi*): Don't include previous -mandroid implementation.
1859         * config/arm/eabi.h: Remove, move Android-specific parts ...
1860         * config/linux-android.h: ... here.  New file.
1861         * config/arm/eabi.opt: Rename to ...
1862         * config/linux-android.opt: ... this.
1863         (mandroid): Allow -mno-android option.  Initialize based on
1864         ANDROID_DEFAULT.
1865         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
1866         Move logic to corresponding LINUX_TARGET_* macros.
1867         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
1868         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
1869         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
1870         Android definitions.
1871         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
1872         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
1873         Document.
1874
1875 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1876
1877         Add support for Bionic C library
1878
1879         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
1880         macro.
1881         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
1882         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
1883
1884         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
1885         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
1886         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
1887         to support multiple C libraries.  Handle Bionic.
1888         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
1889         (BIONIC_DYNAMIC_LINKER64): Define.
1890         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
1891         Update.
1892         (TARGET_HAS_SINCOS): Enable for Bionic.
1893
1894         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
1895         the last option specified on command line take effect.
1896         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
1897         (mbionic): New.
1898         (mglibc, muclibc): Update.
1899
1900         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
1901         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
1902         DEFAULT_LIBC.
1903
1904         * doc/invoke.texi (-mglibc, -muclibc): Update.
1905         (-mbionic): Document.
1906
1907 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1908
1909         * c-common.h (c_register_addr_space): Add prototype.
1910         (ADDR_SPACE_KEYWORD): Remove.
1911         * c-common.c (c_register_addr_space): New function.
1912         (c_addr_space_name): Reimplement.
1913         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
1914
1915         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
1916         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
1917
1918         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
1919         Remove TARGET_ADDR_SPACE_KEYWORDS.
1920
1921 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1922
1923         * input.c: New file.
1924         * input.h (main_input_filename): Move declaration to toplev.h.
1925         * toplev.c (input_location, line_table): Move to input.c
1926         * toplev.h (main_input_filename): Move declaration from input.h.
1927         * tree.c (expand_location): Move to input.c.
1928         * Makefile.in (OBJS-common): Add input.o.
1929         (input.o): Add dependencies.
1930
1931 2010-05-27  Richard Guenther  <rguenther@suse.de>
1932
1933         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
1934         for non-existant files.
1935         (fork_execute): Mark args_name file as deleted.
1936
1937 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
1938
1939         PR bootstrp/44287
1940         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
1941         (narrow_signed_type): Likewise.
1942
1943 2010-05-26  Jan Hubicka  <jh@suse.cz>
1944
1945         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
1946         edge only when checking is enabled; check using former_clone_of;
1947         check inline clones too.
1948         (cgraph_materialize_clone): Record former_clone_of pointer.
1949         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
1950         combining redirections; dump args_to_skip bitmap
1951         (cgraph_materialize_all_clones): Do no redirection here.
1952         * ipa-inline.c (inline_transform): Do redirection here.
1953         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
1954         cheking only).
1955
1956 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1957
1958         * config/avr/avr-c.c: Do not include regs.h.
1959         Include cpplib.h for cpp_define and tree.h for c-common.h.
1960         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
1961         * config/avr/t-avr: Fix dependencies for avr-c.o.
1962
1963 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1964
1965         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
1966         string instead of SYMBOL_REF rtx.
1967         * rtl.h (set_stack_check_libfunc): Move prototype from here...
1968         * libfuncs.h: ...to here.  Adjust for explow.c change.
1969
1970 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1971
1972         * pretty-print.c: Don't include ggc.h.
1973         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
1974         (identifier_to_locale): Use them for allocation.
1975         * pretty-print.h (identifier_to_locale_alloc,
1976         identifier_to_locale_free): Declare.
1977         * toplev.c (alloc_for_identifier_to_locale): New.
1978         (general_init): Set identifier_to_locale_alloc and
1979         identifier_to_locale_free.
1980         * Makefile.in (pretty-print.o): Update dependencies.
1981
1982 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1983
1984         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
1985         pointer types if they have different alignment or mode.
1986
1987 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
1988
1989         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1990         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1991         * config/sparc/sparc-protos.h (function_value): Remove declaration.
1992         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
1993         sparc_function_value_regno_p): New functions.
1994         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1995         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1996         (function_value): Rename to...
1997         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
1998         argument to 'outgoing'.
1999         (function_arg_record_value, function_arg_union_value,
2000         function_arg_vector_value): Update comment.
2001
2002 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2003
2004         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
2005         (fde_needed_for_eh_p): New predicate.
2006         (output_call_frame_info): Use it throughout to decide whether FDEs
2007         are needed for EH purpose.
2008         (dwarf2out_begin_prologue): Reorder assignments.
2009
2010 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2011
2012         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
2013         special case loop->header.
2014         (is_predicated): New.
2015         (if_convertible_loop_p): Call it.
2016
2017 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2018
2019         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
2020         iterator in parameter.  Do not generate code during the analysis.
2021         (tree_if_convert_cond_stmt): Removed.
2022         (tree_if_convert_stmt): Removed.
2023         (predicate_bbs): New.
2024         (if_convertible_loop_p): Call predicate_bbs.
2025         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
2026         now contains all the analysis part.
2027
2028 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2029
2030         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
2031         statements in the analysis part.
2032         (tree_if_convert_stmt): Update comment.
2033         (remove_conditions_and_labels): New.
2034         (combine_blocks): Call remove_conditions_and_labels.
2035         (tree_if_conversion): Update comment.
2036
2037 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2038
2039         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
2040         than 2 predecessors or more than 2 successors.
2041
2042 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2043
2044         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
2045         of loops in which the data dependence analysis fails.
2046
2047 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2048
2049         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
2050         CDI_POST_DOMINATORS.
2051         (tree_if_conversion): Same.
2052
2053 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2054
2055         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
2056
2057 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2058
2059         * tree-if-conv.c: Update copyright years.  Fix comments.
2060         Fix indentation.
2061
2062 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
2063
2064         * builtin-types.def (BT_INT128): New primitive type.
2065         (BT_UINT128): Likewise.
2066         * c-common.c (c_common_r): Add __int128 keyword.
2067         (c_common_type_for_size): Handle __int128.
2068         (c_common_type_for_mode): Likewise.
2069         (c_common_signed_or_unsigned_type): Likewise.
2070         (c_common_nodes_and_builtins): Add builtin type
2071         if target supports 128-bit integer scalar.
2072         * c-common.h (enum rid): Add RID_INT128.
2073         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
2074         if target supports 128-bit integer scalar.
2075         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
2076         (finish_declspecs): Likewise.
2077         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
2078         (c_token_starts_declspecs): Likewise.
2079         (c_parser_declspecs): Likewise.
2080         (c_parser_attributes): Likewise.
2081         (c_parser_objc_selector): Likewise.
2082         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
2083         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
2084         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
2085         * tree.c (make_or_reuse_type): Likewise.
2086         (make_unsigned_type): Likewise.
2087         (build_common_tree_nodes_2): Likewise.
2088         * tree.h (enum integer_type_kind): Add itk_int128 and
2089         itk_unsigned_int128.
2090         (int128_integer_type_node): New define.
2091         (int128_unsigned_type_node): New define.
2092         * doc/extend.texi: Add documentation about __int128 type.
2093
2094 2010-05-26  Richard Guenther  <rguenther@suse.de>
2095
2096         * tree-ssa-sccvn.c (copy_nary): Adjust.
2097         (copy_phis): Rename to ...
2098         (copy_phi): ... this.  Adjust.
2099         (copy_references): Rename to ...
2100         (copy_reference): ... this.  Adjust.
2101         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
2102         result into the valid table.
2103
2104 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2105
2106         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
2107         insn-config.h, insn-codes.h, recog.h, and optabs.h.
2108
2109 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2110
2111         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
2112
2113 2010-05-26  Richard Guenther  <rguenther@suse.de>
2114
2115         * opts.c (common_handle_option): Handle OPT_Ofast.
2116
2117 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2118
2119         * diagnostic.c: Don't include opts.h.
2120         (permissive_error_option): Define.
2121         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
2122         for classify_diagnostic.  Don't use memset for
2123         classify_diagnostic.  Initialize new and recently added fields.
2124         (diagnostic_classify_diagnostic): Use context->n_opts instead of
2125         N_OPTS.
2126         (diagnostic_report_diagnostic): Pass context parameter to
2127         diagnostic_report_warnings_p.  Use option_enabled and option_name
2128         hooks from context.
2129         (emit_diagnostic): Use permissive_error_option.
2130         (permerror): Likewise.
2131         * diagnostic.h: Don't include options.h.
2132         (struct diagnostic_context): Add n_opts, opt_permissive,
2133         inhibit_warnings, warn_system_headers, option_enabled and
2134         option_name fields.  Change classify_diagnostic to a pointer.
2135         * opts-diagnostic.h: New file.
2136         * opts.c: Include opts-diagnostic.h.
2137         (common_handle_option): Set global_dc fields for -Wfatal-errors,
2138         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
2139         (option_name): New function.
2140         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
2141         (c_common_handle_option): Set global_dc->permissive for
2142         -fpermissive.
2143         * c-common.c (c_cpp_error): Save and restore
2144         global_dc->warn_system_headers, not variable warn_system_headers.
2145         * toplev.c: Include opts-diagnostic.h.
2146         (general_init): Update call to diagnostic_initialize.  Set
2147         global_dc->show_column, global_dc->option_enabled and
2148         global_dc->option_name.
2149         (process_options): Don't set global_dc fields here.
2150         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
2151         (diagnostic.o, opts.o, toplev.o): Update dependencies.
2152
2153 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2154
2155         * config/picochip/picochip.md (movsi): Split a movsi from a
2156         const after reload.
2157
2158 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2159
2160         * ggc-zone.c: Update copyright year.
2161         (poison_region): Mark memory for Valgrind as undefined before
2162         memset () call and inaccessible afterwards.
2163         (ggc_pch_total_size): Change type of i to int.
2164
2165 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2166
2167         * ggc-common.c (ggc_free_overhead): Allow empty slot.
2168
2169 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2170
2171         * ggc-common.c: Update copyright year.
2172         (ggc_rlimit_bound): Remove prototype.  Compile only if
2173         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
2174         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
2175         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
2176         (ggc_min_heapsize_heuristic): Likewise.
2177
2178 2010-05-26  Richard Guenther  <rguenther@suse.de>
2179
2180         PR rtl-optimization/44164
2181         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
2182         no-common access-path disambiguation.
2183         (indirect_ref_may_alias_decl_p): Adjust.
2184         (indirect_refs_may_alias_p): Likewise.
2185         (refs_may_alias_p_1): Likewise.
2186
2187 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2188
2189         * c-typeck.c: Do not include expr.h.
2190
2191 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2192
2193         * rtl.h (decl_default_tls_model): Move prototype from here...
2194         * output.h: ...to here.
2195         * c-decl.c: Do not include rtl.h.
2196         * c-pragma.c: Likewise.
2197         * c-parser.c: Likewise.
2198         * c-gimplify.c: Likewise.  And also not hard-reg-set.
2199         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
2200         FIXME note for it.  Add a FIXME note for expr.h.
2201         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
2202         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
2203         defined.
2204
2205 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
2206
2207         PR target/44199
2208         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
2209         or total_size is larger than red zone size for non-V4 ABI, emit a
2210         stack_tie resp. frame_tie insn before stack pointer restore.
2211         * config/rs6000/rs6000.md (frame_tie): New insn.
2212
2213 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2214
2215         * function.h (struct function): Add can_throw_non_call_exceptions bit.
2216         * lto-streamer-in.c (input_function): Stream it in.
2217         * lto-streamer-out.c (output_function): Stream it out.
2218         * function.c (allocate_struct_function): Set it.
2219         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
2220         for flag_non_call_exceptions.
2221         * cfgbuild.c (control_flow_insn_p): Likewise.
2222         (make_edges): Likewise.
2223         * cfgexpand.c (expand_stack_alignment): Likewise.
2224         * combine.c (distribute_notes): Likewise.
2225         * cse.c (cse_extended_basic_block): Likewise.
2226         * except.c (insn_could_throw_p): Likewise.
2227         * gcse.c (simple_mem): Likewise.
2228         * ipa-pure-const.c (check_call): Likewise.
2229         (check_stmt ): Likewise.
2230         * lower-subreg.c (lower-subreg.c): Likewise.
2231         * optabs.c (emit_libcall_block): Likewise.
2232         (prepare_cmp_insn): Likewise.
2233         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
2234         * postreload.c (rest_of_handle_postreload): Likewise.
2235         * reload1.c (reload_as_needed): Likewise.
2236         (emit_input_reload_insns): Likewise.
2237         (emit_output_reload_insns): Likewise.
2238         (fixup_abnormal_edges): Likewise.
2239         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
2240         * store-motion.c (find_moveable_store): Likewise.
2241         * tree-eh.c (stmt_could_throw_p): Likewise.
2242         (tree_could_throw_p): Likewise.
2243         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2244         * config/arm/arm.c (arm_expand_prologue): Likewise.
2245         (thumb1_expand_prologue): Likewise.
2246         * config/rx/rx.md (cbranchsf4): Likewise.
2247         (cmpsf): Likewise.
2248         * config/s390/s390.c (s390_emit_prologue): Likewise.
2249         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
2250         (inline_forbidden_into_p): New predicate.
2251         (expand_call_inline): Use it to forbid inlining.
2252         (tree_can_inline_p): Likewise.
2253
2254 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2255
2256         * config/i386/i386-c.c: Do not include rtl.h.
2257         * config/i386/t-i386: Update dependencies.
2258
2259 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2260
2261         * attribs.c: Do not include rtl.h.
2262         * Makefile.in: Update dependencies.
2263
2264 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
2265
2266         * double-int.h (double_int_and): New.
2267         * combine.c (try_combine): Clean up, use double_int_* and
2268         immed_double_int_const functions.
2269
2270 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2271
2272         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
2273         stderr to /dev/null instead of grep -q.
2274         * configure: Regenerate.
2275
2276 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2277
2278         * Makefile.in (EXCEPT_H): Fix typo.
2279
2280 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
2281
2282         * ira-build.c (update_conflict_hard_reg_costs): New.
2283         (ira_build): Call update_conflict_hard_reg_costs.
2284
2285 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR debug/41371
2288         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
2289         ENABLE_CHECKING.
2290         (intersect_loc_chains): Walk the s2var's loc_chain together
2291         with s1node chain as long as the locations are equal, don't
2292         call find_loc_in_1pdv in that case.
2293
2294         PR debug/42801
2295         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
2296         (copy_bind_expr): ... instead of here.
2297         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
2298         if the block hasn't been remapped.
2299         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
2300         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
2301
2302 2010-05-25  Richard Guenther  <rguenther@suse.de>
2303
2304         PR middle-end/44069
2305         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
2306         out-of-bounds array accesses.
2307
2308 2010-05-25  Richard Guenther  <rguenther@suse.de>
2309
2310         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
2311         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
2312         (run_gcc): Re-organize to make cleanup easier.
2313
2314 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2315
2316         * config/s390/s390.c (optimization_options): Fix and move the
2317         flag_prefetch_loop_arrays override ...
2318         (override_options): ... here.
2319
2320 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
2321
2322         * diagnostic.c: Don't include plugin.h.
2323         (diagnostic_report_diagnostic): Don't handle plugins specially
2324         here.  Pass context to internal_error callback.
2325         * diagnostic.h (struct diagnostic_context): Add context parameter
2326         to internal_error callback.
2327         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
2328         * plugin.h (struct diagnostic_context): Declare.
2329         (warn_if_plugins, plugins_internal_error_function): Declare.
2330         * toplev.c (general_init): Set global_dc->internal_error.
2331         * Makefile.in (diagnostic.o): Update dependencies.
2332
2333 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
2334
2335         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
2336         * config/rs6000/t-darwin64: New.
2337         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
2338         build crt2.
2339
2340 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
2341
2342         PR 44203
2343         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
2344         match the original (and intended) behaviour before r159557.  This
2345         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
2346         in two ways.
2347
2348 2010-05-25  Richard Guenther  <rguenther@suse.de>
2349
2350         * doc/invoke.texi: Document -Ofast.
2351         * target.h (struct gcc_target): Add handle_ofast.
2352         * target-def.h (TARGET_HANDLE_OFAST): Add.
2353         (TARGET_INITIALIZER): Adjust.
2354         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
2355         * common.opt (Ofast): Add.
2356
2357 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2358
2359         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
2360         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
2361
2362 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2363
2364         PR target/43610
2365         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
2366         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
2367         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
2368         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
2369
2370 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2371
2372         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
2373         DW_OP_minus with negated offset instead of DW_OP_plus.
2374         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
2375
2376 2010-05-25  Wei Guozhi  <carrot@google.com>
2377
2378         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
2379         tst instruction and a new alternative.
2380         * config/arm/constraints.md (Pu): New constraint.
2381
2382 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
2383
2384         * function.c (assign_stack_local_1): Initialize variable
2385         to avoid warning when bootstrapping at -O3.
2386
2387 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
2388
2389         * configure.ac (all_lang_makefiles): Remove everything related to it.
2390         * configure: Regenerate.
2391         * Makefile.in: Fix reference to ada Make-lang.in.
2392         Remove support for LANG_MAKEFILES.
2393
2394 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
2395             Sandra Loosemore  <sandra@codesourcery.com>
2396
2397         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
2398         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
2399         description.  Add arm_neon_fp16_ok.
2400         (Add Options): Add arm_neon and arm_neon_fp16.
2401
2402 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
2403
2404         * diagnostic.c: Don't include flags.h.
2405         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
2406         context parameters.  Check flags in the context passed as a parameter.
2407         (diagnostic_build_prefix): Add context parameter.  Check
2408         show_column flag in context.
2409         (diagnostic_action_after_output): Check fatal_errors flag in context.
2410         (diagnostic_report_current_module): Check show_column flag in context.
2411         (default_diagnostic_starter): Update call to
2412         diagnostic_build_prefix.
2413         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
2414         (emit_diagnostic): Pass context to permissive_error_kind.
2415         (permerror): Pass context to permissive_error_kind.
2416         * diagnostic.h (struct diagnostic_context): Add show_column,
2417         pedantic_errors, permissive and fatal_errors fields.
2418         (diagnostic_build_prefix): Update prototype.
2419         * langhooks.c
2420         * toplev.c (process_options): Set flags in global_dc from
2421         flag_show_column, flag_pedantic_errors, flag_permissive,
2422         flag_fatal_errors.
2423         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
2424         to diagnostic_build_prefix.
2425         * Makefile.in (diagnostic.o): Update dependencies.
2426
2427 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2428
2429         * config/i386/ia32intrin.h (__crc32q): Define only if
2430         __SSE4_2__ is defined.
2431
2432 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
2433
2434         PR target/44132
2435         PR middle-end/43602
2436         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
2437         DECL_VISIBILITY_SPECIFIED.
2438         (emutls_decl): Set DECL_PRESERVE_P and copy
2439         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
2440         (emutls_finalize_control_var): New callback.
2441         (emutls_finish): Finalize emutls control variables.
2442         * toplev.c (compile_file): Move the call to emutls_finish ()
2443         before varpool_assemble_pending_decls ().
2444
2445 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
2446
2447         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
2448         added to the preprocessor condition.
2449
2450 2010-05-24  Paul Brook  <paul@codesourcery.com>
2451
2452         * gengtype-lex.l: Add HARD_REG_SET.
2453         * expr.c (expand_expr_real_1): Record writes to hard registers.
2454         * function.c (rtl_data): Add asm_clobbers.
2455         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
2456         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
2457         Use crtl->asm_clobbers.
2458
2459 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2460
2461         * doc/makefile.texi (Makefile): Mention stages 'profile'
2462         and 'feedback' for profiledbootstrap.
2463
2464 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
2465
2466         PR target/44245
2467         * config/i386/i386.c (def_builtin): Properly check
2468         OPTION_MASK_ISA_64BIT.
2469
2470 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
2471
2472         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
2473         typedefs with different but compatible types.  Allow duplicate
2474         typedefs with the same type except for pedantic non-C1X, but give
2475         warning for variably modified types.
2476         * c-typeck.c (tagged_types_tu_compatible_p,
2477         function_types_compatible_p, type_lists_compatible_p,
2478         comptypes_internal): Add parameter different_types_p; set
2479         *different_types_p for different but compatible types.  All
2480         callers changed.
2481         (comptypes_check_different_types): New.
2482         * c-tree.h (comptypes_check_different_types): Declare.
2483
2484 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
2485
2486         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
2487         * jump.c: Include basic-block.h.
2488         * profile.c: Likewise.
2489         * tree-profile.c: Likewise.
2490         * coverage.c: Likewise.
2491         * basic-block.h (optimize_function_for_size_p): Move to function.h.
2492         (optimize_function_for_speed_p): Likewise.
2493         * function.h (optimize_function_for_size_p,
2494         optimize_function_for_speed_p): Moved here from basic-block.h.
2495         * Makefile.in: Update dependencies.
2496
2497 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2498
2499         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
2500         before calling make; allow override through $MAKE.
2501         * doc/invoke.texi (Optimize Options): Document override.
2502
2503 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
2504
2505         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
2506         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2507         (rs6000_mode_dependent_address_ptr): Make static.
2508         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2509         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
2510         Remove.
2511
2512 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
2513
2514         PR target/43869
2515         * config/i386/i386.c: Make sure that the correct regparm is passed.
2516
2517 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
2518
2519         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
2520         * sbitmap.c: ...to here to internalize sbitmap element access.
2521         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
2522         Explain why basic-block.h is included.
2523         * function.h: Include tm.h for CUMULATIVE_ARGS.
2524         * Makefile.in: Update dependencies.
2525
2526 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
2527
2528         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
2529         New core types.
2530         * sbitmap.h (struct sbitmap_def): Do not typedef here.
2531         * sbitmap.c: Include sbitmap.h.
2532         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
2533         hard-reg-set.h.  Split everything related to regsets out from here...
2534         * regset.h: ...to here.  New file.
2535         * df.h: Include regset.h and sbitmap.h.
2536         * tree-flow.h: Likewise.
2537         * cfgloop.h: Likewise.
2538         * except.h: Do not include sbitmap.h.  Include hashtab.h.
2539         * cgraph.h: Include vec.h and function.h.
2540         * reload.h (struct insn_chain): Change types of live_throughout
2541         and dead_or_set from regset_head to bitmap_head.
2542         (compute_use_by_pseudos): Be defined also if regset.h is not included.
2543         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
2544         spilled_regs from regset_head to bitmap_head to avoid dependency
2545         in regset.h.
2546         * sel-sched-ir.h: Include regset.h.
2547         * reload.c: Include df.h before reload.h.
2548         * caller-save.c: Likewise.
2549         * reload1.c: Likewise.
2550         * ira.c: Likewise.
2551         (mark_elimination): Update type of r to bitmap, consistent with
2552         DF_LR_IN.
2553         * dominance.c: Include bitmap.h.
2554         * modulo-sched.c: Include df.h.
2555         * cfganal.c: Include bitmap.h and sbitmap.h.
2556         * cfgbuild.c: Include sbitmap.h.
2557         * lcm.c: Include sbitmap.h.
2558         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
2559         * domwalk.c: Include sbitmap.h, exclude ggc.h.
2560         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
2561         * cselib.c: Include bitmap.h.
2562         * tree-optimize.c: Include regset.h.
2563         * stmt.c: Include bitmap.h.
2564         * Makefile.in: Update dependencies.
2565
2566 2010-05-22  Jan Hubicka  <jh@suse.cz>
2567
2568         * cgraph.h (struct varpool_node): Add same_comdat_group.
2569         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
2570         pointer.
2571         (output_varpool): Update call of lto_output_varpool_node.
2572         (input_varpool): Read same_comdat_group pointer.
2573         (input_varpool_1): Fixup same_comdat_group pointer.
2574         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
2575         group is needed, all are.
2576         * varpool.c (varpool_remove_node): Remove node from same comdat group
2577         linklist too.
2578         (varpool_analyze_pending_decls): Walk same comdat groups.
2579
2580 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
2581
2582         * rtl.h (union rtunion_def): Remove rt_bit member.
2583         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
2584         * print-rtl (print_rtx): Do not print the member.
2585         * gengtype.c (adjust_field_rtx_def): Do not handle it.
2586         * gengenrtl.c (type_from_format): Likewise.
2587         (accessor_from_format): Likewise.
2588
2589 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
2590
2591         * dbgcnt.c: Include toplev.h instead of errors.h.
2592         * ira-emit.c: Don't include errors.h.
2593         * ira.c: Include toplev.h instead of errors.h.
2594         * lto-compress.c: Include toplev.h instead of errors.h.
2595         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
2596         ira.o, dbgcnt.o): Update dependencies.
2597
2598 2010-05-22  Richard Guenther  <rguenther@suse.de>
2599
2600         * gimple.c (gimple_types_compatible_p): Check type qualifications
2601         before merging pointer to complete and pointer to incomplete type.
2602         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
2603         we use our own resolution algorithm.  The gold linker plugin
2604         doesn't do the job we want it to do here.
2605
2606 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
2607
2608         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2609         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2610         (sparc_mode_dependent_address_p): New function.
2611
2612 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2613
2614         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
2615
2616         * timevar.c: Do not include any core headers.
2617         (timevar_print): De-i18n-ize.
2618         (print_time): Likewise.
2619         * timevar.h (timevar_push, timevar_pop): Make inline functions.
2620
2621 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
2622
2623         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
2624         langhooks-def.h.
2625         (diagnostic_initialize): Initialize x_data not last_function.
2626         (diagnostic_report_current_function): Move to tree-diagnostic.c.
2627         (default_diagnostic_starter): Call
2628         diagnostic_report_current_module not
2629         diagnostic_report_current_function.
2630         (diagnostic_report_diagnostic): Initialize x_data not
2631         abstract_origin.
2632         (verbatim): Likewise.
2633         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
2634         x_data.
2635         (struct diagnostic_context): Change last_function to x_data.
2636         (diagnostic_auxiliary_data): Replace with
2637         diagnostic_context_auxiliary_data and
2638         diagnostic_info_auxiliary_data.
2639         (diagnostic_last_function_changed, diagnostic_set_last_function,
2640         diagnostic_report_current_function): Move to tree-diagnostic.h.
2641         (print_declaration, dump_generic_node, print_generic_stmt,
2642         print_generic_stmt_indented, print_generic_expr,
2643         print_generic_decl, debug_c_tree, dump_omp_clauses,
2644         print_call_name, debug_generic_expr, debug_generic_stmt,
2645         debug_tree_chain, default_tree_printer): Move to
2646         tree-pretty-print.h.
2647         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
2648         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
2649         gimple-pretty-print.h.
2650         * pretty-print.c: Don't include tree.h
2651         (pp_base_format): Don't handle %K here.
2652         (pp_base_tree_identifier): Move to tree-pretty-print.c.
2653         * pretty-print.h (text_info): Change abstract_origin to x_data.
2654         (pp_tree_identifier, pp_unsupported_tree,
2655         pp_base_tree_identifier): Move to tree-pretty-print.h.
2656         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
2657         tree-pretty-print.h: New files.
2658         * tree-pretty-print.c: Include tree-pretty-print.h.
2659         (percent_K_format): New.  Moved from pretty-print.c.
2660         (pp_base_tree_identifier): Move from pretty-print.c.
2661         * c-objc-common.c: Include tree-pretty-print.h.
2662         (c_tree_printer): Handle %K here.
2663         * langhooks.c: Include tree-diagnostic.h.
2664         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
2665         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
2666         (default_tree_printer): Handle %K using percent_K_format.
2667         (general_init): Use default_tree_diagnostic_starter.
2668         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
2669         (free_lang_data): Use default_tree_diagnostic_starter.
2670         * c-pretty-print.c: Include tree-pretty-print.h.
2671         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2672         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2673         * dwarf2out.c: Include tree-pretty-print.h.
2674         * except.c: Include tree-pretty-print.h.
2675         * gimple-pretty-print.c: Include tree-pretty-print.h and
2676         gimple-pretty-print.h.
2677         * gimplify.c: Include tree-pretty-print.h.
2678         * graphite-poly.c: Include tree-pretty-print.h and
2679         gimple-pretty-print.h.
2680         * ipa-cp.c: Include tree-pretty-print.h.
2681         * ipa-inline.c: Include gimple-pretty-print.h.
2682         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2683         * ipa-pure-const.c: Include gimple-pretty-print.h.
2684         * ipa-struct-reorg.c: Include tree-pretty-print.h and
2685         gimple-pretty-print.h.
2686         * ipa-type-escape.c: Include tree-pretty-print.h.
2687         * print-rtl.c: Include tree-pretty-print.h.
2688         * print-tree.c: Include gimple-pretty-print.h.
2689         * sese.c: Include tree-pretty-print.h.
2690         * tree-affine.c: Include tree-pretty-print.h.
2691         * tree-browser.c: Include tree-pretty-print.h.
2692         * tree-call-cdce.c: Include gimple-pretty-print.h.
2693         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2694         * tree-chrec.c: Include tree-pretty-print.h.
2695         * tree-data-ref.c: Include tree-pretty-print.h and
2696         gimple-pretty-print.h.
2697         * tree-dfa.c: Include tree-pretty-print.h.
2698         * tree-if-conv.c: Include tree-pretty-print.h and
2699         gimple-pretty-print.h.
2700         * tree-inline.c: Include tree-pretty-print.h.
2701         * tree-into-ssa.c: Include tree-pretty-print.h and
2702         gimple-pretty-print.h.
2703         * tree-nrv.c: Include tree-pretty-print.h.
2704         * tree-object-size.c: Include tree-pretty-print.h and
2705         gimple-pretty-print.h.
2706         * tree-outof-ssa.c: Include tree-pretty-print.h and
2707         gimple-pretty-print.h.
2708         * tree-parloops.c: Include tree-pretty-print.h and
2709         gimple-pretty-print.h.
2710         * tree-predcom.c: Include tree-pretty-print.h and
2711         gimple-pretty-print.h.
2712         * tree-scalar-evolution.c: Include tree-pretty-print.h and
2713         gimple-pretty-print.h.
2714         * tree-sra.c: Include tree-pretty-print.h.
2715         * tree-ssa-address.c: Include tree-pretty-print.h.
2716         * tree-ssa-alias.c: Include tree-pretty-print.h.
2717         * tree-ssa-ccp.c: Include tree-pretty-print.h and
2718         gimple-pretty-print.h.
2719         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
2720         * tree-ssa-copy.c: Include tree-pretty-print.h and
2721         gimple-pretty-print.h.
2722         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
2723         * tree-ssa-dce.c: Include tree-pretty-print.h and
2724         gimple-pretty-print.h.
2725         * tree-ssa-dom.c: Include tree-pretty-print.h and
2726         gimple-pretty-print.h.
2727         * tree-ssa-dse.c: Include gimple-pretty-print.h.
2728         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
2729         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
2730         * tree-ssa-live.c: Include tree-pretty-print.h and
2731         gimple-pretty-print.h.
2732         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
2733         gimple-pretty-print.h.
2734         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
2735         gimple-pretty-print.h.
2736         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
2737         gimple-pretty-print.h.
2738         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
2739         gimple-pretty-print.h.
2740         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
2741         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
2742         * tree-ssa-operands.c: Include tree-pretty-print.h and
2743         gimple-pretty-print.h.
2744         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
2745         gimple-pretty-print.h.
2746         * tree-ssa-pre.c: Include tree-pretty-print.h and
2747         gimple-pretty-print.h.
2748         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
2749         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
2750         gimple-pretty-print.h.
2751         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
2752         gimple-pretty-print.h.
2753         * tree-ssa-sink.c: Include gimple-pretty-print.h.
2754         * tree-ssa-ter.c: Include tree-pretty-print.h and
2755         gimple-pretty-print.h.
2756         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
2757         * tree-ssa.c: Include tree-pretty-print.h and
2758         gimple-pretty-print.h.
2759         * tree-stdarg.c: Include gimple-pretty-print.h.
2760         * tree-switch-conversion.c: Include gimple-pretty-print.h.
2761         * tree-tailcall.c: Include tree-pretty-print.h and
2762         gimple-pretty-print.h.
2763         * tree-vect-data-refs.c: Include tree-pretty-print.h and
2764         gimple-pretty-print.h.
2765         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
2766         gimple-pretty-print.h.
2767         * tree-vect-loop.c: Include tree-pretty-print.h and
2768         gimple-pretty-print.h.
2769         * tree-vect-patterns.c: Include gimple-pretty-print.h.
2770         * tree-vect-slp.c: Include tree-pretty-print.h and
2771         gimple-pretty-print.h.
2772         * tree-vect-stmts.c: Include tree-pretty-print.h and
2773         gimple-pretty-print.h.
2774         * tree-vectorizer.c: Include tree-pretty-print.h.
2775         * tree-vrp.c: Include tree-pretty-print.h and
2776         gimple-pretty-print.h.
2777         * value-prof.c: Include tree-pretty-print.h and
2778         gimple-pretty-print.h.
2779         * var-tracking.c: Include tree-pretty-print.h.
2780         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
2781         (tree-diagnostic.o): New dependencies.
2782         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
2783         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
2784         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
2785         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
2786         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
2787         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
2788         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2789         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
2790         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
2791         tree-ssa-address.o, tree-ssa-loop-niter.o,
2792         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
2793         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
2794         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
2795         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
2796         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
2797         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
2798         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
2799         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
2800         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
2801         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
2802         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
2803         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
2804         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
2805         tree-switch-conversion.o, var-tracking.o, value-prof.o,
2806         cfgexpand.o, pretty-print.o): Update dependencies.
2807
2808 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
2809
2810         * tree-ssa-structalias.c: Remove tm_p.h from include.
2811
2812 2010-05-21  Jeff Law  <law@redhat.com>
2813
2814         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
2815
2816 2010-05-21  Jason Merrill  <jason@redhat.com>
2817
2818         * tree-eh.c (cleanup_is_dead_in): New.
2819         (lower_try_finally): Don't generate a dead cleanup region.
2820         (lower_cleanup): Likewise.
2821
2822 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
2823
2824         PR debug/44223
2825         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
2826         unchain each use from the cyclic next_regno_use chain first.
2827
2828 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2829
2830         * real: Do not include gmp.h, mpfr.h, and mpc.h.
2831         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
2832         (real_value_negate, real_value_abs): New prototypes.
2833         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
2834         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
2835         new include file for interface between MPFR and REAL_VALUE_TYPE.
2836         * real.c: Include realmpfr.h.
2837         (real_arithmetic2): Remove legacy function.
2838         (real_value_negate): New.
2839         (real_value_abs): New.
2840         (mfpr_from_real, real_from_mpfr): Move from here...
2841         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
2842         * builtins.c: Include realmpfr.h.
2843         * fold-const.c: Include realmpfr.h.
2844         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
2845         (fold_negate_const): Likewise.
2846         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
2847         * toplev.c: Include realmpfr.h.
2848         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
2849         and real_value_negate.
2850         * fixed-value.c (check_real_for_fixed_mode): Likewise.
2851         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
2852         (vfp3_const_double_index): Likewise.
2853         (arm_print_operand): Likewise.
2854         * Makefile.in: Update dependencies.
2855
2856 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2857
2858         * config/s390/s390.c (override_options): Increase the default
2859         of max-completely-peel-times.
2860
2861 2010-05-21  Julian Brown  <julian@codesourcery.com>
2862             Mark Mitchell  <mark@codesourcery.com>
2863
2864         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
2865         sibling calls for Thumb-1.
2866         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
2867         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
2868         Thumb-2.
2869         (*call_insn, *call_value_insn): Don't use for Thumb-2.
2870         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
2871         for Thumb-2.
2872         (return): New expander.
2873         (*arm_return): New name for ARM return insn.
2874         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
2875
2876 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
2877
2878         * config.gcc (sparc64-*-rtems*): New target.
2879
2880 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
2881
2882         * tree.c (build_function_decl_skip_args): Fix grammar.
2883         (build_function_type_list_1): Fix typos, adjust formatting.
2884
2885 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2886
2887         * tree.h: Include real.h and fixed-value.h as basic datatypes.
2888         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
2889         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
2890         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
2891         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
2892         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
2893         tree-pretty-print.c, tree-loop-distribution.c,
2894         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
2895         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
2896         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
2897         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
2898         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
2899         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
2900         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
2901         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
2902         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
2903         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
2904         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
2905         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
2906         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
2907         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
2908         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
2909         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
2910         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
2911         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
2912         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
2913         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
2914         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
2915         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
2916         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
2917         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
2918         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
2919         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
2920         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
2921         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
2922         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
2923         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
2924         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
2925         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
2926         config/score/score7.c, config/score/score.c, config/arm/arm.c,
2927         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
2928         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
2929         config/bfin/bfin.c: Clean up redundant includes.
2930         * Makefile.in: Update accordingly.
2931
2932 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
2933
2934         PR middle-end/44204
2935         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
2936         statement has no arguments.
2937
2938 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
2939
2940         PR/44139
2941         * varasm.c (emutls_decl): Merge attributes to new decl.
2942
2943 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2944
2945         PR middle-end/44101
2946         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
2947         around the uniquized constructor if its type requires a conversion.
2948
2949 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
2950
2951         PR debug/44205
2952         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
2953         at -O0 goto_locus of any of the incoming edges differs from
2954         goto_locus of outgoing edge, or gimple_location of any of the
2955         labels differs.
2956
2957 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
2958
2959         * ira.c (ira_non_ordered_class_hard_regs): Define.
2960         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
2961         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
2962         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
2963         cost of unaligned hard regs when allocating multi-reg pseudos.
2964
2965 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
2966
2967         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
2968         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
2969         for TARGET_NO_FLOAT.
2970         * config/mips/mips.c (mips_file_start): Expand conditional expression
2971         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
2972         (mips_override_options): Move -mno-float override -msoft-float and
2973         -mhard-float.
2974         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
2975         Condition(TARGET_SUPPORTS_NO_FLOAT).
2976         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
2977         __mips_no_float here.
2978         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
2979         (TARGET_SUPPORTS_NO_FLOAT): Define.
2980         * config/mips/sdemtk.opt: Delete.
2981
2982 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
2983
2984         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
2985
2986 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
2987
2988         PR target/43733
2989         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
2990         * configure: Regenerate.
2991         * config.in: Regenerate.
2992         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
2993         instead of sahf only for 64bit targets.
2994
2995 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
2996
2997         PR debug/44178
2998         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
2999         setup_ref_regs for DEBUG_INSNs.
3000
3001 2010-05-20  Jan Hubicka  <jh@suse.cz>
3002
3003         PR middle-end/44197
3004         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
3005
3006 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
3007
3008         PR bootstrap/43870
3009         * df-scan.c (df_ref_compare): Stabilize sort.
3010
3011 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
3012
3013         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
3014         argument.  Don't use DW_OP_piece if offset is non-zero,
3015         put offset into second DW_OP_bit_piece argument.
3016         (dw_sra_loc_expr): Adjust callers.  For memory expressions
3017         compute offset.
3018
3019 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
3020
3021         PR target/44202
3022         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
3023         settings for 16-bit-constant "addo" alternative.
3024
3025 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
3026
3027         * config/mips/mips-dsp.md (add<DSPV:mode>3,
3028         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
3029
3030         PR target/43764
3031         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
3032         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
3033         Use it.
3034
3035 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
3036
3037         * diagnostic.c (FLOAT, FFS): Don't undefine.
3038         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
3039         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
3040         include ordering.
3041
3042 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3043
3044         * combine.c (propagate_for_debug): Call make_compound_operation
3045         on the source value.
3046         (try_combine): When implementing a split chosen by find_split_point,
3047         either copy i2src or set it to null.  Assert that i2src is not null
3048         before substituting into CALL_INSN_FUNCTION_USAGE.
3049
3050 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
3051
3052         * double-int.h (double_int_ior): New function.
3053         * tree.h (build_int_cst_wide_type): Remove.
3054         * tree.c (build_int_cst_wide_type): Remove.
3055         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
3056         of build_int_cst_wide_type.
3057         * stor-layout.c (set_sizetype): (Ditto.).
3058         * dojump.c (do_jump): Use build_int_cstu instead of
3059         build_int_cst_wide_type.
3060
3061 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3062
3063         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
3064         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
3065         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
3066         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
3067         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
3068         propagate the 'data' argument to copy_tree_r.
3069         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
3070         Propagate 'data' argument to walk_tree.
3071         (copy_if_shared): New function.
3072         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
3073         (unmark_visited): New function.
3074         (unshare_body): Call copy_if_shared instead of doing it manually.
3075         (unvisit_body): Call unmark_visited instead of doing it manually.
3076
3077 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
3078
3079         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
3080         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
3081         * hooks.c: Likewise.
3082         * target-def.h (TARGET_FOLD_BUILTIN): Define to
3083         hook_tree_tree_int_treep_bool_null.
3084         * target.h (struct gcc_target): Update signature of fold_builtin
3085         field.
3086         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
3087         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
3088         instead of the call expression.
3089         (fold_builtin_call_array): Pass n and argarray directly.
3090         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
3091         consing a list.
3092         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
3093         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
3094         `i' and use it in place of `arity'.
3095         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
3096         Dereference `args' directly.
3097         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
3098
3099 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3100
3101         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3102         3dnow, sse3, sse2.
3103         (Directives): Document optional dg-require-effective-target
3104         selector.
3105
3106 2010-05-19  Richard Guenther  <rguenther@suse.de>
3107
3108         PR lto/44196
3109         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
3110
3111 2010-05-19  Richard Guenther  <rguenther@suse.de>
3112
3113         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
3114         * common.opt (fwhopr=): New.
3115         * opts.c (common_handle_option): Handle OPT_fwhopr.
3116         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
3117         * collect2.c (main): Match -fwhopr*.
3118         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
3119         Execute ltrans stage in parallel when jobs is bigger than 1.
3120
3121 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3122
3123         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
3124         pentiumpro on Solaris 8/x86 with Sun as.
3125         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
3126         hidden alias bug.
3127         (gcc_cv_as_ix86_quad): Check for .quad directive.
3128         * configure: Regenerate.
3129         * config.in: Regenerate.
3130         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
3131
3132 2010-05-19  Martin Jambor  <mjambor@suse.cz>
3133
3134         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
3135         also for indirect edges.  Actual printing moved...
3136         (ipa_print_node_jump_functions_for_edge): ...here.
3137         (ipa_compute_jump_functions): Renamed to
3138         ipa_compute_jump_functions_for_edge and made static.
3139         (ipa_compute_jump_functions): New function.
3140         (make_edge_direct_to_target): Check if the number of arguments on
3141         the newly direct edge is the same as the number of parametrs of
3142         the callee.
3143         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
3144         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
3145         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3146         analysis functions unconditionally, call the new
3147         ipa_analyze_params_uses on the node instead of every edge.
3148
3149 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3150
3151         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
3152         to tree.
3153         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
3154         also checks for a constant int vs.  non-constant but
3155         loop-invariant steps.
3156         (find_or_create_group): Change the sort algorithm to only consider
3157         steps that are constant ints.
3158         (idx_analyze_ref): Adopt code to handle a tree instead of a
3159         HOST_WIDE_INT for step.
3160         (gather_memory_references_ref): Handle tree instead of int and be
3161         prepared to see a NULL_TREE.
3162         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
3163         prefetches if the step cannot be calculated at compile time.
3164         (issue_prefetch_ref): Issue prefetches for non-constant but
3165         loop-invariant steps.
3166
3167 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3168
3169         Revert:
3170         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3171
3172         * tree.h (build_call_list): Remove.
3173         * tree.c (build_call_list): Remove.
3174
3175 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3176
3177         * tree.h (build_call_list): Remove.
3178         * tree.c (build_call_list): Remove.
3179
3180 2010-05-18  Jan Hubicka  <jh@suse.cz>
3181
3182         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
3183
3184 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
3185
3186         PR rtl-optimization/43332
3187         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
3188
3189 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
3190
3191         * tree.h (build_int_cstu): Implement as static inline.
3192         * tree.c (build_int_cstu): Remove function.
3193         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
3194         sign extended.
3195
3196 2010-05-18  Richard Guenther  <rguenther@suse.de>
3197
3198         PR lto/44143
3199         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
3200         (debug): Initialize from -save-temps.
3201         (collect_execute): Print command-line when verbose.
3202         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
3203         for ltrans invocation.  Produce -dumpbase flag again.
3204         (process_args): Remove.
3205         (main): Simplify.
3206         * collect2.c (maybe_run_lto_and_relink): Only pass object
3207         files to lto-wrapper.
3208         * gcc.c (LINK_COMMAND_SPEC): Likewise.
3209
3210 2010-05-18  Jan Hubicka  <jh@suse.cz>
3211
3212         * opts.c (decode_options): Do not disable whopr at ipa_cp.
3213         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
3214
3215 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3216
3217         PR lto/44184
3218         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
3219         in a GIMPLE_ASM.
3220         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
3221         in a GIMPLE_ASM.
3222
3223 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
3224
3225         PR debug/41371
3226         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
3227         rtx_equal_p inline.
3228
3229 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3230
3231         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
3232         lto-macho as lto_binary_reader.
3233
3234         * darwin.c (darwin_asm_named_section): Do not add assembler comment
3235         after .section directive; just print it before the directive instead.
3236
3237 2010-05-17  Jan Hubicka  <jh@suse.cz>
3238
3239         * cgraph.c (cgraph_create_virtual_clone): Only check
3240         versionable_function_p when not in wpa and checking is enabled.
3241         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
3242         there are no more functions to materialize.
3243
3244 2010-05-17  Jan Hubicka  <jh@suse.cz>
3245
3246         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
3247         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
3248         New functions.
3249         (output_cgraph): Call output_cgraph_opt_summary.
3250         (input_cgrpah): Call input_cgraph_opt_summary.
3251         (output_cgraph_opt_summary_p, output_node_opt_summary,
3252         input_node_opt_summary, input_cgraph_opt_section): New functions.
3253         * lto-section-in.c (lto_section_name): Add cgraphopt.
3254         * tree-inline.c (tree_function_versioning): Handle parm_num.
3255         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
3256         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
3257
3258 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3259
3260         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
3261         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
3262         the insn to prefetch ratio heuristic to loops with known trip count.
3263
3264 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3265
3266         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
3267         (schedule_prefetches): Do not generate a prefetch if the unroll factor
3268         is far from what is required by the prefetch.
3269
3270 2010-05-17  Jan Hubicka  <jh@suse.cz>
3271
3272         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
3273         (ipcp_estimate_growth): Likewise.
3274         (ipcp_const_param_count): Likewise.
3275         (ipcp_insert_stage): Likewise.
3276         * ipa-prop.c (visit_load_for_mod_analysis): New function.
3277         (visit_store_addr_for_mod_analysis): Set used flag.
3278         (ipa_detect_param_modifications): Set used flag for SSE params;
3279         update use of walk_stmt_load_store_addr_ops.
3280         (ipa_print_node_params): Print used flag.
3281         (ipa_write_node_info): Stream used flag.
3282         (ipa_read_node_info): Likewise.
3283         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
3284         (ipa_is_param_used): New function.
3285         (lto_ipa_fixup_call_notes): Remove unused declaration.
3286
3287 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3288
3289         PR target/44074
3290         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
3291         * configure: Regenerate.
3292         * config.in: Regenerate.
3293         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
3294         !HAVE_AS_IX86_REP_LOCK_PREFIX.
3295         Don't emit whitespace.
3296         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
3297         (*rep_movsi): Likewise.
3298         (*rep_movsi_rex64): Likewise.
3299         (*rep_movqi): Likewise.
3300         (*rep_movqi_rex64): Likewise.
3301         (*rep_stosdi_rex64): Likewise.
3302         (*rep_stossi): Likewise.
3303         (*rep_stossi_rex64): Likewise.
3304         (*rep_stosqi): Likewise.
3305         (*rep_stosqi_rex64): Likewise.
3306         (*cmpstrnqi_nz_1): Use {%;} after repz.
3307         (*cmpstrnqi_nz_rex_1): Likewise.
3308         (*cmpstrnqi_1): Likewise.
3309         (*cmpstrnqi_rex_1): Likewise.
3310         (*strlenqi_1): Use {%;} after repnz.
3311         (*strlenqi_rex_1): Likewise.
3312         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
3313         (*sync_compare_and_swap<mode>): Likewise.
3314         (sync_double_compare_and_swap<mode>): Likewise.
3315         (*sync_double_compare_and_swapdi_pic): Likewise.
3316         (sync_old_add<mode>): Likewise.
3317         (sync_add<mode>): Likewise.
3318         (sync_sub<mode>): Likewise.
3319         (sync_<code><mode>): Likewise.
3320
3321 2010-05-17  Martin Jambor  <mjambor@suse.cz>
3322
3323         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
3324         otr_token and polymorphic.
3325         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
3326         (cgraph_clone_edge): Copy the above fields.
3327         * tree.c (get_binfo_at_offset): New function.
3328         * tree.h (get_binfo_at_offset): Declare.
3329         * ipa-prop.h (enum jump_func_type): Added known_type jump function
3330         type, reordered items, updated comments.
3331         (union jump_func_value): Added base_type field, reordered fields.
3332         (enum ipa_lattice_type): Moved down in the file.
3333         (struct ipa_param_descriptor): New field polymorphic.
3334         (ipa_is_param_polymorphic): New function.
3335         * ipa-prop.c: Include gimple.h and gimple-fold.h.
3336         (ipa_print_node_jump_functions): Print known type jump functions.
3337         (compute_complex_pass_through): Renamed to...
3338         (compute_complex_assign_jump_func): this.
3339         (compute_complex_ancestor_jump_func): New function.
3340         (compute_known_type_jump_func): Likewise.
3341         (compute_scalar_jump_functions): Create known type and complex ancestor
3342         jump functions.
3343         (ipa_note_param_call): New parameter polymorphic, set the corresponding
3344         flag in the call note accordingly.
3345         (ipa_analyze_call_uses): Renamed to...
3346         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
3347         variable var only in the block where it is used.
3348         (ipa_analyze_virtual_call_uses): New function.
3349         (ipa_analyze_call_uses): Likewise.
3350         (combine_known_type_and_ancestor_jfs): Likewise.
3351         (update_jump_functions_after_inlining): Implemented handling of a
3352         number of new jump function types combination.
3353         (print_edge_addition_message): Removed.
3354         (make_edge_direct_to_target): New function.
3355         (try_make_edge_direct_simple_call): Likewise.
3356         (try_make_edge_direct_virtual_call): Likewise.
3357         (update_call_notes_after_inlining): Renamed to...
3358         (update_indirect_edges_after_inlining): this.  Moved edge creation for
3359         indirect calls to try_make_edge_direct_simple_call, also calls
3360         try_make_edge_direct_virtual_call for virtual calls.
3361         (ipa_print_node_params): Changed the header message.
3362         (ipa_write_jump_function): Stream also known type jump functions.
3363         (ipa_read_jump_function): Likewise.
3364         (ipa_write_indirect_edge_info): Stream new fields in
3365         cgraph_indirect_call_info.
3366         (ipa_read_indirect_edge_info): Likewise.
3367         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
3368         GIMPLE_FOLD_H.
3369
3370 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3371
3372         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
3373
3374 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3375
3376         * tree.h (CALL_EXPR_ARGS): Delete.
3377         (call_expr_arglist): Delete.
3378         * tree.c (call_expr_arglist): Delete.
3379         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
3380         targetm.fold_builtin.
3381         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
3382         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
3383         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
3384         arglist parameter.  Use CALL_EXPR_ARG.
3385         (picochip_expand_builtin_3op): Likewise.
3386         (picochip_expand_builtin_2opvoid): Likewise.
3387         (picochip_expand_array_get): Likewise.
3388         (picochip_expand_array_put): Likewise.
3389         (picochip_expand_array_testport): Likewise.
3390         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
3391         rather than arglist.
3392         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
3393         CALL_EXPR_ARGS.
3394         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
3395         than TREE_VALUE and TREE_CHAIN.
3396         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
3397         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
3398         the arglist.
3399
3400 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
3401
3402         PR bootstrap/42347
3403         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
3404   &n