OSDN Git Service

2010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         * genautomata.c (curr_state_pass_num): Delete.
4         (min_issue_delay_pass_states): Delete.
5         (min_issue_delay): Delete.
6         (initiate_min_issue_delay_pass_states): Delete.
7         (output_min_issue_delay_table): Compute min_issue_delay_vect
8         using a breadth-first search variant.
9         (output_tables): Don't call initiate_min_issue_delay_pass_states.
10
11 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
12
13         PR boostrap/44421
14         * df-problems.c (df_lr_bb_local_compute): Updated for embedded
15         bitmaps.
16         (df_byte_lr_bb_local_compute): Likewise.
17
18 2010-06-03  Jason Merrill  <jason@redhat.com>
19
20         Implement noexcept operator (5.3.7)
21         * c-common.c (c_common_reswords): Add noexcept.
22         * c-common.h (enum rid): Add RID_NOEXCEPT.
23
24 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
25
26         * config/darwin-driver.c (darwin_default_min_version): Use
27         * GCC-specific formats in diagnostics.
28         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
29         diagnostics.
30         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
31         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
32         eval_spec_function, handle_braces, process_brace_body, main,
33         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
34         getenv_spec_function, compare_version_strings,
35         version_compare_spec_function): Use GCC-specific formats in
36         diagnostics.
37
38 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
39
40         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
41         that operand 0 and operand 1 are equal.
42         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
43         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
44         and operand 1 are equal.
45         <default>: Ditto. Remove ??? comment.
46         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
47         and operand 1 are equal.
48         <default>: Ditto. Remove ??? comment.
49         (*adddi_4) <default>:  Remove assert that operand 0 and operand 1
50         are equal.
51         (*add<mode>_4) <default>: Ditto.
52         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
53
54 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
55
56         * config/i386/i386-protos.h (ix86_print_operand): Declare.
57         * config/i386/i386.c (ix86_print_operand): Make non-static.
58         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
59         * output.h (output_operand): Declare.
60         * final.c (output_operand): Make non-static.
61
62 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
63
64         PR rtl-optimization/44013
65         * sched-deps.c (add_dependence_list_and_free): Don't free lists
66         when processing debug insns.
67
68         PR debug/41371
69         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
70         recursing.  Check that recursion is bounded.  Rename inner var
71         to avoid hiding incoming argument.
72
73 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
74
75         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
76         operands[2] == 255.
77         (*addqi_3): Ditto.
78         (*addqi_4): Ditto.
79         (*addqi_5): Ditto.
80         (*addqi_ext_1_rex64): Ditto.
81         (*addqi_ext_1): Ditto.
82
83         (*addqi_4): Check for incdec_operand in QImode.
84
85         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
86         using SWI mode iterator.
87         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
88         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
89         mode iterator.
90         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
91         using SWI mode iterator.
92
93 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
94
95         PR c/25880
96         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
97         * c-format.c (gcc_diag_flag_specs): Add hash.
98         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
99         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
100         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
101         pp_c_cv_qualifiers. Handle qualifiers spelling here.
102         (pp_c_type_qualifier_list): Call the function above.
103         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
104         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
105         (WARN_FOR_QUALIFIERS): New macro.
106         (convert_for_assignment): Use it.
107
108 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
109
110         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
111
112 2010-06-04  Jan Hubicka  <jh@suse.cz>
113
114         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
115         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
116         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
117         DF_BYTE_LR_OUT): Update for embedded bitmaps.
118         * fwprop.c (single_def_use_enter_block): Likewise.
119         * ddg.c (create_ddg_dep_from_intra_loop_link,
120         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
121         * loop-iv.c (latch_dominating_def): Likewise.
122         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
123         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
124         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
125         df_rd_transfer_function, df_rd_top_dump,
126         df_rd_bottom_dump): Update.
127         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
128         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
129         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
130         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
131         df_lr_verify_solution_start, df_lr_verify_solution_end,
132         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
133         df_live_free_bb_info, df_live_alloc, df_live_reset,
134         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
135         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
136         df_live_verify_solution_start, df_live_verify_solution_end,
137         df_live_verify_transfer_functions, df_chain_create_bb,
138         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
139         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
140         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
141         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
142         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
143         df_byte_lr_transfer_function, df_byte_lr_top_dump,
144         df_byte_lr_bottom_dump, df_create_unused_note,
145         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
146         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
147         df_md_transfer_function, df_md_init, df_md_confluence_0,
148         df_md_confluence_n,
149         df_md_top_dump, df_md_bottom_dump): Update.
150         (struct df_lr_problem_data): Embedd bitmap headers.
151
152 2010-06-04  Jan Hubicka  <jh@suse.cz>
153
154         * dce.c (dce_process_block): Do not re-scan already marked
155         instructions.
156
157 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
158
159         PR rtl-optimization/39871
160         PR rtl-optimization/40615
161         PR rtl-optimization/42500
162         PR rtl-optimization/42502
163         * ira.c (init_reg_equiv_memory_loc: New function.
164         (ira): Call it twice.
165         * reload.h (calculate_elim_costs_all_insns): Declare.
166         * ira-costs.c: Include "reload.h".
167         (regno_equiv_gains): New static variable.
168         (init_costs): Allocate it.
169         (finish_costs): Free it.
170         (ira_costs): Call calculate_elim_costs_all_insns.
171         (find_costs_and_classes): Take estimated elimination costs
172         into account.
173         (ira_adjust_equiv_reg_cost): New function.
174         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
175         * reload1.c (init_eliminable_invariants, free_reg_equiv,
176         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
177         (elim_bb): New static variable.
178         (reload): Move code out of here into init_eliminable_invariants and
179         free_reg_equiv.  Call them.
180         (calculate_elim_costs_all_insns): New function.
181         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
182         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
183         but call note_reg_elim_costly if we turned a valid memory address
184         into an invalid one.
185         * Makefile.in (ira-costs.o): Depend on reload.h.
186
187 2010-06-04  Julian Brown  <julian@codesourcery.com>
188
189         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
190         for pool ranges.
191
192 2010-06-04  Richard Guenther  <rguenther@suse.de>
193
194         PR lto/41584
195         * cgraph.h (struct varpool_node): Add lto_file_data field.
196         * lto-cgraph.c (input_varpool_node): Initialize it.
197
198 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
199
200         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
201         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
202         predicate in "type" attribute calculation.
203         (*addsi_1_zext): Ditto.
204         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
205         (*addsi_2_zext): Ditto.
206         (*add<mode>_3): Ditto.
207         (*addsi_3_zext): Ditto.
208         (*add<mode>_5): Ditto.
209
210 2010-06-03  Jan Hubicka  <jh@suse.cz>
211
212         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
213         of bitmap_bit_p.
214         * cfganal.c (compute_dominance_frontiers_1): Likewise.
215
216 2010-06-03  Jan Hubicka  <jh@suse.cz>
217
218         * df-problems.c (df_create_unused_note, df_note_bb_compute):
219         micro-optimize the checks when to add new note.
220
221 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
222
223         * final.c (output_asm_insn): Call
224         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
225         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
226         (output_address): Call targetm.asm_out.print_operand_address.
227         Update comments.
228         * target.h (struct gcc_target): Add print_operand,
229         print_operand_address, and print_operand_punct_valid_p fields.
230         * targhooks.h (default_print_operand): Declare.
231         (default_print_operand_address): Declare.
232         (default_print_operand_punct_valid_p): Declare.
233         * targhooks.c (default_print_operand): Define.
234         (default_print_operand_address): Define.
235         (default_print_operand_punct_valid_p): Define.
236         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
237         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
238         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
239         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
240         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
241         * vmsdbgout.c (addr_const_to_string): Update comment.
242         * config/i386/i386.c (print_operand): Rename to...
243         (ix86_print_operand): ...this.  Make static.
244         (print_operand_address): Rename to...
245         (ix86_print_operand_address): ...this.  Make static.  Call
246         ix86_print_operand instead of PRINT_OPERAND.
247         (ix86_print_operand_punct_valid_p): New function.
248         (TARGET_PRINT_OPERAND): Define.
249         (TARGET_PRINT_OPERAND_ADDRESS): Define.
250         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
251         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
252         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
253         (PRINT_OPERAND): Delete.
254         (PRINT_OPERAND_ADDRESS): Delete.
255         * config/i386/i386-protos.h (print_operand): Delete prototype.
256         (print_operand_address): Delete prototype.
257
258 2010-06-03  Richard Guenther  <rguenther@suse.de>
259
260         PR tree-optimization/44403
261         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
262         Preserve pointer qualifiers.
263         (vect_create_data_ref_ptr): Likewise.
264
265 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
266
267         PR c++/44294
268         * defaults.h (MAX_FIXED_MODE_SIZE): New.
269
270         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
271
272 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
273
274         PR debug/44375
275         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
276         return false if merging the bbs would lead to goto_locus
277         location being lost from the IL.
278
279 2010-06-03  Jan Hubicka  <jh@suse.cz>
280             Jakub Jelinek  <jakub@redhat.com>
281
282         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
283         set->regs[i] is NULL or has just one entry.
284
285 2010-06-03  Jan Hubicka  <jh@suse.cz>
286
287         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
288         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
289
290 2010-06-03  Paul Brook  <paul@codesourcery.com>
291
292         * config/arm/arm.c (FL_TUNE): Define.
293         (arm_default_cpu, arm_cpu_select): Remove.
294         (all_cores): Populate core field.
295         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
296         (arm_find_cpu): New function.
297         (arm_handle_option): Lookup cpu/architecture names.
298         (arm_override_options): Cleanup mcpu/march/mtune handling.
299         (arm_file_start): Ditto.
300
301 2010-06-03  Alan Modra  <amodra@gmail.com>
302
303         PR target/44169
304         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
305         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
306         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
307         (rs6000_emit_load_toc_table): Likewise.
308
309 2010-06-02  Jan Hubicka  <jh@suse.cz>
310
311         * passes.c (init_optimization_passes): Put ipa reference
312         after ipa pure-const.
313
314 2010-06-02  Jan Hubicka  <jh@suse.cz>
315
316         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
317         calls_read_all and calls_write_all.
318         (get_reference_optimization_summary): Fix formatting.
319         (is_proper_for_analysis): Check that decl is not readonly.
320         (propagate_bits): Check CONST/PURE/noreturn flags.
321         (ipa_init): Move all_module_statics to optimization_summary_obstack.
322         (analyze_function): Ignore indirect edges.
323         (copy_global_bitmap): For all module statics, do nothing.
324         (generate_summary): Do not print calls_read_all/calls_write_all.
325         (read_write_all_from_decl): Take node as argument; check
326         cgraph_node_cannot_return.
327         (propagate): Reorganize read_all/write_all computation;
328         check indirect edges; check ecf flags; use all_module_statics
329         in the results; do not free all_module_statics.
330         (stream_out_bitmap): Handle all_module_statics.
331         (ipa_reference_write_optimization_summary): Likewise; use
332         varpool/cgraph encoders to get boundaries.
333         (ipa_reference_read_optimization_summary): Read in all_module_statics;
334         use it when possible.
335
336 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
337
338         PR target/44218
339         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
340         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
341
342         * doc/extend.texi (powerpc builtins): Document vec_recip,
343         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
344
345         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
346         (rs6000_emit_swrsqrt): Ditto.
347         (rs6000_emit_swdivsf): Delete.
348         (rs6000_emit_swdivdf): Ditto.
349         (rs6000_emit_swrsqrtsf): Ditto.
350
351         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
352         describe the reciprocal estimate support for each type.
353         (recip_options): Map -mrecip=<opt> into option bits.
354         (gen_2arg_fn_t): New typedef for binary rtx gen function.
355         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
356         reciprocal estimate instructions.
357         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
358         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
359         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
360         cost information if -mdebug=cost or -mdebug=reg.
361         (rs6000_override_options): Set -mrecip-precision for power6, and
362         power7 machines.  If -mvsx or -mdfp, enable various options that
363         came in previous instruction set ISAs, unless the option was
364         explicitly disabled by the command line option.  Parse
365         -mrecip=<opt> options.
366         (rs6000_builtin_vectorized_function): Add support for vectorizing
367         the reciprocal estimate builtins and expansions.
368         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
369         (bdesc_2arg): Add reciprocal estimate builtins.
370         (bdesc_1arg): Add reciprocal square root estimate builtins.
371         (rs6000_expand_builtin): Rewrite to use a switch statement,
372         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
373         (rs6000_init_builtins): Create declarations for reciprocal
374         estimate builtins.
375         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
376         sized, prefer traditional floating point registers, if integer
377         vector types, prefer altivec registers.  Don't actually look at
378         the memory address any more.
379         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
380         builtins.
381         (rs6000_load_constant_and_splat): New helper function to load up
382         the constant for reciprocal estimate instructions.
383         (rs6000_emit_madd): New helper function for generating
384         multiply/add type instructions, based on the current switches.
385         (rs6000_emit_msub): Ditto.
386         (rs6000_emit_mnsub): Ditto.
387         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
388         replace a divide with a reciprocal estimate and fixup, adding
389         support for machines with high precision and vectors.
390         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
391         low precision machines.
392         (rs6000_emit_swdiv): New common function to be called to replace a
393         division with reciprocal estimate and fixup.
394         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
395         for double and vector types.  Add support for high precision machines.
396
397         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
398         the reciprocal estimate instructions can be generated.
399         (TARGET_FRE): Ditto.
400         (TARGET_FRSQRTES): Ditto.
401         (TARGET_FRSQRTE): Ditto.
402         (RS6000_RECIP_*): New macros for reciprocal estimate support.
403
404         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
405         square root estimate on vectors.
406         (re<mode>2): New insn for reciprocal division estimate on vectors.
407
408         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
409         New builtin.
410         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
411         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
412         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
413         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
414         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
415         (RS6000_BUILTIN_RSQRT): Ditto.
416         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
417         floating point builtin.
418
419         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
420         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
421         __RECIP_PRECISION__ based on the command line switches.
422         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
423
424         * config/rs6000/rs6000.opt (-mrecip): Document add support for
425         replacing division instructions with reciprocal estimate and fixup.
426         (-mrecip=<opt>): New option.
427         (-mrecip-precision): Ditto.
428
429         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
430         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
431         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
432         precision scalar.
433
434         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
435         (UNSPEC_VREFP): Ditto.
436         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
437         conterparts with regard to support of -mno-fused-madd and -ffast-math.
438         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
439         reciprocal estimate instructions to be generated.
440         (altivec_vrefp): Ditto.
441
442         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
443         estimate support.
444         (rreg): New mode attribute for reciprocal estimate support.
445         (recip<mode>3): New insn for division using reciprocal estimate
446         and fixup builtins.
447         (divide define_split): New define_split to convert floating point
448         division to use reciprocal estimate if the user used the
449         appropriate options and the split is run when we can add new
450         pseudo registers for the fixup.
451         (rsqrt<mode>2): New insn for reciprocal square root support.
452         (recipsf3): Move into recip<mode>3.
453         (recipdf3): Ditto.
454         (fres): Use TARGET_FRES.
455         (rsqrtsf2): Move into rsqrt<mode>2.
456         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
457         (copysignsf3): Add support for VSX.
458         (fred): Use TARGET_FRE.
459         (fred_fpr): Ditto.
460         (rsqrtdf_internal1): New function for frsqrte instruciton.
461
462         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
463         (vec_rsqrt): Ditto.
464
465 2010-06-03  Richard Guenther  <rguenther@suse.de>
466
467         PR middle-end/44291
468         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
469         (set_user_assembler_libfunc): Likewise.
470
471 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
472
473         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
474         defaults.h.
475         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
476         to defaults.h
477         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
478         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
479         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
480         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
481         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
482         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
483         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
484         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
485         * defaults.h: Updated for above mentioned changes.
486
487 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
488
489         * c-common.c: Remove header include of tm_p.h.
490         * Makefile.in (c-common.o): Remove TM_P_H dependency.
491
492 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
493
494         * tree.h (struct tree_decl_map): New type.
495         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
496         (tree_decl_map_hash): New prototype.
497         (debug_expr_for_decl, value_expr_for_decl): Change into
498         tree_decl_map hashtab from tree_map.
499         (init_ttree): Adjust initialization.
500         (tree_decl_map_hash): New function.
501         (decl_debug_expr_lookup, decl_debug_expr_insert,
502         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
503
504 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
505
506         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
507         linker emulations.
508         * configure: Regenerate.
509         * config.in: Regenerate.
510
511         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
512         (X86_64_EMULATION): Define.
513         (TARGET_LD_EMULATION): Use them.
514
515         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
516         (SPARC64_EMULATION): Define.
517         (LINK_ARCH_SPEC): Use them.
518
519 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
520
521         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
522         smallest_mode_for_size for computing the precision types of new
523         graphite IVs.  Do not call lang_hooks.types.type_for_size.
524
525 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
526
527         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
528         information.
529         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
530
531 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
532
533         PR middle-end/44363
534         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
535         return false instead.
536
537 2010-06-02  Jan Hubicka  <jh@suse.cz>
538
539         PR middle-end/44295
540         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
541         create new cgraph node to check callee.
542
543 2010-06-02  Richard Guenther  <rguenther@suse.de>
544
545         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
546
547 2010-06-02  Richard Guenther  <rguenther@suse.de>
548
549         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
550         (lto_wrapper_cleanup): ... this.  Do not exit.
551         (fatal): Adjust.  Exit here.
552         (fatal_perror): Likewise.
553         (fatal_signal): New function.
554         (main): Set up signal handlers to cleanup temporary files.
555         * Makefile.in (lto-wrapper.o): Adjust dependencies.
556
557 2010-06-02  Richard Guenther  <rguenther@suse.de>
558
559         PR tree-optimization/44377
560         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
561
562 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
563
564         * config/s390/2097.md (z10_fhex): Remove insn reservation.
565         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
566         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
567         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
568         instruction.
569         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
570
571 2010-06-02  Jan Hubicka  <jh@suse.cz>
572
573         * bitmap.c (bitmap_descriptor): Add search_iter.
574         (bitmap_find_bit): Increment it.
575         (print_statistics): Print it.
576
577 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
578
579         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
580         instead of gimple_build_call_vec.  Delete unnecessary local variable.
581
582 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
583
584         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
585         change from yesterday.
586
587 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
588
589         * c-ada-spec.c: Clean up redundant includes.
590
591 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
592
593         * gimplify.c: Do not include except.h and optabs.h.
594         (gimplify_body): Do not initialize RTL profiling.
595         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
596         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
597         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
598         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
599         langhooks.h.
600
601         * tree-pretty-print.h: Include pretty-print.h.
602         * gimple-pretty-print.h: Include pretty-print.h.
603
604         * tree-pretty-print.c: Do not include diagnostic.h.
605         * tree-vrp.c: Likewise.
606         * tree-tailcall.c: Likewise
607         * tree-scalar-evolution.c: Likewise
608         * tree-ssa-dse.c: Likewise
609         * tree-chrec.c: Likewise
610         * tree-ssa-sccvn.c: Likewise
611         * tree-ssa-copyrename.c: Likewise
612         * tree-nomudflap.c: Likewise
613         * tree-call-cdce.c: Likewise
614         * tree-stdarg.c: Likewise
615         * tree-ssa-math-opts.c: Likewise
616         * tree-nrv.c: Likewise
617         * tree-ssa-sink.c: Likewise
618         * tree-browser.c: Likewise
619         * tree-ssa-loop-ivcanon.c: Likewise
620         * tree-ssa-loop.c: Likewise
621         * tree-parloops.c: Likewise
622         * tree-ssa-address.c: Likewise
623         * tree-ssa-ifcombine.c: Likewise
624         * tree-if-conv.c: Likewise
625         * tree-data-ref.c: Likewise
626         * tree-affine.c: Likewise
627         * tree-ssa-phiopt.c: Likewise
628         * tree-ssa-coalesce.c: Likewise
629         * tree-ssa-pre.c: Likewise
630         * tree-ssa-live.c: Likewise
631         * tree-predcom.c: Likewise
632         * tree-ssa-forwprop.c: Likewise
633         * tree-ssa-dce.c: Likewise
634         * tree-ssa-ter.c: Likewise
635         * tree-ssa-loop-prefetch.c: Likewise
636         * tree-optimize.c: Likewise
637         * tree-ssa-phiprop.c: Likewise
638         * tree-object-size.c: Likewise
639         * tree-outof-ssa.c: Likewise
640         * tree-ssa-structalias.c: Likewise
641         * tree-switch-conversion.c: Likewise
642         * tree-ssa-reassoc.c: Likewise
643         * tree-ssa-operands.c: Likewise
644         * tree-vectorizer.c: Likewise
645         * tree-vect-data-refs.c: Likewise
646         * tree-vect-generic.c: Likewise
647         * tree-vect-stmts.c: Likewise
648         * tree-vect-patterns.c: Likewise
649         * tree-vect-slp.c: Likewise
650         * tree-vect-loop.c: Likewise
651         * tree-ssa-loop-ivopts.c: Likewise
652         * tree-ssa-loop-im.c: Likewise
653         * tree-ssa-loop-niter.c: Likewise
654         * tree-ssa-loop-unswitch.c: Likewise
655         * tree-ssa-loop-manip.c: Likewise
656         * tree-ssa-loop-ch.c: Likewise
657         * tree-dump.c: Likewise
658         * tree-complex.c: Likewise
659
660         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
661         * tree-ssa-uninit.c: Likewise
662         * tree-ssa-threadupdate.c: Likewise
663         * tree-ssa-uncprop.c: Likewise
664         * tree-ssa-ccp.c: Likewise
665         * tree-ssa-dom.c: Likewise
666         * tree-ssa-propagate.c: Likewise
667         * tree-ssa-alias.c: Likewise
668         * tree-dfa.c: Likewise
669         * tree-cfgcleanup.c: Likewise
670         * tree-sra.c: Likewise
671         * tree-ssa-copy.c: Likewise
672         * tree-ssa.c: Likewise
673         * tree-profile.c: Likewise
674         * tree-cfg.c: Likewise
675         * tree-ssa-threadedge.c: Likewise
676         * tree-vect-loop-manip.c: Likewise
677
678         * tree-inline.c: Do not include diagnostic.h and expr.h.
679         Include rtl.h.
680         (copy_decl_for_dup_finish): Do not use NULL_RTX.
681
682         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
683         * tree-loop-distribution.c: Likewise.
684
685 2010-06-01  Jan Hubicka  <jh@suse.cz>
686
687         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
688
689 2010-06-01  Jan Hubicka  <jh@suse.cz>
690
691         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
692         remove return value.
693         (split_bbs_on_noreturn_calls) .... here.
694         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
695         * tree-flow.h (fixup_noreturn_call): New.
696
697 2010-06-01  Jan Hubicka  <jh@suse.cz>
698
699         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
700
701 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
702
703         * tree.h (build_nt_call_list): Delete.
704         * tree.c (build_nt_call_list): Delete.
705
706 2010-06-01  Jan Hubicka  <jh@suse.cz>
707
708         * fwprop.c: Make emit-rtl.h include last.
709         * rtlanal.c: Include emit-rtl.h.
710         * genautomata.c: Output emit-rtl include into insn-automata.c
711         * df-scan.c: Include emit-rtl.h.
712         * haifa-sched.c: Indlude emit-rtl.h.
713         * mode-switching.c: Indlude emit-rtl.h.
714         * graph.c: Indlude emit-rtl.h.
715         * sel-sched.c: Include emit-rtl.h.
716         * sel-sched-ir.c: Include emit-rtl.h.
717         * ira-build.c: Include emit-rtl.h.
718         * emit-rtl.c: (first_insn, last_insn): Remove defines.
719         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
720         Move to emit-rtl.h.
721         (set_new_first_and_last_insn, get_last_insn_anywhere,
722         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
723         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
724         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
725         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
726         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
727         Use accessor functions.
728         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
729          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
730         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
731         mem_expr_equal_p): Move here from rtl.h.
732         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
733         Move here from emit-rtl.c; make inline.
734         * cfglayout.h: Include emit-rtl.h.
735         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
736          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
737         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
738         mem_expr_equal_p, get_insns, set_first-insn,
739         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
740         * reg-stack.c: Include emit-rtl.h.
741         * dce.c: Likewise.
742
743 2010-06-01  Jan Hubicka  <jh@suse.cz>
744
745         * cgraph.h (tree_function_versioning): Update prototype.
746         (cgraph_function_versioning): Update prototype.
747         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
748         bitmap.
749         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
750         (cgraph_materialize_clone, save_inline_function_body): Update use of
751         tree_function_versioning.
752         * tree-inline.c (copy_bb): Look for previous copied block to link
753         after; fix debug output.
754         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
755         (copy_body): Likewise.
756         (expand_call_inline): Update use of copy_body.
757         (tree_function_versioning): Update use of copy body; accept
758         blocks_to_copy and new_entry.
759
760 2010-06-01  Jan Hubicka  <jh@suse.cz>
761
762         * gegenrtl.c: Remove unnecesary prototypes.
763         (gendecl): Remove.
764         (gendef): Produce static inline.
765         (gencode): Remove.
766         (main): Do not decode parameters; generate header only.
767         * Makefile.in (genrtl.c): Remove.
768
769 2010-06-01  Jan Hubicka  <jh@suse.cz>
770
771         * tree-switch-conversion.c (build_one_array): Make it readonly.
772
773 2010-06-01  Richard Guenther  <rguenther@suse.de>
774
775         * optabs.c (init_optabs): Guard all accesses to reinit.
776         * ipa-pure-const.c (propagate): Fix another typo.
777         * opts.c (common_handle_option): Split assignment to bool.
778         * c-opts.c (c_common_handle_option): Likewise.
779
780 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
781             Matthew Gingell  <gingell@adacore.com>
782
783         * doc/invoke.texi: Mention -fdump-ada-spec.
784         * tree-dump.c (dump_files): Add ada-spec.
785         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
786         * tree-pass.h (tree_dump_index): Add TDI_ada.
787         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
788         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
789         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
790         * c-decl.c: Include c-ada-spec.h.
791         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
792         functions.
793         (c_write_global_declarations): Add handling of -fdump-ada-spec.
794         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
795         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
796         * c-ada-spec.h, c-ada-spec.c: New files.
797
798 2010-06-01  Richard Guenther  <rguenther@suse.de>
799
800         PR lto/43853
801         * ipa-pure-const.c (get_function_state): Hand back varying state
802         if we do not have one.
803         (has_function_state): New function.
804         (duplicate_node_data): Adjust.
805         (remove_node_data): Likewise.
806         (pure_const_write_summary): Likewise.
807         (propagate): Likewise.  Fix typo.
808
809 2010-06-01  Jan Hubicka  <jh@suse.cz>
810
811         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
812         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
813         (execute_all_ipa_transforms): Do not play with the states.
814
815 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
816
817         * config/arm/t-linux-androideabi: New.
818         * config.gcc (arm*-*-linux-androideabi): Include multilib configuration.
819
820 2010-06-01  Jan Hubicka  <jh@suse.cz>
821
822         * tree-inline.c (estimate_num_insns): For stdarg functions look
823         into call statement to count cost of argument passing.
824
825 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
826
827         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
828         argument for fprintf.
829         (ix86_output_addr_diff_elt): Likewise.
830         (x86_function_profiler): Likewise.
831         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
832         (LPREFIX): Likewise.
833         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
834
835 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
836
837         PR target/44338
838         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
839         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
840         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
841         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
842         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
843         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
844         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
845         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
846         TARGET_FUSED_MADD.
847
848 2010-05-31  Jan Hubicka  <jh@suse.cz>
849
850         * tree.h (tree_range_check_failed): Declare noreturn.
851
852 2010-05-31  Jan Hubicka  <jh@suse.cz>
853
854         * gimple.c (gimple_call_builtin_p): New function.
855         * gimple.h (gimple_call_builtin_p): Declare.
856         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
857         to exit.
858         (execute_warn_function_return): BUILT_IN_RETURN is return.
859         (split_critical_edges): Return edges are not critical.
860         (is_ctrl_altering_stmt): Builtin_in_return is altering.
861         (gimple_verify_flow_info): Handle built_in_return.
862         (execute_warn_function_return): Handle built_in_return.
863         * ipa-pure-const.c (check_call): Ignore builtin_return.
864
865 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
866
867         PR middle-end/44337
868         * expr.c (expand_assignment): Don't store anything for out-of-bounds
869         array accesses with non-MEM.
870
871         PR tree-optimization/44182
872         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
873         newly needs to end a bb is followed by debug stmts, instead return
874         true from the function at the end.
875         (maybe_move_debug_stmts_to_successors): New function.
876         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
877
878 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
879
880         PR target/44161
881         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
882
883 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
884
885         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
886         for nested functions in non-optimized compilation.
887
888 2010-05-31  Richard Guenther  <rguenther@suse.de>
889
890         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
891
892 2010-05-30  Jan Hubicka  <jh@suse.cz>
893
894         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
895
896 2010-05-30  Richard Guenther  <rguenther@suse.de>
897
898         PR lto/42975
899         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
900         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
901         no longer needed.
902
903 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
904
905         * config/darwin.c (output_objc_section_asm_op): Add comment.
906         (name_needs_quotes): Add '_' to list of valid comment chars.
907         (machopic_output_function_base_name): Remove unneeded quotes.
908         (darwin_encode_section_info): Adjust asm whitespace.
909         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
910         (ASM_OUTPUT_LOCAL): Ditto.
911         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
912         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
913         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
914
915 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
916
917         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
918         RS6000_OUTPUT_BASENAME unconditionally.
919         (rs6000_output_function_epilogue): Likewise.
920
921 2010-05-30  Jan Hubicka  <jh@suse.cz>
922
923         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
924         nodes.
925
926 2010-05-30  Richard Guenther  <rguenther@suse.de>
927
928         * tree-cfg.c (verify_gimple_assign_single): Implement
929         verification for COND_EXPR rhs.
930
931 2010-05-30  Jan Hubicka  <jh@suse.cz>
932
933         * cgraph.h (cgraph_dump_file): Declare.
934         * cgraphunit.c (cgraph_dump_file): Export.
935         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
936
937 2010-05-30  Jan Hubicka  <jh@suse.cz>
938
939         * dwarf2out.c (reference_to_unused,
940         premark_types_used_by_global_vars_helper): Avoid creation of new
941         varpool nodes.
942
943 2010-05-30  Jan Hubicka  <jh@suse.cz>
944
945         * cgraph.h (cgraph_node_cannot_return,
946         cgraph_edge_cannot_lead_to_return): New functions.
947         * cgraph.c (cgraph_node_cannot_return,
948         cgraph_edge_cannot_lead_to_return): Use them.
949         * ipa-pure-const.c (pure_const_names): New static var.
950         (check_call): Handle calls not leading to return.
951         (pure_const_read_summary): Dump info read.
952         (propagate): Dump info about propagation process; ignore side effects
953         of functions not leading to exit; fix handling of pure functions.
954
955 2010-05-30  Jan Hubicka  <jh@suse.cz>
956
957         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
958         for tail call epilogues.
959
960 2010-05-30  Jan Hubicka  <jh@suse.cz>
961
962         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
963         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
964         dump files.
965
966 2010-05-29  Jan Hubicka  <jh@suse.cz>
967
968         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
969         node; remove references in node we no longer keep in cgrpah but need
970         body of.
971
972 2010-05-29  Jan Hubicka  <jh@suse.cz>
973
974         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
975
976 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
977
978         PR target/44165
979         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
980
981 2010-05-29  Jan Hubicka  <jh@suse.cz>
982
983         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
984         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
985         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
986         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
987         debug_names_replaced_by, debug_update_ssa): Likewise.
988         * sbitmap.c (debug_sbitmap): Likewise.
989         * genrecog.c (debug_decision, debug_decision_list): Likewise.
990         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
991         debug_tree_chain): Likewise.
992         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
993         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
994         * optabs.c  (debug_optab_libfuncs): Likewise.
995         (verify_loop_closed_ssa): Likewise.
996         * value-prof.c (verify_histograms): Likewise.
997         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
998         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
999         * cfghooks.c (verify_flow_info): Likewise.
1000         * fold-const.c (debug_fold_checksum): Likewise.
1001         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
1002         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
1003         Likewise.
1004         * omega.c (debug_omega_problem): Likewise.
1005         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
1006         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
1007         * dominance.c (verify_dominators, debug_dominance_info,
1008         debug_dominance_tree): Likewise.
1009         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
1010         * df_regno_debug, df_ref_debug,
1011         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
1012         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
1013         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
1014         * sel-sched.c (debug_state): Likewise.
1015         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
1016         Likewise.
1017         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
1018         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
1019         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
1020         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
1021         Likewise.
1022         * c-pretty-print.c (debug_c_tree): Likewise.
1023         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
1024         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
1025         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
1026         * ebitmap.c (debug_ebitmap): Likewise.
1027         * function.c (debug_find_var_in_block_tree): Likewise.
1028         * print-rtl.c (debug_rtx): Likewise.
1029         (debug_rtx_count): Likewise.
1030         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
1031         * stor-layout.c (debug_rli): Likewise.
1032         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
1033         * tree-data-ref.c (debug_data_references,
1034         debug_data_dependence_relations, debug_data_reference,
1035         debug_data_dependence_relation, debug_rdg_vertex,
1036         debug_rdg_component, debug_rdg): Likewise.
1037         * tree-affine.c (debug_aff): Likewise.
1038         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
1039         Likewise.
1040         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
1041         * emit-rtl.c (verify_rtl_sharing): Likewise.
1042         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
1043         debug_value_expressions): Likewise.
1044         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
1045         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
1046         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
1047         * cfglayout.c (verify_insn_chain): Likewise.
1048         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
1049         debug_clast_stmt, debug_generated_program): Likewise.
1050         * ggc-page.c (debug_print_page_list): Likewise.
1051         * tree-ssa-ter.c (debug_ter): Likewise.
1052         * graphite-dependences.c (debug_pddr): Likewise.
1053         * sched-deps.c (debug_ds): Likewise.
1054         * tree-ssa.c (verify_ssa): Likewise.
1055         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
1056         debug_scattering_functions, debug_iteration_domains, debug_pdr,
1057         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
1058         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
1059         * tree-inline.c (debug_find_tree): Likewise.
1060         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
1061         debug_ppl_powerset_matrix): Likewise.
1062         * var-tracking.c (debug_dv): Likewise.
1063         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
1064         * cfgloop.c (verify_loop_structure): Likewise.
1065         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
1066         * c-common.c (verify_sequence_points): Likewise.
1067         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
1068         debug_candidates, debug_rgn_dependencies): Likewise.
1069         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
1070         * debug_constraint_graph, debug_solution_for_var,
1071         debug_sa_points_to_info): Likewise.
1072         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
1073         Likewie.
1074         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
1075         debug_loops, debug_loop, debug_loop_num): Likewise.
1076         * passes.c (debug_pass): Likewise.
1077         (dump_properties): Likewise; add cfglayout property.
1078         (debug_properties): Likewise.
1079         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
1080         * varpool.c (debug_varpool): Likewise.
1081         * regcprop.c (debug_value_data): Likewise.
1082         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
1083         debug_immediate_uses_for): Likewise.
1084
1085 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1086
1087         PR bootstrap/44315
1088         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
1089         Filter out insn-flags.h.
1090
1091 2010-05-29  Jan Hubicka  <jh@suse.cz>
1092
1093         * cgraph.h (struct varpool_node_set_def,
1094         struct cgraph_node_set_def): Remove unused AUX pointer.
1095         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
1096         VEC_empty macro.
1097
1098 2010-05-29  Jan Hubicka  <jh@suse.cz>
1099
1100         PR middle-end/44324
1101         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
1102
1103 2010-05-29  Richard Guenther  <rguenther@suse.de>
1104
1105         * lto-streamer.c (cached_bp): New global variable.
1106         (bitpack_create): Return the cached bitpack, if available.
1107         (bitpack_delete): Clear and cache the bitpack, if appropriate.
1108         (bp_pack_value): Remove redundant asserts.
1109
1110 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1111
1112         PR middle-end/44306
1113         * tree-if-conv.c (is_true_predicate): New.
1114         (is_predicated): Use is_true_predicate.
1115         (add_to_predicate_list): Same.  Do not use unshare_expr.
1116         (add_to_dst_predicate_list): Same.
1117
1118 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1119
1120         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
1121         field on edges.
1122         (predicate_bbs): Same.
1123         (clean_predicate_lists): Same.
1124         (find_phi_replacement_condition): Do not AND the predicate from
1125         edge->aux.
1126
1127 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1128
1129         PR bootstrap/44315
1130         * Makefile.in (build/gencondmd.o): Add a missing `\'.
1131
1132 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1133
1134         PR target/44261
1135         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
1136         (negdf2): Adjust expander pattern and use negdf2_slow.
1137         (negsf2): Likewise.
1138
1139 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
1140
1141         * basic-block.h (struct control_flow_graph): Move last_label_uid field
1142         up.
1143         * df.h (struct df_base_ref): Move regno field up.
1144         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
1145         * expr.h (struct separate_ops): Move location field up.
1146         * optabs.h (struct optab_d): Move libcall_basename field down.
1147         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
1148         * config/i386/i386.h (struct machine_function): Convert call_abi field
1149         into a bitfield.  Move cfa field to the end of the structure.
1150
1151 2010-05-29  Jan Hubicka  <jh@suse.cz>
1152
1153         * varpool.c (varpool_get_node): Fix lookup.
1154
1155 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1156
1157         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
1158         RTL specific prototypes with #ifdef RTX_CODE.
1159         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
1160         * config/spu/t-spu-elf: Fix dependencies.
1161
1162         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
1163
1164 2010-05-29  Mike Stump  <mikestump@comcast.net>
1165
1166         PR bootstrap/44315
1167         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
1168         TM_H when building to avoid dependency loops.
1169
1170 2010-05-29  Jan Hubicka  <jh@suse.cz>
1171
1172         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
1173         refs and body; not the whole node for masters of materialized
1174         clones.
1175
1176 2010-05-29  Mike Stump  <mikestump@comcast.net>
1177
1178         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
1179
1180 2010-05-29  Jan Hubicka  <jh@suse.cz>
1181
1182         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
1183         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
1184         use of clone_function_name.
1185         * cgraph.h (cgraph_create_virtual_clone,
1186         cgraph_function_versioning): update prototypes.
1187         (clone_function_name): Declare.
1188         * ipa-cp.c (ipcp_insert_stage): Update call of
1189         cgraph_create_virtual_clone.
1190         * omp-low.c (create_omp_child_function_name): Use
1191         cgraph_create_virtual_clone.
1192         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
1193         (cgraph_function_versioning): Take SUFFIX argument; produce new name
1194         and make decl local.
1195
1196 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1197
1198         * vec.h: Include statistics.h
1199         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
1200         with VEC_H.
1201
1202 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1203
1204         * c-lex.c: Do not include c-tree.h.
1205         * c-pretty-print.c: Likewise.
1206         * c-opts.c: Likewise.
1207         * c-gimplify.c: Likewise.
1208         * c-common.c: Likewise.
1209         * c-dump.c: Likewise.  Include c-common.h.
1210
1211 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1212
1213         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
1214         before including diagnostic-core.h.
1215         (c_cpp_error): New prototype moved from c-tree.h.
1216         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
1217         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
1218         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
1219         (c_cpp_error): Prototype moved to c-common.h.
1220         * Makefile.in: Update dependency for C_COMMON_H.
1221
1222 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1223
1224         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
1225         * c-common.c (c_register_addr_space): Remove here.
1226         * c-decl.c (c_register_addr_space): Re-add here.
1227
1228 2010-05-28  Mike Stump  <mikestump@comcast.net>
1229
1230         * config/darwin-c.c: Remove c-tree.h include.
1231
1232 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1233
1234         * gcc.c: Include diagnostic.h.
1235         (error_count): Remove.  All users changed to use errorcount.
1236         (programname): Remove.  All users changed to use progname.
1237         (fancy_abort, internal_error, fatal_error, error, warning, inform,
1238         fnotice): Remove.
1239         (execute): Don't include "Internal error" and bug reporting
1240         information in argument of internal_error call.
1241         (process_command): Don't increment error_count after calling
1242         perror_with_name.
1243         (input_filename): Rename to gcc_input_filename.  All users
1244         changed.
1245         (main): Call diagnostic_initialize.  Register delete_temp_files
1246         with atexit.  Use seen_error to test for errors.
1247         * gcc.h: Include diagnostic-core.h.
1248         (fatal_error, error, warning): Remove.
1249         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
1250         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
1251         (gcc.o): Update dependencies.
1252
1253 2010-05-28  Jeff Law  <law@redhat.com>
1254
1255         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
1256         functions.
1257         * ira.h (ira_bad_reload_regno): Declare
1258         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
1259
1260         * ira-color.c (update_curr_costs): Free updated hard reg costs.
1261         (ira_reassign_conflict_allocnos): Remove bogus asserts.
1262         (allocno_reload_assign): Likewise.
1263
1264 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
1265
1266         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
1267         build1_stat.
1268
1269 2010-05-28  Richard Guenther  <rguenther@suse.de>
1270
1271         PR lto/44312
1272         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
1273         Stream fixed-point constants mode.
1274         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
1275         and TYPE_PRECISION.
1276         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
1277         Stream fixed-point constants mode.
1278         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
1279         and TYPE_PRECISION.
1280
1281 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1282
1283         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
1284         only place it was called from.
1285         (number_of_latch_executions): Do not return chrec_dont_know when the
1286         may_be_zero is a runtime condition: instead, return a COND_EXPR
1287         including the may_be_zero condition.
1288         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
1289         of nb_iterations.
1290         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
1291         COND_EXPRs.
1292
1293 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1294
1295         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
1296         generate COND_EXPRs for degenerate_phi_result.
1297
1298 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
1299
1300         PR middle-end/44293
1301         * tree-if-conv.c (if_convertible_loop_p): Check the
1302         if-convertibility of phi nodes in non predicated BBs.
1303
1304 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1305
1306         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
1307
1308 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1309
1310         PR driver/15303
1311         * gcc.c (inform, warning, inform): New functions.
1312         (fatal_ice): Rename to internal_error; change cmsgid parameter to
1313         gmsgid.  All callers changed.
1314         (notice): Rename to fnotice; add parameter fp.  All callers
1315         changed.
1316         (fatal_error): Rename to fatal_signal.  All users changed.
1317         (fatal): Rename to fatal_error; change cmsgid parameter to
1318         gmsgid.  All callers changed.
1319         (process_command): Use warning instead of error for warnings.
1320         (end_going_arg): Don't use _() around argument of error.
1321         (do_spec_1): Use inform for message from %n specs.  Use warning
1322         instead of error for warnings.
1323         (main): Use inform for comparison messages.  Use warning for
1324         message about unused linker input.
1325         (error): Increment error_count.  Print "error: ".
1326         * gcc.h (fatal): Change to fatal_error.
1327         (warning): Declare.
1328         * config/darwin-driver.c (darwin_default_min_version): Use warning
1329         instead of fprintf for warnings.
1330         * cppspec.c (lang_specific_driver): Use fatal_error instead of
1331         fatal.
1332
1333 2010-05-28  Julian Brown  <julian@codesourcery.com>
1334
1335         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
1336         (*thumb2_addsi3_compare0_scratch): New.
1337         * config/arm/constraints.md (Pv): New.
1338         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
1339         for ARM mode only.
1340         (*addsi3_compare0_scratch): Likewise.
1341
1342 2010-05-28  Jan Hubicka  <jh@suse.cz>
1343
1344         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
1345         check.
1346         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
1347         only on local statics.
1348
1349 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
1350
1351         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
1352
1353 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
1354
1355         PR bootstrap/44314
1356         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
1357         (OPTION_GLIBC): Define.
1358
1359 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
1360
1361         PR debug/41048
1362         * dwarf2out.c (double_int_type_size_in_bits): New function.
1363         (round_up_to_align): Change first argument and return value to
1364         double_int.
1365         (field_byte_offset): Work internally on double_ints.
1366
1367         PR target/43636
1368         * builtins.c (expand_movstr): Use a temporary pseudo instead
1369         of target even when target is not NULL and not const0_rtx, but
1370         fails movstr predicate.
1371         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
1372
1373 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
1374
1375         * final.c (rest_of_clean_state): Use %m in errors instead of
1376         strerror (errno).
1377         * gengtype.c (read_input_list, close_output_files): Use xstrerror
1378         instead of strerror.
1379         * toplev.c (process_options): Use %m in errors instead of strerror
1380         (errno).
1381         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
1382         (errno).
1383
1384 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
1385
1386         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
1387         (ix86_canonical_va_list_type): Make static.  Add declaration.
1388         (ix86_enum_va_list): Make static.  Reindent.
1389         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
1390         (ix86_canonical_va_list_type): Ditto.
1391         (ix86_enum_va_list): Ditto.
1392
1393 2010-05-28  Richard Guenther  <rguenther@suse.de>
1394
1395         * lto-wrapper.c (run_gcc): With -save-temps generate a
1396         user-visible ltrans filename.  Fixup ltrans unit numbering.
1397
1398 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
1399
1400         * c-common.c (c_common_nodes_and_builtins): Replace use
1401         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
1402         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
1403         to ix86_enum_va_list.
1404         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
1405         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
1406         (TARGET_ENUM_VA_LIST_P): Add hook description.
1407         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
1408         * target.h (gcc_target): Add enum_va_list hook.
1409
1410         PR bootstrap/44299
1411         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
1412         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
1413         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
1414
1415 2010-05-28  Alan Modra  <amodra@gmail.com>
1416
1417         PR target/44266
1418         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1419         emit_library_call machinery to set up __tls_get_addr calls.
1420
1421 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1422
1423         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
1424
1425 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
1426
1427         Revert fix for PR c++/44188
1428         * c-common.c (is_typedef_decl): Revert the moving of  this
1429         definition ...
1430         * tree.c (is_typedef_decl): ... here.
1431         (typdef_variant_p): Revert the moving of this  definition
1432         here from gcc/cp/tree.c.
1433         * c-common.h (is_typedef_decl): Revert the moving of this
1434         declaration ...
1435         * tree.h (is_typedef_decl): ... here.
1436         (typedef_variant_p): Revert the moving of this  declaration here
1437         from gcc/cp/cp-tree.h
1438         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
1439         (gen_tagged_type_die): Revert the splitting out of ...
1440         (gen_type_die_with_usage): ... this function. Revert the anonymous
1441         tagged type handling.
1442         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
1443         typedefs naming anonymous tagged types.
1444
1445 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
1446
1447         * config/rs6000/rs6000-modes.def (PSImode): Delete.
1448
1449 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
1450
1451         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
1452         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
1453         throughout.
1454         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
1455         "xer" to "ca".
1456         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
1457         XER_REGS to CA_REGS throughout.
1458         * config/rs6000/rs6000.h: Same.
1459         (ADDITIONAL_REGISTER_NAMES): Add "xer".
1460         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
1461         that mode_iterator "P" is the size for arithmetic carries as well.
1462         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
1463
1464 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
1465
1466         PR bootstrap/44255
1467         * combine.c (struct rtx_subst_pair): Define unconditionally.
1468         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
1469         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
1470         Call make_compound_operation on pair->to.
1471         (propagate_for_debug): Don't call make_compound_operation here.
1472         Always use simplify_replace_fn_rtx.
1473
1474 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
1475
1476         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
1477         * config/xtensa/xtensa.c (override_options): Check
1478           TARGET_FORCE_NO_PIC and set flag_pic.
1479         * config/xtensa/xtensa.opt: Document -mforce-no-pic
1480
1481 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
1482
1483         PR bootstrap/44299
1484         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
1485         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
1486
1487 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1488
1489         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
1490         toplev.h.
1491         * diagnostic.c: Don't include toplev.h.
1492         (progname): Define.  Moved from toplev.c.
1493         (seen_error): New function.
1494         * diagnostic.h: Include diagnostic-core.h.
1495         (diagnostic_t, emit_diagnostic): Don't declare here.
1496         * toplev.c (progname): Move to toplev.c.
1497         (emit_debug_global_declarations, compile_file, finalize,
1498         do_compile, toplev_main): Use seen_error.
1499         * toplev.h: Include diagnostic-core.h.
1500         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
1501         internal_error, warning, warning_at, error, error_n, error_at,
1502         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
1503         verbatim, fnotice, progname): Move to diagnostic-core.h.
1504         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
1505         (expand_builtin_expect): Use seen_error.
1506         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
1507         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
1508         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
1509         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
1510         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
1511         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
1512         errorcount for errors.
1513         * c-opts.c (c_common_finish): Use seen_error.
1514         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
1515         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
1516         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
1517         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
1518         (get_coverage_counts): Use seen_error.
1519         * dwarf2out.c (dwarf2out_finish): Use seen_error.
1520         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
1521         gimplify_body): Use seen_error.
1522         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
1523         * ipa-pure-const.c (gate_pure_const): Use seen_error.
1524         * ipa-reference.c (gate_reference): Use seen_error.
1525         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
1526         * lambda-code.c: Include diagnostic-core.h instead of
1527         diagnostic.h.
1528         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
1529         * lto-compress.c: Include diagnostic-core.h instead of
1530         diagnostic.h.
1531         * lto-section-in.c: Include diagnostic-core.h instead of
1532         diagnostic.h.
1533         * lto-streamer-out.c: Include diagnostic-core.h instead of
1534         diagnostic.h.
1535         * lto-streamer.c: Include diagnostic-core.h instead of
1536         diagnostic.h.
1537         (gate_lto_out): Use seen_error.
1538         * matrix-reorg.c: Include diagnostic-core.h instead of
1539         diagnostic.h.
1540         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
1541         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
1542         (gate_expand_omp, lower_omp_1): Use seen_error.
1543         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
1544         (rest_of_decl_compilation, rest_of_type_compilation,
1545         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
1546         * tree-cfg.c (label_to_block_fn): Use seen_error.
1547         * tree-inline.c (optimize_inline_calls): Use seen_error.
1548         * tree-mudflap.c (mudflap_finish_file): Use
1549         seen_error.
1550         * tree-optimize.c (gate_all_optimizations,
1551         gate_all_early_local_passes, gate_all_early_optimizations): Use
1552         seen_error.
1553         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
1554         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
1555         (varpool_remove_unreferenced_decls,
1556         varpool_assemble_pending_decls): Use seen_error.
1557         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
1558         (TOPLEV_H, DIAGNOSTIC_H): Update.
1559         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
1560         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
1561         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
1562         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
1563         coverage.o, lambda-code.o): Update dependencies.
1564
1565 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
1566
1567         PR c++/44188
1568         * c-common.c (is_typedef_decl): Move this definition ...
1569         * tree.c (is_typedef_decl): ... here.
1570         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1571         * c-common.h (is_typedef_decl): Move this declaration ...
1572         * tree.h (is_typedef_decl): ... here.
1573         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1574         * dwarf2out.c (is_naming_typedef_decl): New function.
1575         (gen_tagged_type_die): Split out of ...
1576         (gen_type_die_with_usage): ... this function. When an anonymous
1577         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1578         is emitted for the typedef.
1579         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1580         anonymous tagged types.
1581
1582 2010-05-27  Jason Merrill  <jason@redhat.com>
1583
1584         * print-tree.c (debug_vec_tree): New fn.
1585         (print_vec_tree): New fn.
1586         * tree.h: Declare them.
1587         * gdbinit.in (pvt): New command.
1588
1589         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
1590
1591         * gdbinit.in (pdd): New command.
1592
1593 2010-05-27  Jan Hubicka  <jh@suse.cz>
1594
1595         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
1596         (update_caller_keys): Return early if there are no callers;
1597         only update fibheap when decresing the key.
1598         (update_callee_keys): Avoid recursion.
1599         (decide_inlining_of_small_functions): When badness does not match;
1600         re-insert into fibheap.
1601
1602 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
1603
1604         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
1605         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
1606         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
1607         (ALL_HOST_OBJS): Now a union of the above two.
1608         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
1609         all files in ALL_HOST_FRONTEND_OBJS.
1610         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
1611
1612         * c-common.c: Pretend to be a backend file by undefining
1613         IN_GCC_FRONTEND (still need rtl.h here).
1614
1615 2010-05-27  Jan Hubicka  <jh@suse.cz>
1616
1617         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
1618         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
1619
1620 2010-05-27  Jan Hubicka  <jh@suse.cz>
1621
1622         * sched-ebb.c: Rename struct deps to struct deps_desc.
1623         * ddg.c: Likewise.
1624         * sel-sched-ir.c: Likewise.
1625         * sched-deps.c: Likewise.
1626         * sched-int.h: Likewise.
1627         * sched-rgn.c: Likewise.
1628
1629 2010-05-27  Jon Beniston <jon@beniston.com>
1630
1631         PR 43726
1632         * config/lm32/lm32.h: Remove definition of
1633         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
1634
1635 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1636
1637         PR lto/44230
1638         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
1639
1640 2010-05-27  Richard Guenther  <rguenther@suse.de>
1641
1642         PR tree-optimization/44284
1643         * tree-vect-stmts.c (vectorizable_assignment): Handle
1644         sign-changing conversions as simple copy.
1645
1646 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1647
1648         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
1649         Bionic C library.
1650         (__gthread_active_p): Check for pthread_create if compiling against
1651         Bionic C library.
1652
1653 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1654
1655         Support compilation for Android platform.  Reimplement -mandroid.
1656
1657         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
1658         (*android*): Set ANDROID_DEFAULT.
1659         (arm*-*-linux*): Include linux-android.h.
1660         (arm*-*-eabi*): Don't include previous -mandroid implementation.
1661         * config/arm/eabi.h: Remove, move Android-specific parts ...
1662         * config/linux-android.h: ... here.  New file.
1663         * config/arm/eabi.opt: Rename to ...
1664         * config/linux-android.opt: ... this.
1665         (mandroid): Allow -mno-android option.  Initialize based on
1666         ANDROID_DEFAULT.
1667         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
1668         Move logic to corresponding LINUX_TARGET_* macros.
1669         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
1670         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
1671         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
1672         Android definitions.
1673         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
1674         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
1675         Document.
1676
1677 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1678
1679         Add support for Bionic C library
1680
1681         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
1682         macro.
1683         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
1684         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
1685
1686         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
1687         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
1688         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
1689         to support multiple C libraries.  Handle Bionic.
1690         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
1691         (BIONIC_DYNAMIC_LINKER64): Define.
1692         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
1693         Update.
1694         (TARGET_HAS_SINCOS): Enable for Bionic.
1695
1696         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
1697         the last option specified on command line take effect.
1698         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
1699         (mbionic): New.
1700         (mglibc, muclibc): Update.
1701
1702         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
1703         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
1704         DEFAULT_LIBC.
1705
1706         * doc/invoke.texi (-mglibc, -muclibc): Update.
1707         (-mbionic): Document.
1708
1709 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1710
1711         * c-common.h (c_register_addr_space): Add prototype.
1712         (ADDR_SPACE_KEYWORD): Remove.
1713         * c-common.c (c_register_addr_space): New function.
1714         (c_addr_space_name): Reimplement.
1715         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
1716
1717         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
1718         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
1719
1720         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
1721         Remove TARGET_ADDR_SPACE_KEYWORDS.
1722
1723 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
1724
1725         * input.c: New file.
1726         * input.h (main_input_filename): Move declaration to toplev.h.
1727         * toplev.c (input_location, line_table): Move to input.c
1728         * toplev.h (main_input_filename): Move declaration from input.h.
1729         * tree.c (expand_location): Move to input.c.
1730         * Makefile.in (OBJS-common): Add input.o.
1731         (input.o): Add dependencies.
1732
1733 2010-05-27  Richard Guenther  <rguenther@suse.de>
1734
1735         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
1736         for non-existant files.
1737         (fork_execute): Mark args_name file as deleted.
1738
1739 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
1740
1741         PR bootstrp/44287
1742         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
1743         (narrow_signed_type): Likewise.
1744
1745 2010-05-26  Jan Hubicka  <jh@suse.cz>
1746
1747         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
1748         edge only when checking is enabled; check using former_clone_of;
1749         check inline clones too.
1750         (cgraph_materialize_clone): Record former_clone_of pointer.
1751         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
1752         combining redirections; dump args_to_skip bitmap
1753         (cgraph_materialize_all_clones): Do no redirection here.
1754         * ipa-inline.c (inline_transform): Do redirection here.
1755         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
1756         cheking only).
1757
1758 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1759
1760         * config/avr/avr-c.c: Do not include regs.h.
1761         Include cpplib.h for cpp_define and tree.h for c-common.h.
1762         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
1763         * config/avr/t-avr: Fix dependencies for avr-c.o.
1764
1765 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1766
1767         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
1768         string instead of SYMBOL_REF rtx.
1769         * rtl.h (set_stack_check_libfunc): Move prototype from here...
1770         * libfuncs.h: ...to here.  Adjust for explow.c change.
1771
1772 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1773
1774         * pretty-print.c: Don't include ggc.h.
1775         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
1776         (identifier_to_locale): Use them for allocation.
1777         * pretty-print.h (identifier_to_locale_alloc,
1778         identifier_to_locale_free): Declare.
1779         * toplev.c (alloc_for_identifier_to_locale): New.
1780         (general_init): Set identifier_to_locale_alloc and
1781         identifier_to_locale_free.
1782         * Makefile.in (pretty-print.o): Update dependencies.
1783
1784 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1785
1786         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
1787         pointer types if they have different alignment or mode.
1788
1789 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
1790
1791         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1792         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1793         * config/sparc/sparc-protos.h (function_value): Remove declaration.
1794         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
1795         sparc_function_value_regno_p): New functions.
1796         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1797         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1798         (function_value): Rename to...
1799         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
1800         argument to 'outgoing'.
1801         (function_arg_record_value, function_arg_union_value,
1802         function_arg_vector_value): Update comment.
1803
1804 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1805
1806         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
1807         (fde_needed_for_eh_p): New predicate.
1808         (output_call_frame_info): Use it throughout to decide whether FDEs
1809         are needed for EH purpose.
1810         (dwarf2out_begin_prologue): Reorder assignments.
1811
1812 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1813
1814         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
1815         special case loop->header.
1816         (is_predicated): New.
1817         (if_convertible_loop_p): Call it.
1818
1819 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1820
1821         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
1822         iterator in parameter.  Do not generate code during the analysis.
1823         (tree_if_convert_cond_stmt): Removed.
1824         (tree_if_convert_stmt): Removed.
1825         (predicate_bbs): New.
1826         (if_convertible_loop_p): Call predicate_bbs.
1827         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
1828         now contains all the analysis part.
1829
1830 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1831
1832         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
1833         statements in the analysis part.
1834         (tree_if_convert_stmt): Update comment.
1835         (remove_conditions_and_labels): New.
1836         (combine_blocks): Call remove_conditions_and_labels.
1837         (tree_if_conversion): Update comment.
1838
1839 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1840
1841         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
1842         than 2 predecessors or more than 2 successors.
1843
1844 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1845
1846         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
1847         of loops in which the data dependence analysis fails.
1848
1849 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1850
1851         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
1852         CDI_POST_DOMINATORS.
1853         (tree_if_conversion): Same.
1854
1855 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1856
1857         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
1858
1859 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
1860
1861         * tree-if-conv.c: Update copyright years.  Fix comments.
1862         Fix indentation.
1863
1864 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
1865
1866         * builtin-types.def (BT_INT128): New primitive type.
1867         (BT_UINT128): Likewise.
1868         * c-common.c (c_common_r): Add __int128 keyword.
1869         (c_common_type_for_size): Handle __int128.
1870         (c_common_type_for_mode): Likewise.
1871         (c_common_signed_or_unsigned_type): Likewise.
1872         (c_common_nodes_and_builtins): Add builtin type
1873         if target supports 128-bit integer scalar.
1874         * c-common.h (enum rid): Add RID_INT128.
1875         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
1876         if target supports 128-bit integer scalar.
1877         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
1878         (finish_declspecs): Likewise.
1879         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
1880         (c_token_starts_declspecs): Likewise.
1881         (c_parser_declspecs): Likewise.
1882         (c_parser_attributes): Likewise.
1883         (c_parser_objc_selector): Likewise.
1884         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
1885         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
1886         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
1887         * tree.c (make_or_reuse_type): Likewise.
1888         (make_unsigned_type): Likewise.
1889         (build_common_tree_nodes_2): Likewise.
1890         * tree.h (enum integer_type_kind): Add itk_int128 and
1891         itk_unsigned_int128.
1892         (int128_integer_type_node): New define.
1893         (int128_unsigned_type_node): New define.
1894         * doc/extend.texi: Add documentation about __int128 type.
1895
1896 2010-05-26  Richard Guenther  <rguenther@suse.de>
1897
1898         * tree-ssa-sccvn.c (copy_nary): Adjust.
1899         (copy_phis): Rename to ...
1900         (copy_phi): ... this.  Adjust.
1901         (copy_references): Rename to ...
1902         (copy_reference): ... this.  Adjust.
1903         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
1904         result into the valid table.
1905
1906 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1907
1908         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
1909         insn-config.h, insn-codes.h, recog.h, and optabs.h.
1910
1911 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1912
1913         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
1914
1915 2010-05-26  Richard Guenther  <rguenther@suse.de>
1916
1917         * opts.c (common_handle_option): Handle OPT_Ofast.
1918
1919 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
1920
1921         * diagnostic.c: Don't include opts.h.
1922         (permissive_error_option): Define.
1923         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
1924         for classify_diagnostic.  Don't use memset for
1925         classify_diagnostic.  Initialize new and recently added fields.
1926         (diagnostic_classify_diagnostic): Use context->n_opts instead of
1927         N_OPTS.
1928         (diagnostic_report_diagnostic): Pass context parameter to
1929         diagnostic_report_warnings_p.  Use option_enabled and option_name
1930         hooks from context.
1931         (emit_diagnostic): Use permissive_error_option.
1932         (permerror): Likewise.
1933         * diagnostic.h: Don't include options.h.
1934         (struct diagnostic_context): Add n_opts, opt_permissive,
1935         inhibit_warnings, warn_system_headers, option_enabled and
1936         option_name fields.  Change classify_diagnostic to a pointer.
1937         * opts-diagnostic.h: New file.
1938         * opts.c: Include opts-diagnostic.h.
1939         (common_handle_option): Set global_dc fields for -Wfatal-errors,
1940         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
1941         (option_name): New function.
1942         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
1943         (c_common_handle_option): Set global_dc->permissive for
1944         -fpermissive.
1945         * c-common.c (c_cpp_error): Save and restore
1946         global_dc->warn_system_headers, not variable warn_system_headers.
1947         * toplev.c: Include opts-diagnostic.h.
1948         (general_init): Update call to diagnostic_initialize.  Set
1949         global_dc->show_column, global_dc->option_enabled and
1950         global_dc->option_name.
1951         (process_options): Don't set global_dc fields here.
1952         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
1953         (diagnostic.o, opts.o, toplev.o): Update dependencies.
1954
1955 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
1956
1957         * config/picochip/picochip.md (movsi): Split a movsi from a
1958         const after reload.
1959
1960 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1961
1962         * ggc-zone.c: Update copyright year.
1963         (poison_region): Mark memory for Valgrind as undefined before
1964         memset () call and inaccessible afterwards.
1965         (ggc_pch_total_size): Change type of i to int.
1966
1967 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1968
1969         * ggc-common.c (ggc_free_overhead): Allow empty slot.
1970
1971 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1972
1973         * ggc-common.c: Update copyright year.
1974         (ggc_rlimit_bound): Remove prototype.  Compile only if
1975         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
1976         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
1977         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
1978         (ggc_min_heapsize_heuristic): Likewise.
1979
1980 2010-05-26  Richard Guenther  <rguenther@suse.de>
1981
1982         PR rtl-optimization/44164
1983         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
1984         no-common access-path disambiguation.
1985         (indirect_ref_may_alias_decl_p): Adjust.
1986         (indirect_refs_may_alias_p): Likewise.
1987         (refs_may_alias_p_1): Likewise.
1988
1989 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1990
1991         * c-typeck.c: Do not include expr.h.
1992
1993 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1994
1995         * rtl.h (decl_default_tls_model): Move prototype from here...
1996         * output.h: ...to here.
1997         * c-decl.c: Do not include rtl.h.
1998         * c-pragma.c: Likewise.
1999         * c-parser.c: Likewise.
2000         * c-gimplify.c: Likewise.  And also not hard-reg-set.
2001         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
2002         FIXME note for it.  Add a FIXME note for expr.h.
2003         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
2004         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
2005         defined.
2006
2007 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
2008
2009         PR target/44199
2010         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
2011         or total_size is larger than red zone size for non-V4 ABI, emit a
2012         stack_tie resp. frame_tie insn before stack pointer restore.
2013         * config/rs6000/rs6000.md (frame_tie): New insn.
2014
2015 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2016
2017         * function.h (struct function): Add can_throw_non_call_exceptions bit.
2018         * lto-streamer-in.c (input_function): Stream it in.
2019         * lto-streamer-out.c (output_function): Stream it out.
2020         * function.c (allocate_struct_function): Set it.
2021         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
2022         for flag_non_call_exceptions.
2023         * cfgbuild.c (control_flow_insn_p): Likewise.
2024         (make_edges): Likewise.
2025         * cfgexpand.c (expand_stack_alignment): Likewise.
2026         * combine.c (distribute_notes): Likewise.
2027         * cse.c (cse_extended_basic_block): Likewise.
2028         * except.c (insn_could_throw_p): Likewise.
2029         * gcse.c (simple_mem): Likewise.
2030         * ipa-pure-const.c (check_call): Likewise.
2031         (check_stmt ): Likewise.
2032         * lower-subreg.c (lower-subreg.c): Likewise.
2033         * optabs.c (emit_libcall_block): Likewise.
2034         (prepare_cmp_insn): Likewise.
2035         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
2036         * postreload.c (rest_of_handle_postreload): Likewise.
2037         * reload1.c (reload_as_needed): Likewise.
2038         (emit_input_reload_insns): Likewise.
2039         (emit_output_reload_insns): Likewise.
2040         (fixup_abnormal_edges): Likewise.
2041         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
2042         * store-motion.c (find_moveable_store): Likewise.
2043         * tree-eh.c (stmt_could_throw_p): Likewise.
2044         (tree_could_throw_p): Likewise.
2045         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2046         * config/arm/arm.c (arm_expand_prologue): Likewise.
2047         (thumb1_expand_prologue): Likewise.
2048         * config/rx/rx.md (cbranchsf4): Likewise.
2049         (cmpsf): Likewise.
2050         * config/s390/s390.c (s390_emit_prologue): Likewise.
2051         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
2052         (inline_forbidden_into_p): New predicate.
2053         (expand_call_inline): Use it to forbid inlining.
2054         (tree_can_inline_p): Likewise.
2055
2056 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2057
2058         * config/i386/i386-c.c: Do not include rtl.h.
2059         * config/i386/t-i386: Update dependencies.
2060
2061 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2062
2063         * attribs.c: Do not include rtl.h.
2064         * Makefile.in: Update dependencies.
2065
2066 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
2067
2068         * double-int.h (double_int_and): New.
2069         * combine.c (try_combine): Clean up, use double_int_* and
2070         immed_double_int_const functions.
2071
2072 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2073
2074         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
2075         stderr to /dev/null instead of grep -q.
2076         * configure: Regenerate.
2077
2078 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2079
2080         * Makefile.in (EXCEPT_H): Fix typo.
2081
2082 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
2083
2084         * ira-build.c (update_conflict_hard_reg_costs): New.
2085         (ira_build): Call update_conflict_hard_reg_costs.
2086
2087 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2088
2089         PR debug/41371
2090         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
2091         ENABLE_CHECKING.
2092         (intersect_loc_chains): Walk the s2var's loc_chain together
2093         with s1node chain as long as the locations are equal, don't
2094         call find_loc_in_1pdv in that case.
2095
2096         PR debug/42801
2097         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
2098         (copy_bind_expr): ... instead of here.
2099         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
2100         if the block hasn't been remapped.
2101         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
2102         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
2103
2104 2010-05-25  Richard Guenther  <rguenther@suse.de>
2105
2106         PR middle-end/44069
2107         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
2108         out-of-bounds array accesses.
2109
2110 2010-05-25  Richard Guenther  <rguenther@suse.de>
2111
2112         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
2113         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
2114         (run_gcc): Re-organize to make cleanup easier.
2115
2116 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2117
2118         * config/s390/s390.c (optimization_options): Fix and move the
2119         flag_prefetch_loop_arrays override ...
2120         (override_options): ... here.
2121
2122 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
2123
2124         * diagnostic.c: Don't include plugin.h.
2125         (diagnostic_report_diagnostic): Don't handle plugins specially
2126         here.  Pass context to internal_error callback.
2127         * diagnostic.h (struct diagnostic_context): Add context parameter
2128         to internal_error callback.
2129         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
2130         * plugin.h (struct diagnostic_context): Declare.
2131         (warn_if_plugins, plugins_internal_error_function): Declare.
2132         * toplev.c (general_init): Set global_dc->internal_error.
2133         * Makefile.in (diagnostic.o): Update dependencies.
2134
2135 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
2136
2137         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
2138         * config/rs6000/t-darwin64: New.
2139         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
2140         build crt2.
2141
2142 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
2143
2144         PR 44203
2145         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
2146         match the original (and intended) behaviour before r159557.  This
2147         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
2148         in two ways.
2149
2150 2010-05-25  Richard Guenther  <rguenther@suse.de>
2151
2152         * doc/invoke.texi: Document -Ofast.
2153         * target.h (struct gcc_target): Add handle_ofast.
2154         * target-def.h (TARGET_HANDLE_OFAST): Add.
2155         (TARGET_INITIALIZER): Adjust.
2156         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
2157         * common.opt (Ofast): Add.
2158
2159 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2160
2161         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
2162         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
2163
2164 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2165
2166         PR target/43610
2167         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
2168         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
2169         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
2170         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
2171
2172 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2173
2174         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
2175         DW_OP_minus with negated offset instead of DW_OP_plus.
2176         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
2177
2178 2010-05-25  Wei Guozhi  <carrot@google.com>
2179
2180         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
2181         tst instruction and a new alternative.
2182         * config/arm/constraints.md (Pu): New constraint.
2183
2184 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
2185
2186         * function.c (assign_stack_local_1): Initialize variable
2187         to avoid warning when bootstrapping at -O3.
2188
2189 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
2190
2191         * configure.ac (all_lang_makefiles): Remove everything related to it.
2192         * configure: Regenerate.
2193         * Makefile.in: Fix reference to ada Make-lang.in.
2194         Remove support for LANG_MAKEFILES.
2195
2196 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
2197             Sandra Loosemore  <sandra@codesourcery.com>
2198
2199         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
2200         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
2201         description.  Add arm_neon_fp16_ok.
2202         (Add Options): Add arm_neon and arm_neon_fp16.
2203
2204 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
2205
2206         * diagnostic.c: Don't include flags.h.
2207         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
2208         context parameters.  Check flags in the context passed as a parameter.
2209         (diagnostic_build_prefix): Add context parameter.  Check
2210         show_column flag in context.
2211         (diagnostic_action_after_output): Check fatal_errors flag in context.
2212         (diagnostic_report_current_module): Check show_column flag in context.
2213         (default_diagnostic_starter): Update call to
2214         diagnostic_build_prefix.
2215         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
2216         (emit_diagnostic): Pass context to permissive_error_kind.
2217         (permerror): Pass context to permissive_error_kind.
2218         * diagnostic.h (struct diagnostic_context): Add show_column,
2219         pedantic_errors, permissive and fatal_errors fields.
2220         (diagnostic_build_prefix): Update prototype.
2221         * langhooks.c
2222         * toplev.c (process_options): Set flags in global_dc from
2223         flag_show_column, flag_pedantic_errors, flag_permissive,
2224         flag_fatal_errors.
2225         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
2226         to diagnostic_build_prefix.
2227         * Makefile.in (diagnostic.o): Update dependencies.
2228
2229 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2230
2231         * config/i386/ia32intrin.h (__crc32q): Define only if
2232         __SSE4_2__ is defined.
2233
2234 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
2235
2236         PR target/44132
2237         PR middle-end/43602
2238         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
2239         DECL_VISIBILITY_SPECIFIED.
2240         (emutls_decl): Set DECL_PRESERVE_P and copy
2241         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
2242         (emutls_finalize_control_var): New callback.
2243         (emutls_finish): Finalize emutls control variables.
2244         * toplev.c (compile_file): Move the call to emutls_finish ()
2245         before varpool_assemble_pending_decls ().
2246
2247 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
2248
2249         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
2250         added to the preprocessor condition.
2251
2252 2010-05-24  Paul Brook  <paul@codesourcery.com>
2253
2254         * gengtype-lex.l: Add HARD_REG_SET.
2255         * expr.c (expand_expr_real_1): Record writes to hard registers.
2256         * function.c (rtl_data): Add asm_clobbers.
2257         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
2258         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
2259         Use crtl->asm_clobbers.
2260
2261 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2262
2263         * doc/makefile.texi (Makefile): Mention stages 'profile'
2264         and 'feedback' for profiledbootstrap.
2265
2266 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
2267
2268         PR target/44245
2269         * config/i386/i386.c (def_builtin): Properly check
2270         OPTION_MASK_ISA_64BIT.
2271
2272 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
2273
2274         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
2275         typedefs with different but compatible types.  Allow duplicate
2276         typedefs with the same type except for pedantic non-C1X, but give
2277         warning for variably modified types.
2278         * c-typeck.c (tagged_types_tu_compatible_p,
2279         function_types_compatible_p, type_lists_compatible_p,
2280         comptypes_internal): Add parameter different_types_p; set
2281         *different_types_p for different but compatible types.  All
2282         callers changed.
2283         (comptypes_check_different_types): New.
2284         * c-tree.h (comptypes_check_different_types): Declare.
2285
2286 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
2287
2288         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
2289         * jump.c: Include basic-block.h.
2290         * profile.c: Likewise.
2291         * tree-profile.c: Likewise.
2292         * coverage.c: Likewise.
2293         * basic-block.h (optimize_function_for_size_p): Move to function.h.
2294         (optimize_function_for_speed_p): Likewise.
2295         * function.h (optimize_function_for_size_p,
2296         optimize_function_for_speed_p): Moved here from basic-block.h.
2297         * Makefile.in: Update dependencies.
2298
2299 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2300
2301         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
2302         before calling make; allow override through $MAKE.
2303         * doc/invoke.texi (Optimize Options): Document override.
2304
2305 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
2306
2307         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
2308         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2309         (rs6000_mode_dependent_address_ptr): Make static.
2310         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2311         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
2312         Remove.
2313
2314 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
2315
2316         PR target/43869
2317         * config/i386/i386.c: Make sure that the correct regparm is passed.
2318
2319 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
2320
2321         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
2322         * sbitmap.c: ...to here to internalize sbitmap element access.
2323         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
2324         Explain why basic-block.h is included.
2325         * function.h: Include tm.h for CUMULATIVE_ARGS.
2326         * Makefile.in: Update dependencies.
2327
2328 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
2329
2330         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
2331         New core types.
2332         * sbitmap.h (struct sbitmap_def): Do not typedef here.
2333         * sbitmap.c: Include sbitmap.h.
2334         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
2335         hard-reg-set.h.  Split everything related to regsets out from here...
2336         * regset.h: ...to here.  New file.
2337         * df.h: Include regset.h and sbitmap.h.
2338         * tree-flow.h: Likewise.
2339         * cfgloop.h: Likewise.
2340         * except.h: Do not include sbitmap.h.  Include hashtab.h.
2341         * cgraph.h: Include vec.h and function.h.
2342         * reload.h (struct insn_chain): Change types of live_throughout
2343         and dead_or_set from regset_head to bitmap_head.
2344         (compute_use_by_pseudos): Be defined also if regset.h is not included.
2345         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
2346         spilled_regs from regset_head to bitmap_head to avoid dependency
2347         in regset.h.
2348         * sel-sched-ir.h: Include regset.h.
2349         * reload.c: Include df.h before reload.h.
2350         * caller-save.c: Likewise.
2351         * reload1.c: Likewise.
2352         * ira.c: Likewise.
2353         (mark_elimination): Update type of r to bitmap, consistent with
2354         DF_LR_IN.
2355         * dominance.c: Include bitmap.h.
2356         * modulo-sched.c: Include df.h.
2357         * cfganal.c: Include bitmap.h and sbitmap.h.
2358         * cfgbuild.c: Include sbitmap.h.
2359         * lcm.c: Include sbitmap.h.
2360         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
2361         * domwalk.c: Include sbitmap.h, exclude ggc.h.
2362         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
2363         * cselib.c: Include bitmap.h.
2364         * tree-optimize.c: Include regset.h.
2365         * stmt.c: Include bitmap.h.
2366         * Makefile.in: Update dependencies.
2367
2368 2010-05-22  Jan Hubicka  <jh@suse.cz>
2369
2370         * cgraph.h (struct varpool_node): Add same_comdat_group.
2371         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
2372         pointer.
2373         (output_varpool): Update call of lto_output_varpool_node.
2374         (input_varpool): Read same_comdat_group pointer.
2375         (input_varpool_1): Fixup same_comdat_group pointer.
2376         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
2377         group is needed, all are.
2378         * varpool.c (varpool_remove_node): Remove node from same comdat group
2379         linklist too.
2380         (varpool_analyze_pending_decls): Walk same comdat groups.
2381
2382 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
2383
2384         * rtl.h (union rtunion_def): Remove rt_bit member.
2385         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
2386         * print-rtl (print_rtx): Do not print the member.
2387         * gengtype.c (adjust_field_rtx_def): Do not handle it.
2388         * gengenrtl.c (type_from_format): Likewise.
2389         (accessor_from_format): Likewise.
2390
2391 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
2392
2393         * dbgcnt.c: Include toplev.h instead of errors.h.
2394         * ira-emit.c: Don't include errors.h.
2395         * ira.c: Include toplev.h instead of errors.h.
2396         * lto-compress.c: Include toplev.h instead of errors.h.
2397         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
2398         ira.o, dbgcnt.o): Update dependencies.
2399
2400 2010-05-22  Richard Guenther  <rguenther@suse.de>
2401
2402         * gimple.c (gimple_types_compatible_p): Check type qualifications
2403         before merging pointer to complete and pointer to incomplete type.
2404         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
2405         we use our own resolution algorithm.  The gold linker plugin
2406         doesn't do the job we want it to do here.
2407
2408 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
2409
2410         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2411         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2412         (sparc_mode_dependent_address_p): New function.
2413
2414 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2415
2416         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
2417
2418         * timevar.c: Do not include any core headers.
2419         (timevar_print): De-i18n-ize.
2420         (print_time): Likewise.
2421         * timevar.h (timevar_push, timevar_pop): Make inline functions.
2422
2423 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
2424
2425         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
2426         langhooks-def.h.
2427         (diagnostic_initialize): Initialize x_data not last_function.
2428         (diagnostic_report_current_function): Move to tree-diagnostic.c.
2429         (default_diagnostic_starter): Call
2430         diagnostic_report_current_module not
2431         diagnostic_report_current_function.
2432         (diagnostic_report_diagnostic): Initialize x_data not
2433         abstract_origin.
2434         (verbatim): Likewise.
2435         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
2436         x_data.
2437         (struct diagnostic_context): Change last_function to x_data.
2438         (diagnostic_auxiliary_data): Replace with
2439         diagnostic_context_auxiliary_data and
2440         diagnostic_info_auxiliary_data.
2441         (diagnostic_last_function_changed, diagnostic_set_last_function,
2442         diagnostic_report_current_function): Move to tree-diagnostic.h.
2443         (print_declaration, dump_generic_node, print_generic_stmt,
2444         print_generic_stmt_indented, print_generic_expr,
2445         print_generic_decl, debug_c_tree, dump_omp_clauses,
2446         print_call_name, debug_generic_expr, debug_generic_stmt,
2447         debug_tree_chain, default_tree_printer): Move to
2448         tree-pretty-print.h.
2449         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
2450         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
2451         gimple-pretty-print.h.
2452         * pretty-print.c: Don't include tree.h
2453         (pp_base_format): Don't handle %K here.
2454         (pp_base_tree_identifier): Move to tree-pretty-print.c.
2455         * pretty-print.h (text_info): Change abstract_origin to x_data.
2456         (pp_tree_identifier, pp_unsupported_tree,
2457         pp_base_tree_identifier): Move to tree-pretty-print.h.
2458         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
2459         tree-pretty-print.h: New files.
2460         * tree-pretty-print.c: Include tree-pretty-print.h.
2461         (percent_K_format): New.  Moved from pretty-print.c.
2462         (pp_base_tree_identifier): Move from pretty-print.c.
2463         * c-objc-common.c: Include tree-pretty-print.h.
2464         (c_tree_printer): Handle %K here.
2465         * langhooks.c: Include tree-diagnostic.h.
2466         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
2467         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
2468         (default_tree_printer): Handle %K using percent_K_format.
2469         (general_init): Use default_tree_diagnostic_starter.
2470         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
2471         (free_lang_data): Use default_tree_diagnostic_starter.
2472         * c-pretty-print.c: Include tree-pretty-print.h.
2473         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2474         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2475         * dwarf2out.c: Include tree-pretty-print.h.
2476         * except.c: Include tree-pretty-print.h.
2477         * gimple-pretty-print.c: Include tree-pretty-print.h and
2478         gimple-pretty-print.h.
2479         * gimplify.c: Include tree-pretty-print.h.
2480         * graphite-poly.c: Include tree-pretty-print.h and
2481         gimple-pretty-print.h.
2482         * ipa-cp.c: Include tree-pretty-print.h.
2483         * ipa-inline.c: Include gimple-pretty-print.h.
2484         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2485         * ipa-pure-const.c: Include gimple-pretty-print.h.
2486         * ipa-struct-reorg.c: Include tree-pretty-print.h and
2487         gimple-pretty-print.h.
2488         * ipa-type-escape.c: Include tree-pretty-print.h.
2489         * print-rtl.c: Include tree-pretty-print.h.
2490         * print-tree.c: Include gimple-pretty-print.h.
2491         * sese.c: Include tree-pretty-print.h.
2492         * tree-affine.c: Include tree-pretty-print.h.
2493         * tree-browser.c: Include tree-pretty-print.h.
2494         * tree-call-cdce.c: Include gimple-pretty-print.h.
2495         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
2496         * tree-chrec.c: Include tree-pretty-print.h.
2497         * tree-data-ref.c: Include tree-pretty-print.h and
2498         gimple-pretty-print.h.
2499         * tree-dfa.c: Include tree-pretty-print.h.
2500         * tree-if-conv.c: Include tree-pretty-print.h and
2501         gimple-pretty-print.h.
2502         * tree-inline.c: Include tree-pretty-print.h.
2503         * tree-into-ssa.c: Include tree-pretty-print.h and
2504         gimple-pretty-print.h.
2505         * tree-nrv.c: Include tree-pretty-print.h.
2506         * tree-object-size.c: Include tree-pretty-print.h and
2507         gimple-pretty-print.h.
2508         * tree-outof-ssa.c: Include tree-pretty-print.h and
2509         gimple-pretty-print.h.
2510         * tree-parloops.c: Include tree-pretty-print.h and
2511         gimple-pretty-print.h.
2512         * tree-predcom.c: Include tree-pretty-print.h and
2513         gimple-pretty-print.h.
2514         * tree-scalar-evolution.c: Include tree-pretty-print.h and
2515         gimple-pretty-print.h.
2516         * tree-sra.c: Include tree-pretty-print.h.
2517         * tree-ssa-address.c: Include tree-pretty-print.h.
2518         * tree-ssa-alias.c: Include tree-pretty-print.h.
2519         * tree-ssa-ccp.c: Include tree-pretty-print.h and
2520         gimple-pretty-print.h.
2521         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
2522         * tree-ssa-copy.c: Include tree-pretty-print.h and
2523         gimple-pretty-print.h.
2524         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
2525         * tree-ssa-dce.c: Include tree-pretty-print.h and
2526         gimple-pretty-print.h.
2527         * tree-ssa-dom.c: Include tree-pretty-print.h and
2528         gimple-pretty-print.h.
2529         * tree-ssa-dse.c: Include gimple-pretty-print.h.
2530         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
2531         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
2532         * tree-ssa-live.c: Include tree-pretty-print.h and
2533         gimple-pretty-print.h.
2534         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
2535         gimple-pretty-print.h.
2536         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
2537         gimple-pretty-print.h.
2538         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
2539         gimple-pretty-print.h.
2540         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
2541         gimple-pretty-print.h.
2542         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
2543         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
2544         * tree-ssa-operands.c: Include tree-pretty-print.h and
2545         gimple-pretty-print.h.
2546         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
2547         gimple-pretty-print.h.
2548         * tree-ssa-pre.c: Include tree-pretty-print.h and
2549         gimple-pretty-print.h.
2550         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
2551         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
2552         gimple-pretty-print.h.
2553         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
2554         gimple-pretty-print.h.
2555         * tree-ssa-sink.c: Include gimple-pretty-print.h.
2556         * tree-ssa-ter.c: Include tree-pretty-print.h and
2557         gimple-pretty-print.h.
2558         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
2559         * tree-ssa.c: Include tree-pretty-print.h and
2560         gimple-pretty-print.h.
2561         * tree-stdarg.c: Include gimple-pretty-print.h.
2562         * tree-switch-conversion.c: Include gimple-pretty-print.h.
2563         * tree-tailcall.c: Include tree-pretty-print.h and
2564         gimple-pretty-print.h.
2565         * tree-vect-data-refs.c: Include tree-pretty-print.h and
2566         gimple-pretty-print.h.
2567         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
2568         gimple-pretty-print.h.
2569         * tree-vect-loop.c: Include tree-pretty-print.h and
2570         gimple-pretty-print.h.
2571         * tree-vect-patterns.c: Include gimple-pretty-print.h.
2572         * tree-vect-slp.c: Include tree-pretty-print.h and
2573         gimple-pretty-print.h.
2574         * tree-vect-stmts.c: Include tree-pretty-print.h and
2575         gimple-pretty-print.h.
2576         * tree-vectorizer.c: Include tree-pretty-print.h.
2577         * tree-vrp.c: Include tree-pretty-print.h and
2578         gimple-pretty-print.h.
2579         * value-prof.c: Include tree-pretty-print.h and
2580         gimple-pretty-print.h.
2581         * var-tracking.c: Include tree-pretty-print.h.
2582         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
2583         (tree-diagnostic.o): New dependencies.
2584         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
2585         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
2586         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
2587         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
2588         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
2589         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
2590         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2591         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
2592         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
2593         tree-ssa-address.o, tree-ssa-loop-niter.o,
2594         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
2595         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
2596         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
2597         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
2598         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
2599         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
2600         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
2601         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
2602         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
2603         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
2604         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
2605         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
2606         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
2607         tree-switch-conversion.o, var-tracking.o, value-prof.o,
2608         cfgexpand.o, pretty-print.o): Update dependencies.
2609
2610 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
2611
2612         * tree-ssa-structalias.c: Remove tm_p.h from include.
2613
2614 2010-05-21  Jeff Law  <law@redhat.com>
2615
2616         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
2617
2618 2010-05-21  Jason Merrill  <jason@redhat.com>
2619
2620         * tree-eh.c (cleanup_is_dead_in): New.
2621         (lower_try_finally): Don't generate a dead cleanup region.
2622         (lower_cleanup): Likewise.
2623
2624 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
2625
2626         PR debug/44223
2627         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
2628         unchain each use from the cyclic next_regno_use chain first.
2629
2630 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2631
2632         * real: Do not include gmp.h, mpfr.h, and mpc.h.
2633         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
2634         (real_value_negate, real_value_abs): New prototypes.
2635         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
2636         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
2637         new include file for interface between MPFR and REAL_VALUE_TYPE.
2638         * real.c: Include realmpfr.h.
2639         (real_arithmetic2): Remove legacy function.
2640         (real_value_negate): New.
2641         (real_value_abs): New.
2642         (mfpr_from_real, real_from_mpfr): Move from here...
2643         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
2644         * builtins.c: Include realmpfr.h.
2645         * fold-const.c: Include realmpfr.h.
2646         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
2647         (fold_negate_const): Likewise.
2648         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
2649         * toplev.c: Include realmpfr.h.
2650         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
2651         and real_value_negate.
2652         * fixed-value.c (check_real_for_fixed_mode): Likewise.
2653         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
2654         (vfp3_const_double_index): Likewise.
2655         (arm_print_operand): Likewise.
2656         * Makefile.in: Update dependencies.
2657
2658 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2659
2660         * config/s390/s390.c (override_options): Increase the default
2661         of max-completely-peel-times.
2662
2663 2010-05-21  Julian Brown  <julian@codesourcery.com>
2664             Mark Mitchell  <mark@codesourcery.com>
2665
2666         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
2667         sibling calls for Thumb-1.
2668         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
2669         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
2670         Thumb-2.
2671         (*call_insn, *call_value_insn): Don't use for Thumb-2.
2672         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
2673         for Thumb-2.
2674         (return): New expander.
2675         (*arm_return): New name for ARM return insn.
2676         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
2677
2678 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
2679
2680         * config.gcc (sparc64-*-rtems*): New target.
2681
2682 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
2683
2684         * tree.c (build_function_decl_skip_args): Fix grammar.
2685         (build_function_type_list_1): Fix typos, adjust formatting.
2686
2687 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
2688
2689         * tree.h: Include real.h and fixed-value.h as basic datatypes.
2690         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
2691         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
2692         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
2693         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
2694         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
2695         tree-pretty-print.c, tree-loop-distribution.c,
2696         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
2697         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
2698         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
2699         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
2700         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
2701         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
2702         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
2703         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
2704         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
2705         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
2706         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
2707         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
2708         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
2709         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
2710         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
2711         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
2712         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
2713         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
2714         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
2715         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
2716         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
2717         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
2718         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
2719         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
2720         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
2721         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
2722         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
2723         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
2724         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
2725         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
2726         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
2727         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
2728         config/score/score7.c, config/score/score.c, config/arm/arm.c,
2729         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
2730         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
2731         config/bfin/bfin.c: Clean up redundant includes.
2732         * Makefile.in: Update accordingly.
2733
2734 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
2735
2736         PR middle-end/44204
2737         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
2738         statement has no arguments.
2739
2740 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
2741
2742         PR/44139
2743         * varasm.c (emutls_decl): Merge attributes to new decl.
2744
2745 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2746
2747         PR middle-end/44101
2748         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
2749         around the uniquized constructor if its type requires a conversion.
2750
2751 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
2752
2753         PR debug/44205
2754         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
2755         at -O0 goto_locus of any of the incoming edges differs from
2756         goto_locus of outgoing edge, or gimple_location of any of the
2757         labels differs.
2758
2759 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
2760
2761         * ira.c (ira_non_ordered_class_hard_regs): Define.
2762         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
2763         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
2764         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
2765         cost of unaligned hard regs when allocating multi-reg pseudos.
2766
2767 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
2768
2769         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
2770         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
2771         for TARGET_NO_FLOAT.
2772         * config/mips/mips.c (mips_file_start): Expand conditional expression
2773         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
2774         (mips_override_options): Move -mno-float override -msoft-float and
2775         -mhard-float.
2776         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
2777         Condition(TARGET_SUPPORTS_NO_FLOAT).
2778         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
2779         __mips_no_float here.
2780         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
2781         (TARGET_SUPPORTS_NO_FLOAT): Define.
2782         * config/mips/sdemtk.opt: Delete.
2783
2784 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
2785
2786         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
2787
2788 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
2789
2790         PR target/43733
2791         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
2792         * configure: Regenerate.
2793         * config.in: Regenerate.
2794         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
2795         instead of sahf only for 64bit targets.
2796
2797 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
2798
2799         PR debug/44178
2800         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
2801         setup_ref_regs for DEBUG_INSNs.
2802
2803 2010-05-20  Jan Hubicka  <jh@suse.cz>
2804
2805         PR middle-end/44197
2806         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
2807
2808 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
2809
2810         PR bootstrap/43870
2811         * df-scan.c (df_ref_compare): Stabilize sort.
2812
2813 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
2814
2815         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
2816         argument.  Don't use DW_OP_piece if offset is non-zero,
2817         put offset into second DW_OP_bit_piece argument.
2818         (dw_sra_loc_expr): Adjust callers.  For memory expressions
2819         compute offset.
2820
2821 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
2822
2823         PR target/44202
2824         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
2825         settings for 16-bit-constant "addo" alternative.
2826
2827 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
2828
2829         * config/mips/mips-dsp.md (add<DSPV:mode>3,
2830         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
2831
2832         PR target/43764
2833         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
2834         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
2835         Use it.
2836
2837 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
2838
2839         * diagnostic.c (FLOAT, FFS): Don't undefine.
2840         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
2841         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
2842         include ordering.
2843
2844 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
2845
2846         * combine.c (propagate_for_debug): Call make_compound_operation
2847         on the source value.
2848         (try_combine): When implementing a split chosen by find_split_point,
2849         either copy i2src or set it to null.  Assert that i2src is not null
2850         before substituting into CALL_INSN_FUNCTION_USAGE.
2851
2852 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
2853
2854         * double-int.h (double_int_ior): New function.
2855         * tree.h (build_int_cst_wide_type): Remove.
2856         * tree.c (build_int_cst_wide_type): Remove.
2857         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
2858         of build_int_cst_wide_type.
2859         * stor-layout.c (set_sizetype): (Ditto.).
2860         * dojump.c (do_jump): Use build_int_cstu instead of
2861         build_int_cst_wide_type.
2862
2863 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2864
2865         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
2866         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
2867         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
2868         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
2869         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
2870         propagate the 'data' argument to copy_tree_r.
2871         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
2872         Propagate 'data' argument to walk_tree.
2873         (copy_if_shared): New function.
2874         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
2875         (unmark_visited): New function.
2876         (unshare_body): Call copy_if_shared instead of doing it manually.
2877         (unvisit_body): Call unmark_visited instead of doing it manually.
2878
2879 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
2880
2881         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
2882         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
2883         * hooks.c: Likewise.
2884         * target-def.h (TARGET_FOLD_BUILTIN): Define to
2885         hook_tree_tree_int_treep_bool_null.
2886         * target.h (struct gcc_target): Update signature of fold_builtin
2887         field.
2888         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
2889         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
2890         instead of the call expression.
2891         (fold_builtin_call_array): Pass n and argarray directly.
2892         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
2893         consing a list.
2894         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
2895         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
2896         `i' and use it in place of `arity'.
2897         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
2898         Dereference `args' directly.
2899         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
2900
2901 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2902
2903         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2904         3dnow, sse3, sse2.
2905         (Directives): Document optional dg-require-effective-target
2906         selector.
2907
2908 2010-05-19  Richard Guenther  <rguenther@suse.de>
2909
2910         PR lto/44196
2911         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
2912
2913 2010-05-19  Richard Guenther  <rguenther@suse.de>
2914
2915         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
2916         * common.opt (fwhopr=): New.
2917         * opts.c (common_handle_option): Handle OPT_fwhopr.
2918         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
2919         * collect2.c (main): Match -fwhopr*.
2920         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
2921         Execute ltrans stage in parallel when jobs is bigger than 1.
2922
2923 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2924
2925         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
2926         pentiumpro on Solaris 8/x86 with Sun as.
2927         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
2928         hidden alias bug.
2929         (gcc_cv_as_ix86_quad): Check for .quad directive.
2930         * configure: Regenerate.
2931         * config.in: Regenerate.
2932         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
2933
2934 2010-05-19  Martin Jambor  <mjambor@suse.cz>
2935
2936         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
2937         also for indirect edges.  Actual printing moved...
2938         (ipa_print_node_jump_functions_for_edge): ...here.
2939         (ipa_compute_jump_functions): Renamed to
2940         ipa_compute_jump_functions_for_edge and made static.
2941         (ipa_compute_jump_functions): New function.
2942         (make_edge_direct_to_target): Check if the number of arguments on
2943         the newly direct edge is the same as the number of parametrs of
2944         the callee.
2945         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
2946         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
2947         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
2948         analysis functions unconditionally, call the new
2949         ipa_analyze_params_uses on the node instead of every edge.
2950
2951 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
2952
2953         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
2954         to tree.
2955         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
2956         also checks for a constant int vs.  non-constant but
2957         loop-invariant steps.
2958         (find_or_create_group): Change the sort algorithm to only consider
2959         steps that are constant ints.
2960         (idx_analyze_ref): Adopt code to handle a tree instead of a
2961         HOST_WIDE_INT for step.
2962         (gather_memory_references_ref): Handle tree instead of int and be
2963         prepared to see a NULL_TREE.
2964         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
2965         prefetches if the step cannot be calculated at compile time.
2966         (issue_prefetch_ref): Issue prefetches for non-constant but
2967         loop-invariant steps.
2968
2969 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2970
2971         Revert:
2972         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2973
2974         * tree.h (build_call_list): Remove.
2975         * tree.c (build_call_list): Remove.
2976
2977 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
2978
2979         * tree.h (build_call_list): Remove.
2980         * tree.c (build_call_list): Remove.
2981
2982 2010-05-18  Jan Hubicka  <jh@suse.cz>
2983
2984         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
2985
2986 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
2987
2988         PR rtl-optimization/43332
2989         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
2990
2991 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
2992
2993         * tree.h (build_int_cstu): Implement as static inline.
2994         * tree.c (build_int_cstu): Remove function.
2995         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
2996         sign extended.
2997
2998 2010-05-18  Richard Guenther  <rguenther@suse.de>
2999
3000         PR lto/44143
3001         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
3002         (debug): Initialize from -save-temps.
3003         (collect_execute): Print command-line when verbose.
3004         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
3005         for ltrans invocation.  Produce -dumpbase flag again.
3006         (process_args): Remove.
3007         (main): Simplify.
3008         * collect2.c (maybe_run_lto_and_relink): Only pass object
3009         files to lto-wrapper.
3010         * gcc.c (LINK_COMMAND_SPEC): Likewise.
3011
3012 2010-05-18  Jan Hubicka  <jh@suse.cz>
3013
3014         * opts.c (decode_options): Do not disable whopr at ipa_cp.
3015         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
3016
3017 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3018
3019         PR lto/44184
3020         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
3021         in a GIMPLE_ASM.
3022         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
3023         in a GIMPLE_ASM.
3024
3025 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
3026
3027         PR debug/41371
3028         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
3029         rtx_equal_p inline.
3030
3031 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3032
3033         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
3034         lto-macho as lto_binary_reader.
3035
3036         * darwin.c (darwin_asm_named_section): Do not add assembler comment
3037         after .section directive; just print it before the directive instead.
3038
3039 2010-05-17  Jan Hubicka  <jh@suse.cz>
3040
3041         * cgraph.c (cgraph_create_virtual_clone): Only check
3042         versionable_function_p when not in wpa and checking is enabled.
3043         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
3044         there are no more functions to materialize.
3045
3046 2010-05-17  Jan Hubicka  <jh@suse.cz>
3047
3048         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
3049         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
3050         New functions.
3051         (output_cgraph): Call output_cgraph_opt_summary.
3052         (input_cgrpah): Call input_cgraph_opt_summary.
3053         (output_cgraph_opt_summary_p, output_node_opt_summary,
3054         input_node_opt_summary, input_cgraph_opt_section): New functions.
3055         * lto-section-in.c (lto_section_name): Add cgraphopt.
3056         * tree-inline.c (tree_function_versioning): Handle parm_num.
3057         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
3058         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
3059
3060 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3061
3062         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
3063         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
3064         the insn to prefetch ratio heuristic to loops with known trip count.
3065
3066 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3067
3068         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
3069         (schedule_prefetches): Do not generate a prefetch if the unroll factor
3070         is far from what is required by the prefetch.
3071
3072 2010-05-17  Jan Hubicka  <jh@suse.cz>
3073
3074         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
3075         (ipcp_estimate_growth): Likewise.
3076         (ipcp_const_param_count): Likewise.
3077         (ipcp_insert_stage): Likewise.
3078         * ipa-prop.c (visit_load_for_mod_analysis): New function.
3079         (visit_store_addr_for_mod_analysis): Set used flag.
3080         (ipa_detect_param_modifications): Set used flag for SSE params;
3081         update use of walk_stmt_load_store_addr_ops.
3082         (ipa_print_node_params): Print used flag.
3083         (ipa_write_node_info): Stream used flag.
3084         (ipa_read_node_info): Likewise.
3085         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
3086         (ipa_is_param_used): New function.
3087         (lto_ipa_fixup_call_notes): Remove unused declaration.
3088
3089 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3090
3091         PR target/44074
3092         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
3093         * configure: Regenerate.
3094         * config.in: Regenerate.
3095         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
3096         !HAVE_AS_IX86_REP_LOCK_PREFIX.
3097         Don't emit whitespace.
3098         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
3099         (*rep_movsi): Likewise.
3100         (*rep_movsi_rex64): Likewise.
3101         (*rep_movqi): Likewise.
3102         (*rep_movqi_rex64): Likewise.
3103         (*rep_stosdi_rex64): Likewise.
3104         (*rep_stossi): Likewise.
3105         (*rep_stossi_rex64): Likewise.
3106         (*rep_stosqi): Likewise.
3107         (*rep_stosqi_rex64): Likewise.
3108         (*cmpstrnqi_nz_1): Use {%;} after repz.
3109         (*cmpstrnqi_nz_rex_1): Likewise.
3110         (*cmpstrnqi_1): Likewise.
3111         (*cmpstrnqi_rex_1): Likewise.
3112         (*strlenqi_1): Use {%;} after repnz.
3113         (*strlenqi_rex_1): Likewise.
3114         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
3115         (*sync_compare_and_swap<mode>): Likewise.
3116         (sync_double_compare_and_swap<mode>): Likewise.
3117         (*sync_double_compare_and_swapdi_pic): Likewise.
3118         (sync_old_add<mode>): Likewise.
3119         (sync_add<mode>): Likewise.
3120         (sync_sub<mode>): Likewise.
3121         (sync_<code><mode>): Likewise.
3122
3123 2010-05-17  Martin Jambor  <mjambor@suse.cz>
3124
3125         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
3126         otr_token and polymorphic.
3127         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
3128         (cgraph_clone_edge): Copy the above fields.
3129         * tree.c (get_binfo_at_offset): New function.
3130         * tree.h (get_binfo_at_offset): Declare.
3131         * ipa-prop.h (enum jump_func_type): Added known_type jump function
3132         type, reordered items, updated comments.
3133         (union jump_func_value): Added base_type field, reordered fields.
3134         (enum ipa_lattice_type): Moved down in the file.
3135         (struct ipa_param_descriptor): New field polymorphic.
3136         (ipa_is_param_polymorphic): New function.
3137         * ipa-prop.c: Include gimple.h and gimple-fold.h.
3138         (ipa_print_node_jump_functions): Print known type jump functions.
3139         (compute_complex_pass_through): Renamed to...
3140         (compute_complex_assign_jump_func): this.
3141         (compute_complex_ancestor_jump_func): New function.
3142         (compute_known_type_jump_func): Likewise.
3143         (compute_scalar_jump_functions): Create known type and complex ancestor
3144         jump functions.
3145         (ipa_note_param_call): New parameter polymorphic, set the corresponding
3146         flag in the call note accordingly.
3147         (ipa_analyze_call_uses): Renamed to...
3148         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
3149         variable var only in the block where it is used.
3150         (ipa_analyze_virtual_call_uses): New function.
3151         (ipa_analyze_call_uses): Likewise.
3152         (combine_known_type_and_ancestor_jfs): Likewise.
3153         (update_jump_functions_after_inlining): Implemented handling of a
3154         number of new jump function types combination.
3155         (print_edge_addition_message): Removed.
3156         (make_edge_direct_to_target): New function.
3157         (try_make_edge_direct_simple_call): Likewise.
3158         (try_make_edge_direct_virtual_call): Likewise.
3159         (update_call_notes_after_inlining): Renamed to...
3160         (update_indirect_edges_after_inlining): this.  Moved edge creation for
3161         indirect calls to try_make_edge_direct_simple_call, also calls
3162         try_make_edge_direct_virtual_call for virtual calls.
3163         (ipa_print_node_params): Changed the header message.
3164         (ipa_write_jump_function): Stream also known type jump functions.
3165         (ipa_read_jump_function): Likewise.
3166         (ipa_write_indirect_edge_info): Stream new fields in
3167         cgraph_indirect_call_info.
3168         (ipa_read_indirect_edge_info): Likewise.
3169         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
3170         GIMPLE_FOLD_H.
3171
3172 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3173
3174         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
3175
3176 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3177
3178         * tree.h (CALL_EXPR_ARGS): Delete.
3179         (call_expr_arglist): Delete.
3180         * tree.c (call_expr_arglist): Delete.
3181         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
3182         targetm.fold_builtin.
3183         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
3184         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
3185         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
3186         arglist parameter.  Use CALL_EXPR_ARG.
3187         (picochip_expand_builtin_3op): Likewise.
3188         (picochip_expand_builtin_2opvoid): Likewise.
3189         (picochip_expand_array_get): Likewise.
3190         (picochip_expand_array_put): Likewise.
3191         (picochip_expand_array_testport): Likewise.
3192         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
3193         rather than arglist.
3194         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
3195         CALL_EXPR_ARGS.
3196         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
3197         than TREE_VALUE and TREE_CHAIN.
3198         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
3199         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
3200         the arglist.
3201
3202 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
3203
3204         PR bootstrap/42347
3205         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
3206         to have no fallthru edge.
3207
3208         PR middle-end/44102
3209         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
3210         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
3211         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
3212         add BARRIER after previous bb if needed.
3213
3214 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3215
3216         * tree.c (build_function_type_list_1): Remove bogus assert condition.
3217
3218 2010-05-17  Alan Modra  <amodra@gmail.com>
3219
3220         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
3221         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
3222         with copy_reg rtx param.
3223         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
3224         Correct cases where code for ABI_V4 did not initialise the reg
3225         used to access frame.  Also leave frame_reg_rtx as sp for large
3226         frames that save no regs.
3227
3228 2010-05-17  Martin Jambor  <mjambor@suse.cz>
3229
3230         PR middle-end/44133
3231         * tree-sra.c (create_access_replacement): New parameter rename, mark
3232         the replaement for renaming only when it is true.
3233         (get_access_replacement): Pass true in the rename parameter of
3234         create_access_replacement.
3235         (get_unrenamed_access_replacement): New function.
3236         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
3237         replacement declaration from it.
3238
3239 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
3240
3241         * function.c (try_fit_stack_local, add_frame_space): New static
3242         functions.
3243         (assign_stack_local_1): Use them.  Look for opportunities to use
3244         space previously wasted on alignment.
3245         * function.h (struct frame_space): New.
3246         (struct rtl_data): Add FRAME_SPACE_LIST member.
3247         * reload1.c (something_was_spilled): New static variable.
3248         (alter_reg): Set it.
3249         (reload): Test it in addition to testing if the frame size changed.
3250
3251 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
3252
3253         * config/s390/s390.c: Define sane prefetch settings and activate
3254         flag_prefetch_loop_arrays on -O3.
3255         * config/s390/s390.h: Declare that read can use write prefetch.
3256
3257 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
3258
3259         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
3260         build.
3261
3262 2010-05-16  Jan Hubicka  <jh@suse.cz>
3263
3264         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
3265         function body; do not check stdarg field of struct function.
3266
3267 2010-05-16  Jan Hubicka  <jh@suse.cz>
3268
3269         * cgraph.c (dump_cgraph_node): Dump versionable flag.
3270         * cgraph.h (cgraph_local_info): Add versionable flag.
3271         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
3272         (ipcp_versionable_function_p): Use it.
3273         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
3274         versionable flag.
3275
3276 2010-05-16  Jan Hubicka  <jh@suse.cz>
3277
3278         * cgraph.c (cgraph_clone_node): Take decl argument and insert
3279         clone into hash when it is different from orig.
3280         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
3281         * cgraph.h (cgraph_clone_node): Update prototype.
3282         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
3283         (lto_cgraph_encoder_delete): Delete body map.
3284         (lto_cgraph_encoder_size): Move to header.
3285         (lto_cgraph_encoder_encode_body_p,
3286         lto_set_cgraph_encoder_encode_body): New.
3287         (lto_output_node): Do not take written_decls argument; output clone_of
3288         pointer.
3289         (add_node_to): Add include_body_argument; call
3290         lto_set_cgraph_encoder_encode_body on master of the clone.
3291         (add_references): Update use of add_node_to.
3292         (compute_ltrans_boundary): Likewise.
3293         (output_cgraph): Do not create written_decls bitmap.
3294         (input_node): Take nodes argument; stream in clone_of correctly.
3295         (input_cgraph_1): Update use of input_node.
3296         * lto-streamer-out.c (lto_output): Use encoder info to decide
3297         what bodies to output.
3298         * ipa-inline.c (cgraph_clone_inlined_nodes,
3299         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
3300         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
3301         (lto_cgraph_encoder_size): Define here.
3302         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
3303         Declare.
3304
3305 2010-05-16  Richard Guenther  <rguenther@suse.de>
3306
3307         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
3308         -fipa-type-escape.
3309         * ipa-type-escape.c (gate_type_escape_vars): Run when
3310         -fipa-struct-reorg runs.
3311         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
3312         * common.opt (fipa-type-escape): Remove.
3313
3314 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3315
3316         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
3317         (decode_options): Likewise.
3318         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
3319
3320 2010-05-16  Jan Hubicka  <jh@suse.cz>
3321
3322         * ipa.c (function_and_variable_visibility): Also bring local all
3323         aliases.
3324
3325 2010-05-16  Richard Guenther  <rguenther@suse.de>
3326
3327         * alias.c (nonoverlapping_memrefs_p): Remove use of
3328         IPA type-escape information.
3329
3330 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
3331
3332         * c-common.c (c_common_reswords): Add _Static_assert for C.
3333         * c-parser.c (c_token_starts_declaration,
3334         c_parser_next_token_starts_declaration,
3335         c_parser_static_assert_declaration_no_semi,
3336         c_parser_static_assert_declaration): New.
3337         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
3338         Handle static assertions if static_assert_ok.
3339         (c_parser_external_declaration, c_parser_declaration_or_fndef,
3340         c_parser_compound_statement_nostart, c_parser_label,
3341         c_parser_for_statement, c_parser_objc_methodprotolist,
3342         c_parser_omp_for_loop): All callers of
3343         c_parser_declaration_or_fndef changed.
3344         (c_parser_struct_declaration): Handle static assertions.
3345         (c_parser_compound_statement_nostart): Use
3346         c_parser_next_token_starts_declaration and
3347         c_token_starts_declaration to detect start of declarations.
3348         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
3349         Likewise.
3350
3351 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
3352
3353         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3354         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3355         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3356         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3357         (mmix_function_outgoing_value): Rename to...
3358         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
3359         (mmix_function_value_regno_p): Make static.
3360         (mmix_libcall_value): New function.
3361         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
3362         mmix_function_value_regno_p): Remove declaration.
3363
3364 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
3365
3366         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
3367         BUILT_IN_ALLOCA if stack checking is enabled.
3368
3369 2010-05-16  Richard Guenther  <rguenther@suse.de>
3370
3371         * var-tracking.c (vars_copy_1): Inline ...
3372         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
3373         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
3374         (variable_merge_over_cur): Adjust.  Merge asserts.
3375         (variable_merge_over_src): Likewise.
3376         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
3377         (variable_post_merge_new_vals): Merge asserts.
3378         (variable_post_merge_perm_vals): Likewise.
3379         (find_mem_expr_in_1pdv): Likewise.
3380         (dataflow_set_different_value): Remove.
3381         (onepart_variable_different_p): Merge asserts.
3382         (variable_different_p): Likewise.
3383         (dataflow_set_different_1): Inline ...
3384         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
3385         (emit_notes_for_differences_1): Merge asserts.
3386
3387 2010-05-16  Richard Guenther  <rguenther@suse.de>
3388
3389         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
3390         * optabs.c (libfunc_decl_hash): Likewise.
3391         * varasm.c (emutls_decl): Likewise.
3392
3393 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
3394
3395         * c-decl.c: Don't include gimple.h.
3396         (merge_decls): Do not copy gimple_body.
3397
3398 2010-05-15  Jason Merrill  <jason@redhat.com>
3399
3400         * c.opt: Add -fnothrow-opt.
3401
3402 2010-05-15  Jan Hubicka  <jh@suse.cz>
3403
3404         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
3405         analyzed.
3406         * passes.c (ipa_write_summaries): Write all analyzed nodes.
3407
3408 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
3409
3410         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
3411         * Makefile.in: Add it.
3412         Fix all other Makefile dependencies for changes below.
3413         * tree.h: Include it instead of defining VEC primitives here.
3414         * gimple.h: Likewise.
3415         * rtl.h: Likewise.
3416         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
3417         * except.h: Include vecir.h, break dependence on tree.h.
3418
3419         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
3420         Move from here...
3421         * tree-iterator.c: ...to here.
3422         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
3423
3424         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
3425         tm_p.h.
3426         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
3427         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
3428         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
3429         tree-mudflap.h, and target.h.
3430         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
3431         predict.h, tree-inline.h, gimple.h, and langhooks.h.
3432         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
3433         Add FIXME for why gimple.h is still included (should be unnecessary
3434         since GCC 4.5 gimplification unit-at-a-time).
3435         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
3436         * c-pragma.c: Add FIXME for why function.h needs to be included just
3437         for cfun, at front-end level.
3438         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
3439         Do not include ggc.h, but include vecprim.h for VEC(char).
3440         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
3441         Explain why target.h is included.
3442         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
3443         Explain why gimple.h is included.
3444         * c-ppoutput.c: Do not include tm.h.
3445         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
3446         * c-parses.c: Explain why rtl.h is included, and that this (and only
3447         this) is also why tm.h must be included.
3448         Do not include except.h.
3449         * c-lang.c: Do not include ggc.h.
3450
3451 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
3452
3453         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
3454
3455 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
3456
3457         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
3458         unions by default if those structs and unions have no tags.  Do
3459         not condition anonymous struct and unions handling on flag_iso.
3460         Allow anonymous structs and unions for C1X.
3461         (finish_struct): Do not diagnose lack of named fields when
3462         anonymous structs and unions present for C1X.  Accept flexible
3463         array members in structure with anonymous structs or unions but no
3464         directly named fields.
3465         * doc/extend.texi (Unnamed Fields): Update.
3466
3467 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
3468
3469         * gimple.h (compare_field_offset): Rename into...
3470         (gimple_compare_field_offset): ...this.
3471         * gimple.c (compare_field_offset): Rename into...
3472         (gimple_compare_field_offset): ...this.  Compare the full access if
3473         the offset is self-referential.
3474         (gimple_types_compatible_p): Adjust for above renaming.
3475         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
3476         DECL_NONADDRESSABLE_P flag of fields before merging them.
3477
3478 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
3479
3480         * tree.h (ctor_to_list): Delete.
3481         * tree.c (ctor_to_list): Delete.
3482
3483 2010-05-15  Jan Hubicka  <jh@suse.cz>
3484
3485         * ipa-reference.c: Include toplev.h
3486         (is_proper_for_analysis): Only add to all_module_statics
3487         if it is allocated.
3488         (write_node_summary_p, stream_out_bitmap,
3489         ipa_reference_write_optimization_summary,
3490         ipa_reference_read_optimization_summary): New.
3491         (struct ipa_opt_pass_d pass_ipa_reference): Add
3492         optimization summary streaming.
3493         * lto-cgraph.c (referenced_from_this_partition_p,
3494         reachable_from_this_partition_p): New functions.
3495         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
3496         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
3497         * opts.c (decode_options): Enable ipa_reference.
3498         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
3499         * lto-streamer.h (referenced_from_this_partition_p,
3500         reachable_from_this_partition_p): Declare.
3501
3502 2010-05-15  Richard Guenther  <rguenther@suse.de>
3503
3504         PR tree-optimization/44038
3505         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
3506         taking the address of a V_C_E of a constant.
3507
3508 2010-05-14  Jan Hubicka  <jh@suse.cz>
3509
3510         * tree.h (memory_identifier_string): Remove.
3511         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
3512         (ipa_reference_global_vars_info_d): Remove statics_not_read and
3513         statics_not_written.
3514         (ipa_reference_optimization_summary_d): New structure.
3515         (ipa_reference_optimization_summary_t): New type and vector.
3516         (ipa_reference_vars_info_d): Embedd structures instead of using
3517         pointers.
3518         (reference_vars_to_consider): Remove out of GGC space.
3519         (module_statics_escape): Remove.
3520         (global_info_obstack): Rename to ...
3521         (optimization_summary_obstack): ... this one.
3522         (initialization_status_t): Remove.
3523         (memory_identifier_string): Remove.
3524         (get_reference_vars_info): Fix indenting.
3525         (set_reference_vars_info): Likewise.
3526         (get_reference_optimization_summary): New.
3527         (set_reference_optimization_summary): New.
3528         (get_global_reference_vars_info): Remove.
3529         (ipa_reference_get_read_global): Remove.
3530         (ipa_reference_get_written_global): Remove.
3531         (ipa_reference_get_not_read_global): Update.
3532         (ipa_reference_get_not_written_global): Update.
3533         (is_proper_for_analysis): Outlaw addressable.
3534         (propagate_bits): Update for new datastructures.
3535         (analyze_variable): Remove.
3536         (init_function_info): Update for new datastructures.
3537         (clean_function_local_data): Remove.
3538         (clean_function): Remove.
3539         (copy_global_bitmap): Use optimizations_summary_obstack.
3540         (duplicate_node_data): Duplicate optimization summary only.
3541         (remove_node_data): Remove optimization summary only.
3542         (generate_summary): Do not analyze variables; do not compute
3543         module_statics_escape; do not prune solutions by it.
3544         (read_write_all_from_decl): Fix typos in comments.
3545         (propagate): Doscover readonly and nonaddressable first;
3546         update for new datastructures; share global bitmaps.
3547         * ipa-reference.h (ipa_reference_get_read_global,
3548         ipa_reference_get_written_global): Remove.
3549         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
3550         * Makefile.in: Remove ipa-refereference from GT files.
3551
3552 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3553
3554         PR debug/44112
3555         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
3556         for all SYMBOL_REF_DECLs.
3557
3558 2010-05-14  Jan Hubicka  <jh@suse.cz>
3559
3560         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
3561         (varpool_all_refs_explicit_p): New inline function.
3562         * ipa-reference.c: Update comment.
3563         (module_statics_written): Remove.
3564         (get_static_decl): Remove.
3565         (ipa_init): Do not initialize module_statics_written.
3566         (analyze_function): Likewise.
3567         (generate_summary): Likewise; do not compute module_statics_readonly
3568         and do not update variable flags.
3569         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
3570         * ipa.c: Inlucde flags.h
3571         (cgraph_local_node_p): New.
3572         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
3573         promote functions to local.
3574         (ipa_discover_readonly_nonaddressable_vars): New function.
3575         (function_and_variable_visibility): Use cgraph_local_node_p.
3576         * varpool.c (varpool_finalize_decl): Set force_output for
3577         DECL_PRESERVE_P vars.
3578
3579 2010-05-14  Jan Hubicka  <jh@suse.cz>
3580
3581         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
3582
3583 2010-05-14  Richard Guenther  <rguenther@suse.de>
3584
3585         PR tree-optimization/44119
3586         * tree-ssa-pre.c (eliminate): Properly mark replacement of
3587         a PHI node necessary.
3588
3589 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
3590
3591         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
3592
3593 2010-05-14  Jason Merrill  <jason@redhat.com>
3594
3595         PR c++/44127
3596         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
3597         (gimple_call_set_nothrow): New.
3598         * gimple.c (gimple_build_call_from_tree): Call it.
3599         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
3600
3601         PR c++/44127
3602         * gimplify.c (gimplify_seq_add_stmt): No longer static.
3603         * gimple.h: Declare it.
3604         * gimple.c (gimple_build_eh_filter): No ops.
3605
3606 2010-05-14  Jan Hubicka  <jh@suse.cz>
3607
3608         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
3609         nodes already in queue.
3610         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
3611         re-enqueueing node.
3612
3613 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3614
3615         PR debug/44136
3616         * cfgexpand.c (expand_debug_expr): If non-memory op0
3617         has BLKmode, return NULL.
3618
3619 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
3620
3621         * config.gcc: Add support for --with-cpu option for bdver1.
3622         * config/i386/i386.h (TARGET_BDVER1): New macro.
3623         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
3624         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
3625         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
3626         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
3627         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
3628         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
3629         (processor_type): Add PROCESSOR_BDVER1.
3630         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
3631         processor_type in config/i386/i386.h.
3632         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
3633         movaps <reg, reg> instead of movapd <reg, reg> when replacing
3634         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
3635         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
3636         to emit packed xor instead of packed double/packed integer
3637         xor for SSE and AVX when moving a zero value.
3638         * config/i386/sse.md: Add check for
3639         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
3640         movapd/movdqa for SSE and AVX.
3641         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
3642         single logical operations i.e and, or and xor instead of packed double
3643         logical operations for SSE and AVX.
3644         * config/i386/i386-c.c (ix86_target_macros_internal):
3645         Add PROCESSOR_BDVER1.
3646         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
3647         (has_fma4, has_xop): New.
3648         * config/i386/i386.c (bdver1_cost): New variable.
3649         (m_BDVER1): New macro.
3650         (m_AMD_MULTIPLE): Add m_BDVER1.
3651         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
3652         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
3653         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
3654         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
3655         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
3656         x86_tune_sse_partial_reg_dependency,
3657         x86_tune_sse_unaligned_load_optimal,
3658         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
3659         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
3660         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
3661         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
3662         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
3663         Enable/disable for bdver1.
3664         (processor_target_table): Add bdver1_cost.
3665         (cpu_names): Add bdver1.
3666         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
3667          processor_alias_table.
3668         (ix86_expand_vector_move_misalign): Change.
3669         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
3670         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
3671         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
3672         of movupd/movdqu for SSE and AVX.
3673         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
3674         (ix86_tune_adjust_cost): Add code for bdver1.
3675         (standard_sse_constant_opcode): Add check for
3676         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
3677         of packed double xor for SSE and AVX.
3678
3679 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
3680
3681         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
3682         result to unsigned.
3683
3684 2010-05-14  Tristan Gingold  <gingold@adacore.com>
3685
3686         * toplev.c (default_debug_hooks): Remove this variable.
3687         (process_options): Remove assignments to default_debug_hooks.
3688
3689 2010-05-14  Martin Jambor  <mjambor@suse.cz>
3690
3691         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
3692         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
3693         * langhooks.h (struct lang_hooks_for_decls): Removed field
3694         fold_obj_type_ref.
3695         * tree.c (free_lang_data): Remove assignment to
3696         lang_hooks.fold_obj_type_ref.
3697         * tree.def (OBJ_TYPE_REF): Update comment.
3698
3699 2010-05-14  Richard Guenther  <rguenther@suse.de>
3700
3701         PR tree-optimization/44124
3702         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
3703
3704 2010-05-14  Alan Modra  <amodra@gmail.com>
3705
3706         PR target/44075
3707         * config/rs6000/rs6000.c (struct machine_function): Reorder
3708         fields for better packing.  Add lr_save_state.
3709         (rs6000_ra_ever_killed): Return lr_save_state if set.
3710         (rs6000_emit_eh_reg_restore): Set lr_save_state.
3711
3712 2010-05-13  Jan Hubicka  <jh@suse.cz>
3713
3714         * varpool.c (decide_is_variable_needed): Drop code checking
3715         TREE_SYMBOL_REFERENCED.
3716
3717 2010-05-13  Jan Hubicka  <jh@suse.cz>
3718
3719         * final.c (output_addr_const): Do not call mark_decl_referenced.
3720         * cgraphunit.c (process_function_and_variable_attributes): Use
3721         mark_needed_node dirrectly.
3722         (assemble_thunk): Do not call mark_decl_referenced.
3723
3724 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
3725
3726         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
3727
3728 2010-05-13  Jeff Law  <law@redhat.com>
3729
3730         * ira-conflicts.c (print_allocno_conflicts): New function broken out
3731         from...
3732         (print_conflicts): Call print_allocno_conflicts.
3733
3734 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3735
3736         PR debug/44104
3737         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
3738         if it is NULL.
3739
3740 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
3741
3742         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
3743         t-mingw-w64 or t-mingw-w32 for multilib configuration.
3744         * config/i386/t-mingw-w32: New.
3745         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
3746
3747 2010-05-13  Martin Jambor  <mjambor@suse.cz>
3748
3749         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
3750         gimple-fold.c).
3751         * gimple-fold.c (get_base_binfo_for_type): New function.
3752         (gimple_get_relevant_ref_binfo): Likewise.
3753         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3754         (gimple_fold_obj_type_ref): Likewise.
3755         (fold_gimple_call): Simplify condition for folding virtual calls
3756         and call gimple_fold_obj_type_ref.
3757         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
3758         (gimple_fold_obj_type_ref_known_binfo): Likewise.
3759
3760 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
3761
3762         * config/rs6000/rs6000-protos.h
3763         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
3764         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
3765         (rs6000_debug_mode_dependent_address)
3766         (rs6000_mode_dependent_address_ptr): Likewise.
3767
3768 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3769
3770         PR debug/43983
3771         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
3772         by SRA.
3773         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
3774         * tree-sra.c (create_access_replacement): Call unshare_expr before
3775         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
3776         * dwarf2out.c: Include tree-flow.h.
3777         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
3778         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
3779         Handle DW_OP_bit_piece.
3780         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
3781         construct_piece_list, adjust_piece_list): New functions.
3782         (add_var_loc_to_decl): Handle SRA optimized variables.
3783         Adjust for var_loc_note to loc field renaming.
3784         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
3785         in VAR_LOCATION note.
3786         (new_loc_descr_op_bit_piece): New function.
3787         (dw_sra_loc_expr): New function.
3788         (dw_loc_list): Use it.  Don't handle the last range after the
3789         loop, handle it inside of the loop.  Adjust for var_loc_note
3790         to loc field renaming.
3791         (add_location_or_const_value_attribute): Only special case
3792         single entry loc lists if loc is NOTE_P.  Adjust for
3793         var_loc_note to loc field renaming.
3794         (dwarf2out_var_location): Don't set newloc->var_loc_note
3795         and newloc->next here.
3796
3797 2010-05-12  Jan Hubicka  <jh@suse.cz>
3798
3799         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
3800         flag.
3801         * cgraph.h (cgraph_only_called_directly_p,
3802         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
3803         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
3804         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
3805         (assemble
3806         * ipa.c (cgraph_remove_unreachable_nodes): Use
3807         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
3808         flags.
3809         * tree-inline.c (copy_bb): Check address_taken flag.
3810         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
3811         externally_visible flag.
3812
3813 2010-05-12  Jason Merrill  <jason@redhat.com>
3814
3815         PR bootstrap/44048
3816         PR target/44099
3817         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
3818         * sdbout.c (plain_type_1): Likewise.
3819         * dwarf2out.c (is_base_type): Likewise.
3820         (gen_type_die_with_usage): Likewise.  Generate
3821         DW_TAG_unspecified_type for any LANG_TYPE.
3822
3823 2010-05-12  Jan Hubicka  <jh@suse.cz>
3824
3825         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
3826         indrect edges too.
3827         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
3828         (cgraph_clone_edge): Update.
3829         (cgraph_node_remove_callees): Remove indirect calls too.
3830         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
3831         (cgraph_create_indirect_edge): Update prototype.
3832         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
3833         is_proper_for_analysis.
3834         (add_new_function, visited_nodes, function_insertion_hook_holder,
3835         get_local_reference_vars_info, mark_address_taken, mark_address,
3836         mark_load, mark_store, check_asm_memory_clobber, check_call,
3837         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
3838         (ipa_init): Do not initialize visited_nodes;
3839         function_insertion_hook_holder.
3840         (analyze_variable): Rewrite.
3841         (analyze_function): Rewrite.
3842         (copy_local_bitmap): Remove.
3843         (duplicate_node_dat): Do not duplicate local info.
3844         (generate_summary): Simplify to only walk cgraph.
3845         (write_node_summary_p, ipa_reference_write_summary,
3846         ipa_reference_read_summary): Remove.
3847         (propagate): Do not remove function insertion;
3848         generate summary.
3849         (pass_ipa_reference): NULLify summary handling fields.
3850         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
3851         (input_edge): Input ecf_flags.
3852         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
3853         (update_indirect_edges_after_inlining): Ignore edges with unknown
3854         param.
3855
3856 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
3857
3858         * implicit-zee.c: New file.
3859         * tree-pass.h (pass_implicit_zee): Declare.
3860         * passes.c (init_optimization_passes): Add zee pass.
3861         * common.opt (fzee): New flag.
3862         * timevar.def (TV_ZEE): Define.
3863         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
3864         and beyond.
3865         * Makefile.in (implicit-zee.o): Add new build file.
3866
3867 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3868             Nathan Froyd  <froydnj@codesourcery.com>
3869
3870         * c-common.c (sync_resolve_params): Remove write-only variable.
3871
3872 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
3873
3874         * target.h (struct gcc_target): Add mode_dependent_address_p field.
3875         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
3876         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
3877         * targhooks.c (default_mode_dependent_address_p): New function.
3878         * targhooks.h (default_mode_dependent_address_p): Declare function.
3879         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
3880         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
3881         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
3882         target hook. Change return type to bool.
3883         * recog.h (mode_dependent_address_p): Change return type to bool.
3884
3885 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3886             Nathan Froyd  <froydnj@codesourcery.com>
3887
3888         * tree-mudflap.c (build_function_type_0, build_function_type_1,
3889         build_function_type_2, build_function_type_3): Remove.
3890         (mudflap_init): Use build_function_type_list.
3891
3892 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
3893             Nathan Froyd  <froydnj@codesourcery.com>
3894
3895         * coverage.c (build_fn_info_value): Call build_constructor instead of
3896         build_constructor_from_list.
3897         (build_ctr_info_value): Likewise.
3898         (build_gcov_info): Likewise.
3899
3900 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
3901
3902         * tree.c (build_constructor): Compute TREE_CONSTANT for the
3903         resultant constructor.
3904         (build_constructor_single): Don't set TREE_CONSTANT.
3905         (build_constructor_from_list): Don't compute TREE_CONSTANT.
3906
3907 2010-05-12  Jan Hubicka  <jh@suse.cz>
3908
3909         * cgraph.h (struct varpool_node): Add aux.
3910         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
3911         * varpool.c (varpool_remove_node): Do not remove initializer.
3912         (varpool_reset_queue): Export.
3913         (varpool_finalize_decl): Volatile vars are forced to be output.
3914         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
3915         replaced decl.
3916         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
3917         process_references, varpool_can_remove_if_no_refs): New functions.
3918         (cgraph_remove_unreachable_nodes): Handle variables too.
3919
3920 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3921
3922         PR target/44088
3923         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
3924
3925 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
3926
3927         PR middle-end/44085
3928         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
3929         change value of ORT_TASK.
3930         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
3931         (omp_notice_threadprivate_variable): New function.
3932         (omp_notice_variable): Call it for threadprivate variables.
3933         If enclosing ctx is a task, print enclosing task rather than
3934         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
3935         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
3936         if task has untied clause.
3937
3938         PR debug/42278
3939         * dwarf2out.c (base_type_die): Don't add name attribute here.
3940         (modified_type_die): Instead of sizetype use
3941         its underlying original type.  If a DW_TAG_base_type doesn't
3942         have name added, add __unknown__.
3943         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
3944         always call force_type_die instead.
3945
3946 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
3947
3948         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
3949         for __stack_chk_guard.
3950
3951 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
3952
3953         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
3954         don't call start_source_file debug hook here...
3955         (finish_options): ... but here, after outputting predefined and
3956         command line defines and undefs.
3957
3958         PR middle-end/44071
3959         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
3960         no fallthru edge.
3961         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
3962         optimizing away empty bb with no successors, move over its
3963         footer chain to fallthru predecessor.
3964         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
3965         (rtl_split_edge): For asm goto call patch_jump_insn even if
3966         splitting fallthru edge.
3967
3968         PR c++/44059
3969         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
3970         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
3971         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
3972         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
3973         on DW.ref.* decls.
3974
3975         PR c++/44062
3976         * c-parser.c (c_parser_expression): Mark LHS of a comma
3977         expression as read if it is a decl, handled component or
3978         COMPOUND_EXPR with that on the RHS.
3979         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
3980         if it is a decl or handled component.
3981
3982 2010-05-11  Jan Hubicka  <jh@suse.cz>
3983
3984         * lto-symtab.c (lto_symtab_free): New function.
3985         * lto-streamer.h (lto_symtab_free): Declare.
3986
3987 2010-05-11  Jan Hubicka  <jh@suse.cz>
3988
3989         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
3990         that if function is needed it is reachable.
3991         (lto_output_node): See if it the function is reachable or referenced.
3992         (output_cgraph): Update call of lto_output_node.
3993         * lto-streamer.h (reachable_from_other_partition_p): Declare.
3994
3995 2010-05-11  Jan Hubicka  <jh@suse.cz>
3996
3997         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
3998         Mark as used.
3999
4000 2010-05-11  Jan Hubicka  <jh@suse.cz>
4001
4002         PR tree-optimize/44063
4003         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
4004         queue.
4005         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
4006         limits.
4007         (estimate_function_body_sizes): Compute sizes even when disregarding.
4008
4009 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
4010
4011         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
4012
4013 2010-05-11  Jan Hubicka  <jh@suse.cz>
4014
4015         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
4016         into every boundary.
4017
4018 2010-05-11  Jan Hubicka  <jh@suse.cz>
4019
4020         * matrix-reorg.c (matrix_reorg): Rebuild edges.
4021
4022 2010-05-11  Jan Hubicka  <jh@suse.cz>
4023
4024         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
4025         lto_streamer_cache_delete): Put nodes into heap.
4026         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
4027         heap.
4028
4029 2010-05-11  Jan Hubicka  <jh@suse.cz>
4030
4031         * cgraphbuild.c (cgraph_rebuild_references): New.
4032         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
4033         out extern inlines.
4034         * cgraph.h (cgraph_rebuild_references): Declare.
4035         * tree-inline.c (tree_function_versioning): Use it.
4036         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
4037
4038 2010-05-11  Jan Hubicka  <jh@suse.cz>
4039
4040         * cgraph.c: Include ipa-utils.h
4041         (cgraph_create_virtual_clone): Update references.
4042         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
4043
4044 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
4045
4046         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
4047         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
4048         cache size.
4049
4050 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
4051
4052         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
4053
4054 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
4055
4056         * gcc.c (execute): For -### don't quote arguments that
4057         contain just alphanumerics and _/-. characters.
4058         * doc/invoke.texi: Document that change for -###.
4059
4060         PR debug/44023
4061         * df-problems.c (struct dead_debug): Add to_rescan field.
4062         (dead_debug_init): Clear to_rescan field.
4063         (dead_debug_finish): Rescan all debug insns in to_rescan
4064         bitmap and free the bitmap.
4065         (dead_debug_insert_before): Instead of rescanning debug insns
4066         immediately queue their rescanning until dead_debug_finish.
4067         (df_note_bb_compute): After dead_debug_add do continue instead
4068         of break.
4069
4070 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
4071
4072         PR debug/44028
4073         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
4074         clear also INSN_REG_USE_LIST.
4075
4076 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4077
4078         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
4079
4080 2010-05-10  Jan Hubicka  <jh@suse.cz>
4081
4082         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
4083         commited change.
4084
4085 2010-05-10  Jan Hubicka  <jh@suse.cz>
4086
4087         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
4088         Allocate encoders.
4089         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
4090         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
4091         (lto_streamer_cache_create): Init alloc pool.
4092         (lto_streamer_cache_delete): Free alloc pool.
4093         * lto-streamer.h: Include alloc pool.
4094         (lto_streamer_cache_d): Use alloc pool.
4095         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
4096
4097 2010-05-10  Jan Hubicka  <jh@suse.cz>
4098
4099         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
4100         * cgraphbuild.c: Include except.h
4101         (record_type_list, record_eh_tables): New function.
4102         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
4103
4104 2010-05-10  Jan Hubicka  <jh@suse.cz>
4105
4106         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
4107         __frame_dummy_init_array_entry, force_to_data): Attribute as used
4108         rather than unused.
4109
4110 2010-05-10  Michael Matz  <matz@suse.de>
4111
4112         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
4113         (can_reassociate_p): Use FLOAT_TYPE_P.
4114         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
4115         (vect_force_simple_reduction): ... this.
4116         * tree-parloops.c (gather_scalar_reductions): Use
4117         vect_force_simple_reduction.
4118         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
4119         vect_is_simple_reduction, add modify argument, if true rewrite
4120         "a-b" into "a+(-b)".
4121         (vect_is_simple_reduction, vect_force_simple_reduction): New
4122         functions.
4123         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
4124
4125 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4126             Vladimir Makarov  <vmakarov@redhat.com>
4127
4128         PR rtl-optimization/44012
4129         * ira-build.c (remove_unnecessary_allocnos): Nullify
4130         regno_allocno_map of the removed allocno.
4131
4132 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4133
4134         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
4135         to /dev/null.
4136         * configure: Regenerate.
4137
4138 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4139
4140         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
4141         unused.
4142         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
4143         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
4144         support in Sun ld.
4145         * configure: Regenerate.
4146
4147 2010-05-10  Richard Guenther  <rguenther@suse.de>
4148
4149         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
4150         marked if the entry identifier is marked.
4151
4152 2010-05-10  Richard Guenther  <rguenther@suse.de>
4153
4154         * c-common.c (struct c_common_attributes): Add fnspec attribute.
4155         (handle_fnspec_attribute): New function.
4156         * gimple.h (gimple_call_return_flags): Declare.
4157         (gimple_call_arg_flags): Likewise.
4158         * gimple.c (gimple_call_arg_flags): New function.
4159         (gimple_call_return_flags): Likewise.
4160         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
4161         New argument flags.
4162         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
4163         return value flags.
4164         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
4165         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
4166         main work to ...
4167         (make_heapvar_for): ... this new function.
4168         (handle_rhs_call): Handle fnspec attribute argument specifiers.
4169         (handle_lhs_call): Likewise.
4170         (find_func_aliases): Adjust.
4171
4172 2010-05-10  Richard Guenther  <rguenther@suse.de>
4173
4174         PR tree-optimization/44050
4175         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
4176
4177 2010-05-10  Wei Guozhi  <carrot@google.com>
4178
4179         PR target/42879
4180         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
4181
4182 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
4183
4184         PR c/10676
4185         * c-typeck.c (lookup_field): Take a type directly.  Update
4186         recursive calls.
4187         (build_component_ref): Update call to lookup_field.
4188         (set_init_label): Use lookup_field to find initialized field.
4189         Handle returned list of fields like a sequence of designators.
4190
4191 2010-05-09  Richard Guenther  <rguenther@suse.de>
4192
4193         PR middle-end/44024
4194         * fold-const.c (tree_single_nonzero_warnv_p): Properly
4195         handle &FUNCTION_DECL.
4196
4197 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
4198
4199         PR c/4784
4200         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
4201         structures and unions recursively.
4202         (detect_field_duplicates): Move duplicate detection with a hash to
4203         detect_field_duplicates_hash.  Always use a hash if anonymous
4204         structures or unions are present.
4205         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
4206         give errors.
4207
4208 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
4209
4210         PR target/44046
4211         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
4212         detect Atom, Core 2 and Core i7.
4213
4214 2010-05-09  Richard Guenther  <rguenther@suse.de>
4215
4216         * gcc.c (store_arg): Handle temporary file deletion for
4217         joined arguments.
4218
4219 2010-05-09  Richard Guenther  <rguenther@suse.de>
4220
4221         PR middle-end/44043
4222         * ipa-inline.c (estimate_function_body_sizes): Return after
4223         disregarding inline limits.
4224
4225 2010-05-09  Richard Guenther  <rguenther@suse.de>
4226
4227         * gcc.c (store_arg): Revert last change.
4228
4229 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
4230
4231         PR middle-end/28685
4232         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
4233         (optimize_ops_list): Call it.
4234
4235 2010-05-08  Richard Guenther  <rguenther@suse.de>
4236
4237         PR tree-optimization/44030
4238         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
4239         NECESSARY flag if we propagate from a inserted expression.
4240
4241 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
4242
4243         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
4244         domain types as equal if they are both PLACEHOLDER_EXPRs.
4245
4246 2010-05-08  Richard Guenther  <rguenther@suse.de>
4247
4248         * lto-wrapper.c (run_gcc): Remove linker output from
4249         command line for LTRANS invocation.
4250
4251 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
4252
4253         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
4254         lto-macho as lto_binary_reader.
4255         * target.h (struct gcc_target): New hooks lto_start and lto_end.
4256         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
4257         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
4258         in lto_start and lto_end calls.
4259         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
4260         magic numbers.
4261         (scan_prog_file): Update is_elf_or_coff call.
4262         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
4263
4264         * collect2.c (main): Fix enum comparison.
4265
4266         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
4267         Add prototypes.
4268         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
4269         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
4270         and TARGET_ASM_LTO_END.
4271         * darwin.c: Include obstack.h and lto-streamer.h.
4272         (lto_section_names_offset, lto_section_names_obstack,
4273         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
4274         global variables.
4275         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
4276         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
4277         to a temporary file.
4278         (darwin_asm_lto_end): New function.  Restore asm_out_file.
4279         (darwin_asm_named_section): For LTO sections, replace the name with
4280         the offset of the section name in a string table, and build this
4281         table.
4282         (darwin_file_start): Initialize global vars for LTO support.
4283         (darwin_file_end): If output to asm_out_file was redirected, append it
4284         to the proper asm_out_file here.  Add the section names section.
4285
4286 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
4287
4288         * c-pragma.c (pending_weak_d, pending_weak): New.
4289         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
4290         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
4291         handle_pragma_weak): Update the uses of pending_weaks.
4292
4293 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4294
4295         PR documentation/44016
4296         * doc/standards.texi (Standards): Link to unversioned
4297         cxx0x_status.html page.
4298
4299 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
4300
4301         PR target/43708
4302         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
4303         in addition to TREE_USED, to avoid "set but unused" warnings.
4304
4305 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
4306
4307         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
4308         (is_loop_prefetching_profitable): Do not insert prefetches
4309         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
4310         times the prefetch ahead distance.
4311
4312 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
4313
4314         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
4315         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
4316         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
4317         the unroll_factor.
4318
4319 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
4320
4321         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
4322         a diagnostic info when the insn-to-mem ratio is too small.
4323
4324 2010-05-07  Richard Guenther <rguenther@suse.de>
4325
4326         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
4327         the linker plugin.
4328         (store_arg): Queue temp_filename for deletion instead of
4329         the whole argument.
4330
4331 2010-05-07  Richard Guenther  <rguenther@suse.de>
4332
4333         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
4334         (run_gcc): Handle LTRANS phase invocation.
4335         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
4336
4337 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
4338
4339         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
4340         this is also meaningful on PARM_DECLs and RESULT_DECLs.
4341
4342 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4343
4344         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
4345
4346 2010-05-07  Richard Guenther  <rguenther@suse.de>
4347
4348         PR tree-optimization/44020
4349         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
4350         code when PRE is not yet initialized.
4351
4352 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4353
4354         * config/mips/dbxmdebug.h: Remove.
4355         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
4356
4357 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
4358
4359         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
4360         with null pointer and also warn about ordered comparison of zero with
4361         pointer if -Wextra.
4362
4363 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4364
4365         * graphite-blocking.c
4366         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
4367         * graphite-clast-to-gimple.c
4368         (clast_to_gcc_expression): Same.
4369         (precision_for_value): Same.
4370         (precision_for_interval): Same.
4371         (gcc_type_for_interval): Same.
4372         (graphite_create_new_guard): Same.
4373         (compute_bounds_for_level): Same.
4374         (graphite_create_new_loop_guard): Same.
4375         * graphite-interchange.c
4376         (build_linearized_memory_access): Same.
4377         (pdr_stride_in_loop): Same.
4378         (memory_strides_in_loop_1): Same.
4379         (memory_strides_in_loop): Same.
4380         (extend_scattering): Same.
4381         (psct_scattering_dim_for_loop_depth): Same.
4382         (pbb_number_of_iterations): Same.
4383         * graphite-poly.h
4384         (debug_iteration_domains): Same.
4385         * graphite-ppl.c
4386         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4387         (ppl_set_inhomogeneous_gmp): Same.
4388         (ppl_strip_loop): Same.
4389         (ppl_lexico_compare_linear_expressions): Same.
4390         (ppl_read_polyhedron_matrix): Same.
4391         (ppl_max_for_le_pointset): Same.
4392         * graphite-ppl.h
4393         (ppl_read_polyhedron_matrix): Same.
4394         (tree_int_to_gmp): Same.
4395         (gmp_cst_to_tree): Same.
4396         (ppl_set_inhomogeneous): Same.
4397         (ppl_set_inhomogeneous_tree): Same.
4398         (ppl_set_coef): Same.
4399         (ppl_set_coef_tree): Same.
4400         * graphite-sese-to-poly.c
4401         (build_pbb_scattering_polyhedrons): Same.
4402         (build_scop_scattering): Same.
4403         (scan_tree_for_params_right_scev): Same.
4404         (scan_tree_for_params): Same.
4405         (find_params_in_bb): Same.
4406         (find_scop_parameters): Same.
4407         (add_upper_bounds_from_estimated_nit): Same.
4408         (build_loop_iteration_domains): Same.
4409         (add_condition_to_domain): Same.
4410         (pdr_add_memory_accesses): Same.
4411
4412 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4413
4414         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
4415         CLooG's value_* macros to their respective mpz_* counterparts.
4416         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
4417         (graphite_create_new_loop_guard): Same.
4418         * graphite-interchange.c (build_linearized_memory_access): Same.
4419         (pdr_stride_in_loop): Same.
4420         (memory_strides_in_loop_1): Same.
4421         (1st_interchange_profitable_p): Same.
4422         * graphite-poly.c (extend_scattering): Same.
4423         (psct_scattering_dim_for_loop_depth): Same.
4424         (pbb_number_of_iterations): Same.
4425         (pbb_number_of_iterations_at_time): Same.
4426         * graphite-poly.h (new_1st_loop): Same.
4427         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
4428         (oppose_constraint): Same.
4429         (insert_constraint_into_matrix): Same.
4430         (ppl_set_inhomogeneous_gmp): Same.
4431         (ppl_set_coef_gmp): Same.
4432         (ppl_strip_loop): Same.
4433         (ppl_lexico_compare_linear_expressions): Same.
4434         (ppl_max_for_le_pointset): Same.
4435         (ppl_min_for_le_pointset): Same.
4436         (ppl_build_realtion): Same.
4437         * graphite-ppl.h (gmp_cst_to_tree): Same.
4438         (ppl_set_inhomogeneous): Same.
4439         (ppl_set_inhomogeneous_tree): Same.
4440         (ppl_set_coef): Same.
4441         (ppl_set_coef_tree): Same.
4442         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
4443         (build_scop_scattering): Same.
4444         (add_value_to_dim): Same.
4445         (scan_tree_for_params_right_scev): Same.
4446         (scan_tree_for_params_int): Same.
4447         (scan_tree_for_params): Same.
4448         (find_params_in_bb): Same.
4449         (find_scop_parameters): Same.
4450         (add_upper_bounds_from_estimated_nit): Same.
4451         (build_loop_iteration_domains): Same.
4452         (create_linear_expr_from_tree): Same.
4453         (add_condition_to_domain): Same.
4454         (pdr_add_memory_accesses): Same.
4455
4456 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
4457             Jason Merrill  <jason@redhat.com>
4458
4459         * c-common.c (c_common_reswords): Add nullptr.
4460         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
4461         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
4462         (gen_type_die_with_usage): Likewise.
4463         * dbxout.c (dbxout_type): Likewise.
4464         * sdbout.c (plain_type_1): Likewise.
4465
4466 2010-05-06  Jason Merrill  <jason@redhat.com>
4467
4468         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
4469         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
4470         ret appropriately.
4471         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
4472
4473         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
4474         stripping WITH_SIZE_EXPR.
4475         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
4476         change.
4477
4478 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4479
4480         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
4481         list of obsolete configurations.
4482         Disabled check for obsolete configurations.
4483         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
4484         Removed support for previous versions.
4485         * config/mips/iris.h: Removed.
4486         * config/mips/iris5.h: Removed.
4487         * config/mips/iris6.h: Merged old iris.h contents.
4488         (TARGET_IRIX): Removed.
4489         (DRIVER_SELF_SPECS): Removed mabi=32.
4490         (IDENT_ASM_OP): Removed undef.
4491         (STARTFILE_SPEC): Removed mabi=32.
4492         (ENDFILE_SPEC): Likewise.
4493         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
4494         (MACHINE_TYPE): Update for IRIX 6.5.
4495         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
4496         TARGET_IRIX by TARGET_IRIX6.
4497         (mips_file_start): Likewise.
4498         (mips_output_external): Remove IRIX 5/6 O32 support.
4499         (mips_output_function_prologue): Likewise.
4500         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
4501         TARGET_IRIX6.
4502         (TARGET_CPU_CPP_BUILTINS): Likewise.
4503         (TARGET_IRIX): Removed.
4504         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
4505         (MULTILIB_DIRNAMES): Removed 32.
4506         (MULTILIB_OSDIRNAMES): Removed ../lib.
4507         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
4508         (Specific, mips-sgi-irix5): Document removal.
4509         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
4510         Remove references to older IRIX 6 releases and the O32 ABI.
4511
4512 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
4513
4514         PR bootstrap/43994
4515         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
4516         instead of DF_REF_REAL_REG.
4517
4518 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
4519
4520         PR target/43888
4521         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
4522         handling to still return true for x64 targets.
4523
4524 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
4525
4526         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
4527
4528 2010-05-06  Jan Hubicka  <jh@suse.cz>
4529
4530         PR tree-optimization/43791
4531         * ipa-inline.c (update_caller_keys): Remove bogus
4532         disregard_inline_limits check.
4533
4534 2010-05-06  Michael Matz  <matz@suse.de>
4535
4536         PR tree-optimization/43984
4537         * tree-ssa-pre.c (inserted_phi_names): Remove.
4538         (inserted_exprs): Change to bitmap.
4539         (create_expression_by_pieces): Set bits, don't append to vector.
4540         (insert_into_preds_of_block): Don't handle inserted_phi_names.
4541         (eliminate): Don't look at inserted_phi_names, remove deleted
4542         insns from inserted_exprs.
4543         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
4544         (init_pre, fini_pre): Allocate and free bitmaps.
4545         (execute_pre): Insert insns on edges before elimination.
4546
4547 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
4548
4549         * tree.c (initializer_zerop): Handle STRING_CST.
4550
4551 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4552
4553         PR 40989
4554         * doc/invoke.texi (Wimplicit): Document as C only.
4555         * opts.c (common_handle_option): Add argument kind.
4556         (handle_option): Rename as read_cmdline_option. Factor out code to...
4557         (handle_option): ... here. New.
4558         (handle_options): Rename as read_cmdline_options.
4559         (decode_options): Update call.
4560         (set_option): Use option index instead of option pointer. Classify
4561         diagnostics correctly.
4562         (enable_warning_as_error): Call handle_option.
4563         * opts.h (set_option): Update declaration.
4564         (handle_option): Declare.
4565         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
4566         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
4567         * c-opts.c (set_Wimplicit): Delete.
4568         (c_family_lang_mask): New static constant.
4569         (c_common_handle_option): Add argument kind. Use handle_option
4570         instead of set_Wimplicit.
4571         (c_common_post_options): warn_implicit and warn_implicit_int
4572         are disabled by default.
4573         * c-common.c (warn_implicit): Do not define here.
4574         * c-common.h (warn_implicit): Do not declare here.
4575         (c_common_handle_option): Update declaration.
4576         * lto-opts.c (lto_reissue_options): Update call to set_option.
4577
4578 2010-05-06  Richard Guenther  <rguenther@suse.de>
4579
4580         PR tree-optimization/43571
4581         * domwalk.c (walk_dominator_tree): Walk the dominator
4582         sons in more optimal order.
4583
4584 2010-05-06  Richard Guenther  <rguenther@suse.de>
4585
4586         PR tree-optimization/43934
4587         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
4588         (stmt_cost): Likewise.
4589         (extract_true_false_args_from_phi): New helper.
4590         (determine_max_movement): For PHI nodes verify we can hoist them
4591         and compute their cost.
4592         (determine_invariantness_stmt): Handle PHI nodes.
4593         (move_computations_stmt): Likewise.  Hoist PHI nodes in
4594         if-converted form using COND_EXPRs.
4595         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
4596         (tree_ssa_lim): Likewise.
4597         * tree-flow.h (tree_ssa_lim): Adjust prototype.
4598         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
4599
4600 2010-05-06  Richard Guenther  <rguenther@suse.de>
4601
4602         PR tree-optimization/43987
4603         * tree-ssa-structalias.c (could_have_pointers): For possibly
4604         address-taken variables force pointers to be recorded.
4605         (create_variable_info_for_1): Likewise.
4606         (push_fields_onto_fieldstack): Pass in wheter all fields
4607         must have pointers.
4608         (find_func_aliases): Query types instead of vars whether
4609         they contain pointers where appropriate.
4610
4611 2010-05-06  Jan Hubicka  <jh@suse.cz>
4612
4613         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
4614         (record_reference, mark_address, mark_load, mark_store): Record
4615         references.
4616         (record_references_in_initializer): Update call of record_references.
4617         (rebuild_cgraph_edges): Remove all references before rebuiding.
4618         * cgraph.c (cgraph_create_node): Clear ref list.
4619         (cgraph_remove_node): Remove references.
4620         (dump_cgraph_node): Dump references.
4621         (cgraph_clone_node): Clone references.
4622         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
4623         (struct cgraph_node, varpool_node): Add ref_lst.
4624         * ipa-ref.c: New file.
4625         * ipa-ref.h: New file.
4626         * ipa-ref-inline.h: New file.
4627         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
4628         (referenced_from_other_partition_p): New function.
4629         (lto_output_varpool_node): Take set arugment; call
4630         referenced_from_other_partition.
4631         (lto_output_ref): New.
4632         (add_references): New.
4633         (output_refs): New.
4634         (output_cgraph): Compute boundary based on references; output refs.
4635         (output_varpool): Accept cgraph_node_set argument.
4636         (input_ref): New.
4637         (input_refs): New.
4638         (input_cgraph): Call input_refs.
4639         * lto-section-in.c (lto_section_name): Add refs.
4640         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
4641         (ipa-ref.o): New file.
4642         * varpool.c (varpool_node): Clear ipa ref list.
4643         (varpool_remove_node): Remove references.
4644         (dump_varpool_node): Dump references.
4645         (varpool_assemble_decl): Only compile finalized ones.
4646         (varpool_extra_name_alias): Initialize ref list.
4647         * lto-streamer.c (lto-get_section_name): Add .refs section.
4648         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
4649         (referenced_from_other_partition_p): Declared.
4650
4651 2010-05-06  Ira Rosen  <irar@il.ibm.com>
4652
4653         PR tree-optimization/43901
4654         * tree-vect-stmts.c (vectorizable_call): Assert that vector
4655         type is not NULL if it's transformation phase, and return
4656         FALSE if it's analysis.
4657         (vectorizable_conversion, vectorizable_operation,
4658         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
4659
4660 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
4661
4662         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
4663         Delete.
4664         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
4665         New define.
4666         * config/mips/mips-protos.h
4667         (mips_small_register_classes_for_mode_p): Delete prototype.
4668
4669 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
4670
4671         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
4672         * config/arm/arm.c (multiple_operation_profitable_p,
4673         compute_offset_order): New static functions.
4674         (load_multiple_sequence, store_multiple_sequence): Use them.
4675         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
4676         memory offsets, not register numbers.
4677         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
4678
4679 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
4680
4681         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
4682         (get_pending_sizes, put_pending_size, put_pending_sizes):
4683         Update the uses of pending_sizes.
4684         * c-decl.c (store_parm_decls): Likewise.
4685         * c-tree.h (struct c_arg_info): Likewise.
4686         * tree.h: Update the prototype for get_pending_sizes and
4687         put_pending_sizes.
4688
4689 2010-05-05  Jason Merrill  <jason@redhat.com>
4690
4691         PR debug/43370
4692         * c-common.c (handle_aligned_attribute): Respect
4693         ATTR_FLAG_TYPE_IN_PLACE.
4694
4695         PR testsuite/43758
4696         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
4697         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
4698         (TARGET_INITIALIZER): Use it.
4699         * c-common.c (attribute_takes_identifier_p): Call it.
4700         * c-common.h: Update prototype.
4701         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
4702         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
4703
4704 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
4705
4706         PR debug/43950
4707         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
4708         DW_ID_down_case for Fortran compilation units.
4709
4710 2010-05-05  Jan Hubicka  <jh@suse.cz>
4711
4712         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
4713         handle aliases.
4714
4715 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
4716
4717         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
4718         a variable-sized RESULT_DECL.
4719
4720 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
4721
4722         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
4723
4724 2010-05-05  Jason Merrill  <jason@redhat.com>
4725
4726         PR c++/43787
4727         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
4728         returns GS_OK.
4729         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
4730
4731 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
4732             Jakub Jelinek  <jakub@redhat.com>
4733
4734         PR debug/43478
4735         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
4736         (dead_debug_init, dead_debug_finish): New functions.
4737         (dead_debug_add, dead_debug_insert_before): Likewise.
4738         (df_note_bb_compute): Initialize a dead_debug object, add dead
4739         debug uses to it, insert debug bind insns before death insns,
4740         reset debug insns that refer to pending uses at the end.
4741         * rtl.h (make_debug_expr_from_rtl): New prototype.
4742         * varasm.c (make_debug_expr_from_rtl): New function.
4743
4744 2010-05-05  Jan Hubicka  <jh@suse.cz>
4745
4746         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
4747         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
4748         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
4749         lto_varpool_encoder_deref, lto_varpool_encoder_size,
4750         lto_varpool_encoder_encode_initializer_p,
4751         lto_set_varpool_encoder_encode_initializer): New functions.
4752         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
4753         call output_varpool.
4754         (input_varpool_node): Do not always set analyzed.
4755         (input_cgraph_1): Return vector of cgraph nodes.
4756         (input_varpool_1): Return vector of varpools.
4757         (input_cgraph): Free the vectors.
4758         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
4759         output only initializers needed.
4760         (lto_output): Only call output_cgraph.
4761         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
4762         * lto-section-out.c (lto_new_out_decl_state): Initialize
4763         state->varpool_node_encoder.
4764         * lto-streamer.h (lto_varpool_encoder_d): New.
4765         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
4766         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
4767         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
4768         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
4769         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
4770         Declare.
4771         (output_varpool, input_varpool): Remove declarations.
4772
4773 2010-05-05  Jan Hubicka  <jh@suse.cz>
4774
4775         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
4776         with body can prevail.
4777
4778 2010-05-05  Jan Hubicka  <jh@suse.cz>
4779
4780         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
4781         size.
4782
4783 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4784
4785         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
4786
4787         * gengtype.h (erro_at_line): Constify pos argument.
4788
4789         * gengtype.c: Include hashtab.h.
4790         (enum gc_used): Document GC_MAYBE_POINTED_TO.
4791         (error_at_line): Constify pos argument.
4792         (do_typedef): Initialize p->opt field.
4793         (get_file_gtfilename): Fix comment typo.
4794         (struct walk_type_data): Constify line field.
4795         (get_output_file_for_structure): New function.
4796         (write_local_func_for_structure): Constify orig_s argument.
4797         Use get_output_file_for_structure.
4798         (write_func_for_structure): Use get_output_file_for_structure.
4799         (INDENT): New define.
4800         (dump_pair, dump_type, dump_type_list, dump_typekind)
4801         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
4802         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
4803         functions.
4804         (seen_types): New variable.
4805         (main): New variable do_dump.  Process "-d" command line option.
4806         Call dump_everything if dump requested.
4807
4808 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
4809
4810         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
4811         in a temporary instead of invoking the macro multiple times.
4812         (track_expr_p): Likewise.
4813
4814 2010-05-04  Neil Vachharajani <nvachhar@google.com>
4815
4816         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
4817         per new semantics.
4818         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
4819         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
4820         conditions for printing notes.
4821         * common.opt (-Wcoverage-mismatch): Allow negative, default to
4822         true, update documentation.
4823         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
4824
4825 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
4826
4827         PR c/43981
4828         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
4829         on dimen.
4830
4831 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4832
4833         PR target/43799
4834         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
4835         (*sse_prologue_save_insn1): Likewise.
4836         (SSE prologue save splitter): Likewise.
4837
4838 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
4839
4840         * tree.c (free_lang_data_in_one_sizepos): New inline function.
4841         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
4842         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
4843         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
4844         all decls.  Call it on DECL_FIELD_OFFSET of fields.
4845         (find_decls_types_r): Follow DECL_VALUE_EXPR.
4846         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
4847
4848 2010-05-04  Martin Jambor  <mjambor@suse.cz>
4849
4850         * tree-sra.c (build_access_from_expr_1): The first parameter type
4851         changed to simple tree.
4852         (build_access_from_expr): Likewise, gsi parameter was eliminated.
4853         (scan_assign_result): Renamed to assignment_mod_result, enum elements
4854         renamed as well.
4855         (build_accesses_from_assign): Removed all parameters except for a
4856         simple gimple statement.  Now returns a simple bool.
4857         (scan_function): All non-analysis parts moved to separate functions
4858         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
4859         parameters and updated both callers.
4860         (sra_modify_expr): Removed parameter data.
4861         (sra_modify_function_body): New function.
4862         (perform_intra_sra): Call sra_modify_function_body to modify the
4863         function body.
4864         (replace_removed_params_ssa_names): Parameter data changed into
4865         adjustments vector.
4866         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
4867         changed the parameter dont_convert to convert with the opposite
4868         meaning.
4869         (sra_ipa_modify_assign): Parameter data changed into adjustments
4870         vector, return value changed to bool.
4871         (ipa_sra_modify_function_body): New function.
4872         (sra_ipa_reset_debug_stmts): Updated a comment.
4873         (modify_function): Use ipa_sra_modify_function_body to modify function
4874         body.
4875
4876 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4877
4878         PR middle-end/43671
4879         * alias.c (true_dependence): Handle the same VALUE in x and mem.
4880         (canon_true_dependence): Likewise.
4881         (write_dependence_p): Likewise.
4882
4883 2010-05-04  Jan Hubicka  <jh@suse.cz>
4884
4885         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
4886         * cgraphbuild.c: Include ipa-utils.h
4887         (record_reference_ctx): New struct.
4888         (record_reference): Simplify to work on initializers; not statements.
4889         (mark_address, mark_load, mark_store): New.
4890         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
4891         walk PHI nodes too.
4892         (record_references_in_initializer): Update use of record_reference.
4893         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
4894         walk PHI nodes too.
4895
4896 2010-05-04  Jan Hubicka  <jh@suse.cz>
4897
4898         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
4899         node will be removed anyway.
4900         (lto_varpool_replace_node): Allow also unanalyzed nodes;
4901         relink aliases of node into prevailing node.
4902         * varpool.c (varpool_remove_node): Remove aliases properly;
4903         when removing node, remove all its aliases too; remove DECL_INITIAL
4904         of removed node; ggc_free the varpool node.
4905
4906 2010-05-04  Richard Guenther  <rguenther@suse.de>
4907
4908         PR tree-optimization/43879
4909         * tree-ssa-structalias.c (alias_get_name): Use
4910         DECL_ASSEMBLER_NAME if available.
4911         (create_function_info_for): Return the varinfo node.
4912         (ipa_pta_execute): Associate same-body aliases and extra names
4913         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
4914
4915 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
4916
4917         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
4918
4919 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
4920
4921         PR bootstrap/43964
4922         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
4923         only if HONOR_REG_ALLOC_ORDER is not defined.
4924
4925 2010-05-04  Richard Guenther  <rguenther@suse.de>
4926
4927         PR tree-optimization/43949
4928         * tree-vrp.c (extract_range_from_binary_expr): Only handle
4929         TRUNC_MOD_EXPR.
4930
4931 2010-04-26  Jason Merrill  <jason@redhat.com>
4932
4933         * c.opt (-fstrict-enums): New.
4934         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
4935
4936 2010-05-03  David Ung <davidu@mips.com>
4937             James E. Wilson  <wilson@codesourcery.com>
4938
4939         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
4940         emit the trap instruction before the divide for TUNE_74K.
4941
4942 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
4943
4944         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
4945         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
4946         based on the above, for new target hook.
4947
4948         * hooks.c (hook_bool_mode_true): New generic hook.
4949         * hooks.h (hook_bool_mode_true): Add prototype.
4950
4951         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
4952         target hook.
4953         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
4954         target hook, set to hook_bool_mode_false.
4955         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
4956         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
4957         with targetm.small_register_classes_for_mode_p.
4958         (find_reusable_reload): Likewise.
4959         (combine_reloads): Likewise.
4960         * reload1.c (reload_as_needed): Likewise.
4961         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
4962         * ifcvt.c (noce_process_if_block, check_cond_move_block,
4963         dead_or_predicable): Likewise.
4964         * regmove.c (optimize_reg_copy_1): Likewise.
4965         * calls.c (prepare_call_address): Likewise.
4966         (precompute_register_parameters): Likewise.
4967
4968         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
4969         hook definition.
4970         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
4971         implementation of the hook that considers all register classes
4972         small except for SH64.
4973         (sh_override_options): Use the new hook.
4974         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
4975         Add prototype.
4976
4977         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
4978         hook definition.
4979         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
4980         implementation of the hook that considers all register classes
4981         small for THUMB1.
4982         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
4983         Add prototype.
4984
4985         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
4986         hook definition.
4987         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
4988         implementation of the hook that considers all register classes
4989         small for MIPS16.
4990         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
4991         Add prototype.
4992
4993         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
4994         hook definition.
4995         * config/m32c/m32c.h: Likewise.
4996         * config/pdp11/pdp11.h: Likewise.
4997         * config/avr/avr.h: Likewise.
4998         * config/xtensa/xtensa.h: Likewise.
4999         * config/m68hc11/m68hc11.h: Likewise.
5000         * config/mn10300/mn10300.h: Likewise.
5001         * config/mcore/mcore.h: Likewise.
5002         * config/h8300/h8300.h: Likewise.
5003         * config/bfin/bfin.h: Likewise.
5004
5005         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
5006         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
5007
5008 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
5009
5010         * double-int.h (tree_to_double_int): Remove macro.
5011         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
5012         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
5013         (tree_to_double_int): New function.
5014         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
5015         Move ...
5016         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
5017
5018 2010-05-03  Richard Guenther  <rguenther@suse.de>
5019
5020         PR tree-optimization/43971
5021         * tree-ssa-structalias.c (get_constraint_for_1): Fix
5022         constraints in the !flag_delete_null_pointer_checks case.
5023
5024 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
5025
5026         PR debug/43972
5027         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
5028         result mode matches original rtl mode.
5029
5030 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
5031
5032         PR target/43888
5033         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
5034
5035 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5036
5037         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
5038         when processing flag options.
5039
5040 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5041
5042         * gcov-iov.c (main): Change format string placeholder
5043         from %#08x to 0x%08x.
5044         * genchecksum.c (dosum): Change format string placeholder
5045         from %#02x to 0x%02x.
5046
5047 2010-05-02  Richard Guenther  <rguenther@suse.de>
5048
5049         PR tree-optimization/43879
5050         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
5051
5052 2010-05-02  Bruno Haible  <bruno@clisp.org>
5053
5054         * doc/extend.texi (Function Attributes): Fix a typo.
5055
5056 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5057
5058         Revert:
5059         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
5060         placeholder from 0x%x to %#x.
5061         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
5062         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
5063         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
5064         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
5065         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
5066         * config/i386/i386.c (ix86_target_string): Ditto.
5067         * config/i386/i386.c (output_pic_addr_const): Ditto.
5068         (print_operand): Ditto.
5069
5070 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5071
5072         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
5073         placeholder from 0x%x to %#x.
5074         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
5075         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
5076         (ASM_OUTPUT_DEBUG_DATA): Ditto.
5077         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
5078         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
5079         * optc-gen.awk: Ditto.
5080         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
5081         (HOST_WIDE_INT_PRINT_HEX): Ditto.
5082         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
5083         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
5084
5085 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
5086
5087         * target.h (struct calls): Add function_value_regno_p field.
5088         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5089         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
5090         * targhooks.c (default_function_value_regno_p): New function.
5091         * targhooks.h (default_function_value_regno_p): Declare function.
5092         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
5093         * builtins.c. (apply_result_size): (Ditto.).
5094         * combine.c. (likely_spilled_retval_p): (Ditto.).
5095         * mode-switching.c. Include 'target.h'.
5096         (create_pre_exit): Use function_value_regno_p hook.
5097         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
5098         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
5099         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
5100
5101         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
5102         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
5103         (ix86_function_value_regno_p): Declare as static, change argument
5104         type to const unsigned int.
5105         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
5106
5107 2010-05-01  Richard Guenther  <rguenther@suse.de>
5108
5109         PR tree-optimization/43949
5110         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
5111         types.
5112         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
5113
5114 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
5115
5116         * rtl.h (CONST_DOUBLE_P): Define.
5117         (rtx_to_double_int): Declare.
5118         * emit-rtl.c (rtx_to_double_int): New function.
5119         * dwarf2out.c (insert_double): New function.
5120         (loc_descriptor, add_const_value_attribute): Clean up, use
5121         rtx_to_double_int and insert_double functions.
5122
5123 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
5124
5125         * doc/extend.texi (Inline): Add missing return keyword to examples.
5126         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
5127         "command-line".
5128
5129 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5130
5131         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
5132         the variable part of the offset as well.  Use highest_pow2_factor for
5133         all alignment checks.
5134
5135 2010-04-30  Richard Guenther  <rguenther@suse.de>
5136
5137         PR tree-optimization/43879
5138         * tree-ssa-structalias.c (type_could_have_pointers): Functions
5139         can have pointers.
5140
5141 2010-04-30  Jan Hubicka  <jh@suse.cz>
5142
5143         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
5144         varpool.
5145         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
5146
5147 2010-04-30  Jan Hubicka  <jh@suse.cz>
5148
5149         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
5150         New.
5151         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
5152         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
5153         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
5154         cgraph_node_set_needs_ltrans_p): Remove.
5155
5156 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
5157
5158         * sdbout.c: Include vec.h, do not include varray.h.
5159         (deferred_global_decls, sdbout_global_decl,
5160         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
5161         * toplev.c: Do not include varray.h.
5162         (dump_memory_report): Do not dump VARRAY statistics.
5163         * gengtype.c (open_base_file): Ignore varray.h.
5164         * Makefile.in: Update for abovementioned changes.
5165         Remove all traces of varray.c and varray.h.
5166         * varray.c: Remove file.
5167         * varray.h: Remove file.
5168
5169 2010-04-30  Jan Hubicka  <jh@suse.cz>
5170
5171         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
5172         references.
5173
5174 2010-04-30  Jan Hubicka  <jh@suse.cz>
5175
5176         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
5177         needed.
5178
5179 2010-04-30  Richard Guenther  <rguenther@suse.de>
5180
5181         * tree-ssa-structalias.c (get_constraint_for_1): Generate
5182         constraints for CONSTRUCTOR.
5183
5184 2010-04-30  Richard Guenther  <rguenther@suse.de>
5185
5186         PR lto/43946
5187         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
5188         first after all lowering passes.
5189
5190 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
5191
5192         * toplev.c: Include varray.h for statistics dumping.
5193         * tree.h: Do not declare varray_head_tag.
5194         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
5195         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
5196         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
5197         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
5198         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
5199         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
5200         c-common.c, c-common.h, reg-stack.c, basic-block.h,
5201         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
5202         include varray.h.
5203         * Makefile.in: Update for abovementioned changes.
5204
5205 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
5206
5207         PR debug/43942
5208         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
5209
5210 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5211
5212         * config/picochip/picochip.c (picochip_legitimize_address): Define.
5213         Use this function to do machine-specific conversion.
5214         (picochip_legitimize_reload_address): Likewise.
5215         (picochip_legitimate_address_p): Check valid base register only if
5216         strict.
5217         (picochip_check_conditional_copy): Check for modw only if opnd is
5218         register.
5219         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
5220         to call the function in c.
5221         * config/picochip/picochip-protos.h
5222         (picochip_legitimize_reload_address): Define.
5223         * config/picochip/picochip.md (supported_compare1): Define.
5224
5225 2010-04-30  Jan Hubicka  <jh@suse.cz>
5226
5227         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
5228         (cgraph_global_info): Remove inlined.
5229         (LTO_cgraph_tag_names): Remove.
5230         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
5231         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
5232         simplify cgraph tags and document.
5233         (lto_output_node): Use only LTO_cgraph_unavail_node and
5234         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
5235         for_functions_valid, global info, process and output flags.
5236         (input_overwrite_node): Initialize estimated stack size and
5237         estimated growth.  Do not read flags we no longer store.
5238         (input_node): Likewise do not read info no longer stored.
5239         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
5240         flag.
5241
5242 2010-04-30  Richard Guenther  <rguenther@suse.de>
5243
5244         PR tree-optimization/43879
5245         * tree-ssa-structalias.c (get_constraint_for_1): Properly
5246         handle non-zero initializers.
5247
5248 2010-04-30  Richard Guenther  <rguenther@suse.de>
5249
5250         * builtins.c (fold_builtin_1): Delete free (0).
5251
5252 2010-04-29  Jan Hubicka  <jh@suse.cz>
5253
5254         * gengtype.c (open_base_files): Add lto-streamer.h
5255         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
5256         (pass_ipa_cp): GGC collect.
5257         * toplev. (compile_file): Do not output symbols.
5258         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
5259         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
5260         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
5261         * lto-section-in.c: Include ggc.h
5262         (lto_new_in_decl_state): Alloc in GGC.
5263         (lto_delete_in_decl_state): Likewise.
5264         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
5265         Collect.
5266
5267 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
5268
5269         PR target/42895
5270         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
5271         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
5272         (HONOR_REG_ALLOC_ORDER): Describe new macro.
5273         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
5274         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
5275         account only if HONOR_REG_ALLOC_ORDER is not defined.
5276         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
5277         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
5278
5279 2010-04-29  Jon Grant  <04@jguk.org>
5280
5281         * collect2.c (vflag): Change type from int to bool.
5282         (debug): Likewise.
5283         (helpflag): New global bool.
5284         (main): Set vflag and debug with boolean, not integer truth values.
5285         Accept new "--help" option and output usage text if found.
5286         * collect2.h (vflag): Update prototype.
5287         (debug): Likewise.
5288
5289 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5290
5291         PR bootstrap/43936
5292         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
5293
5294 2010-04-29  Richard Guenther  <rguenther@suse.de>
5295
5296         PR bootstrap/43935
5297         * plugin.h (invoke_plugin_callbacks): Annotate arguments
5298         with ATTRIBUTE_UNUSED.
5299
5300 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
5301
5302         PR target/43921
5303         * config/i386/i386.c (get_some_local_dynamic_name): Replace
5304         INSN_P with NONDEBUG_INSN_P.
5305         (distance_non_agu_define): Likewise.
5306         (distance_agu_use): Likewise.
5307
5308 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
5309
5310         From Dominique d'Humieres <dominiq@lps.ens.fr>
5311         PR bootstrap/43858
5312         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
5313         test_set.
5314
5315 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
5316
5317         * plugin.h (invoke_plugin_callbacks): New inline function.
5318         * plugin.c (flag_plugin_added): New global flag.
5319         (add_new_plugin): Initialize above flag.
5320         (invoke_plugin_callbacks): Rename to ...
5321         (invoke_plugin_callbacks_full): ... this.
5322
5323 2010-04-28  Jan Hubicka  <jh@suse.cz>
5324
5325         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
5326         (lto_varpool_replace_node): New.
5327         (lto_symtab_resolve_symbols): Resolve varpool nodes.
5328         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
5329         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
5330         * cgraph.h (varpool_node_ptr): New type.
5331         (varpool_node_ptr): New vector.
5332         (varpool_node_set_def): New structure.
5333         (varpool_node_set): New type.
5334         (varpool_node_set): New vector.
5335         (varpool_node_set_element_def): New structure.
5336         (varpool_node_set_element, const_varpool_node_set_element): New types.
5337         (varpool_node_set_iterator): New type.
5338         (varpool_node): Add prev pointers, add used_from_other_partition,
5339         in_other_partition.
5340         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
5341         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
5342         varpool_get_node, varpool_remove_node): Declare.
5343         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
5344         varpool_node_set_size): New inlines.
5345         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
5346         * tree-pass.h (varpool_node_set_def): Forward declare.
5347         (ipa_opt_pass_d): Summary writting takes vnode sets too.
5348         (ipa_write_optimization_summaries): Update prototype.
5349         * ipa-cp.c (ipcp_write_summary): Update.
5350         * ipa-reference.c (ipa_reference_write_summary): Update.
5351         * lto-cgraph.c (lto_output_varpool_node): New static function.
5352         (output_varpool): New function.
5353         (input_varpool_node): New static function.
5354         (input_varpool_1): New function.
5355         (input_cgraph): Input varpool.
5356         * ipa-pure-const.c (pure_const_write_summary): Update.
5357         * lto-streamer-out.c (lto_output): Update, output varpool too.
5358         (write_global_stream): Kill WPA hack.
5359         (produce_asm_for_decls): Update.
5360         (output_alias_pair_p): Handle variables.
5361         (output_unreferenced_globals): Output only needed partition of varpool.
5362         * ipa-inline.c (inline_write_summary): Update.
5363         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
5364         cgraph.
5365         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
5366         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
5367         varpool_node_set_new, varpool_node_set_add,
5368         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
5369         debug_varpool_node_set): New functions.
5370         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
5371         (execute_one_pass): Process new decls too.
5372         (ipa_write_summaries_2): Pass around vsets.
5373         (ipa_write_summaries_1): Likewise.
5374         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
5375         to add.
5376         (ipa_write_optimization_summaries_1): Pass around vsets.
5377         (ipa_write_optimization_summaries): Likewise.
5378         * varpool.c (varpool_get_node): New.
5379         (varpool_node): Update doubly linked lists.
5380         (varpool_remove_node): New.
5381         (dump_varpool_node): More dumping.
5382         (varpool_enqueue_needed_node): Update doubly linked lists.
5383         (decide_is_variable_needed): Kill ltrans hack.
5384         (varpool_finalize_decl): Kill lto hack.
5385         (varpool_assemble_decl): Skip decls in other partitions.
5386         (varpool_assemble_pending_decls): Update doubly linkes lists.
5387         (varpool_empty_needed_queue): Likewise.
5388         (varpool_extra_name_alias): Likewise.
5389         * lto-streamer.c (lto_get_section_name): Add vars section.
5390         * lto-streamer.h (lto_section_type): Update.
5391         (output_varpool, input_varpool): Declare.
5392
5393 2010-04-28  Mike Stump  <mikestump@comcast.net>
5394
5395         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
5396
5397 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5398
5399         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
5400         record or union type with RECORD_OR_UNION_TYPE_P predicate.
5401         (lto_input_ts_type_tree_pointers): Likewise.
5402         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
5403         (lto_output_ts_type_tree_pointers): Likewise.
5404
5405 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5406
5407         Uniquization of constants at the Tree level
5408         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
5409         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
5410         bit to the end.
5411         (tree_output_constant_def): Declare.
5412         * gimplify.c (gimplify_init_constructor): When using block copy, first
5413         uniquize the constant constructor on the RHS.
5414         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
5415         DECL_IN_CONSTANT_POOL flag.
5416         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
5417         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
5418         constant pool.
5419         (assemble_variable): Deal with symbols belonging to the tree constant
5420         pool.
5421         (get_constant_section): Add ALIGN parameter and simplify.
5422         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
5423         (assemble_constant_contents): Use the expression of the VAR_DECL.
5424         (output_constant_def_contents): Use the alignment of the VAR_DECL.
5425         (tree_output_constant_def): New global function.
5426         (mark_constant): Use the expression of the VAR_DECL.
5427         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
5428         its expression.
5429         (output_object_block): Likewise and assemble the expression.
5430
5431 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5432
5433         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
5434         hash_tree, eq_tree): New tree hash table.
5435         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
5436         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
5437         lto_orig_address_remove): Reimplement.
5438
5439 2010-04-28  Xinliang David Li  <davidxl@google.com>
5440
5441         PR c/42643
5442         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
5443         (compute_uninit_opnds_pos): New function.
5444         (is_non_loop_exit_postdominating): New function.
5445         (compute_control_dep_chain): New function.
5446         (find_pdom): New function.
5447         (convert_control_dep_chain_into_preds): New function.
5448         (find_predicates): New function.
5449         (find_control_equiv_block): New function.
5450         (collect_phi_def_edges): New function.
5451         (find_def_preds): New function.
5452         (find_dom): New function.
5453         (dump_predicates): New function.
5454         (get_cmp_code): New function.
5455         (is_value_included_in): New function.
5456         (find_matching_predicate_in_rest_chains): New function.
5457         (use_pred_not_overlap_with_undef_path_pred): New function.
5458         (is_use_properly_guarded): New function.
5459         (normalize_cond_1): New function.
5460         (is_and_or_or): New function.
5461         (normalize_cond): New function.
5462         (is_gcond_subset_of): New function.
5463         (is_subset_of_any): New function.
5464         (is_or_set_subset_of): New function.
5465         (is_and_set_subset_of): New function.
5466         (is_norm_cond_subset_of): New function.
5467         (is_pred_expr_subset_of): New function.
5468         (is_pred_chain_subset_of): New function.
5469         (is_included_in): New function.
5470         (is_superset_of): New function.
5471         (find_uninit_use): New function.
5472         (warn_uninitialized_phi): New function.
5473         (compute_possibly_undefined_names): New function.
5474         (ssa_undefined_value_p): New function.
5475         (execute_late_warn_uninitialized): New function.
5476         * tree-ssa.c (ssa_undefined_value_p): Removed.
5477         (warn_uninit): Changed to extern.
5478         (warn_uninitialized_phi): Removed.
5479         (warn_uninitialized_vars): Changed to extern.
5480         (execute_late_warn_uninitialized): Removed
5481         * tree-flow.h: Add new prototypes.
5482         * timevar.def: Add new time variable.
5483         * Makefile.in: Add new build file.
5484
5485 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
5486
5487         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
5488         type if available.
5489
5490 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5491
5492         PR target/22224
5493         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
5494
5495 2010-04-28  Martin Jambor  <mjambor@suse.cz>
5496
5497         * cgraph.h (struct cgraph_node): New field indirect_calls.
5498         (struct cgraph_indirect_call_info): New type.
5499         (struct cgraph_edge): Removed field indirect_call. New fields
5500         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
5501         (cgraph_create_indirect_edge): Declare.
5502         (cgraph_make_edge_direct): Likewise.
5503         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
5504         * ipa-prop.h (struct ipa_param_call_note): Removed.
5505         (struct ipa_node_params): Removed field param_calls.
5506         (ipa_create_all_structures_for_iinln): Declare.
5507         * cgraph.c: Described indirect edges and uids in initial comment.
5508         (cgraph_add_edge_to_call_site_hash): New function.
5509         (cgraph_edge): Search also among the indirect edges, use
5510         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
5511         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
5512         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
5513         site hash.
5514         (initialize_inline_failed): Assign a reason to indirect edges.
5515         (cgraph_create_edge_1): New function.
5516         (cgraph_create_edge): Moved some functionality to
5517         cgraph_create_edge_1.
5518         (cgraph_create_indirect_edge): New function.
5519         (cgraph_edge_remove_callee): Add an assert checking for
5520         non-indirectness.
5521         (cgraph_edge_remove_caller): Special-case indirect edges.
5522         (cgraph_remove_edge): Likewise.
5523         (cgraph_set_edge_callee): New function.
5524         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
5525         (cgraph_make_edge_direct): New function.
5526         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
5527         the declaration of the call statement matches.
5528         (cgraph_node_remove_callees): Special-case indirect edges.
5529         (cgraph_clone_edge): Likewise.
5530         (cgraph_clone_node): Clone also the indirect edges.
5531         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
5532         indirect_call, dump count of indirect_calls edges.
5533         * ipa-prop.c (iinlining_processed_edges): New variable.
5534         (ipa_note_param_call): Create indirect edges instead of
5535         creating notes.  New parameter node.
5536         (ipa_analyze_call_uses): New parameter node, pass it on to
5537         ipa_note_param_call.
5538         (ipa_analyze_stmt_uses): Likewise.
5539         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
5540         (print_edge_addition_message): Work on edges rather than on notes.
5541         (update_call_notes_after_inlining): Likewise, renamed to
5542         update_indirect_edges_after_inlining.
5543         (ipa_create_all_structures_for_iinln): New function.
5544         (ipa_free_node_params_substructures): Do not free notes.
5545         (ipa_edge_duplication_hook): Propagate bits within
5546         iinlining_processed_edges bitmap.
5547         (ipa_node_duplication_hook): Do not duplicate notes.
5548         (free_all_ipa_structures_after_ipa_cp): Renamed to
5549         ipa_free_all_structures_after_ipa_cp.
5550         (free_all_ipa_structures_after_iinln): Renamed to
5551         ipa_free_all_structures_after_iinln.
5552         (ipa_write_param_call_note): Removed.
5553         (ipa_read_param_call_note): Removed.
5554         (ipa_write_indirect_edge_info): New function.
5555         (ipa_read_indirect_edge_info): Likewise.
5556         (ipa_write_node_info): Do not stream notes, do stream information
5557         in indirect edges.
5558         (ipa_read_node_info): Likewise.
5559         (lto_ipa_fixup_call_notes): Removed.
5560         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
5561         * ipa-inline.c (pass_ipa_inline): Likewise.
5562         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
5563         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
5564         * tree-inline.c (copy_bb): Removed an unnecessary double check for
5565         is_gimple_call.
5566         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
5567         edges.
5568         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
5569         (output_cgraph): Stream also indirect edges.
5570         (lto_output_edge): Added capability to stream indirect edges.
5571         (input_edge): Likewise.
5572         (input_cgraph_1): Likewise.
5573         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
5574         of indirect edges.
5575
5576 2010-04-28  Richard Guenther  <rguenther@suse.de>
5577
5578         PR tree-optimization/43879
5579         PR tree-optimization/43909
5580         * tree-ssa-structalias.c (struct variable_info): Add
5581         only_restrict_pointers flag.
5582         (new_var_info): Initialize it.  Increment stats.total_vars here.
5583         (create_function_info_for): Do not increment stats.total_vars here.
5584         (get_function_part_constraint): Fix build with C++.
5585         (insert_into_field_list): Remove.
5586         (push_fields_onto_fieldstack): Properly merge fields.
5587         (create_variable_info_for): Split and simplify.
5588         (create_variable_info_for_1): New piece.
5589         (intra_create_variable_infos): Properly make restrict constraints
5590         from parameters.
5591
5592 2010-04-28  Richard Guenther  <rguenther@suse.de>
5593
5594         PR c++/43880
5595         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
5596
5597 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5598             Jan Hubicka <hubicka@ucw.cz>
5599
5600         * doc/invoke.texi (-Wsuggest-attribute=const,
5601         -Wsuggest-attribute=pure): Document.
5602         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
5603         (function_always_visible_to_compiler_p,
5604         suggest_attribute, warn_function_pure, warn_function_const):
5605         New functions.
5606         (check_call): Improve debug info.
5607         (analyze_function): Do not check availability.
5608         (add_new_function): Check availability.
5609         (propagate): Output warnings.
5610         (skip_function_for_local_pure_const): New function.
5611         (local_pure_const): Use it; output warnings.
5612         * common.opt (Wsuggest-attribute=const,
5613         Wsuggest-attribute=pure): New.
5614
5615 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
5616
5617         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
5618         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
5619         or DW_CFA_def_cfa_offset{,_sf}.
5620
5621 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
5622
5623         * tree.h: Fix truncated long macros.
5624
5625 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
5626
5627         * collect2.c (TARGET_64BIT): Redefine to target's default.
5628         * tlink.c: Likewise.
5629         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
5630         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
5631         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
5632         for underscoring __USER_LABEL_PREFIX__.
5633         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
5634         (SUB_LINK_ENTRY32): New.
5635         (SUB_LINK_ENTRY64): New.
5636         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
5637         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
5638         (SUB_LINK_ENTRY64): New.
5639         (SUB_LINK_ENTRY): New.
5640         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
5641         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
5642         x64 target is choosen.
5643         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
5644         * configure: Regenerated.
5645         * configure.ac (leading-mingw64-underscores): Option added.
5646
5647 2010-04-27  Jan Hubicka  <jh@suse.cz>
5648
5649         * doc/invoke.texi (-fipa-profile): Document.
5650         * opts.c (decode_options): Enable ipa-profile at -O1.
5651         * timevar.def (TV_IPA_PROFILE): Define.
5652         * common.opt (fipa-profile): Add.
5653         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
5654         flag for clones.
5655         (cgraph_propagate_frequency): Handle only local ones.
5656         * tree-pass.h (pass_ipa_profile): Declare.
5657         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
5658         (pass_ipa_profile): Use TV_IPA_PROFILE.
5659         * ipa.c (ipa_profile): New function.
5660         (gate_ipa_profile): Likewise.
5661         (pass_ipa_profile): New global variable.
5662         * passes.c (pass_ipa_profile): New.
5663
5664 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
5665
5666         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
5667
5668 2010-04-27  Martin Jambor  <mjambor@suse.cz>
5669
5670         PR middle-end/43812
5671         * ipa.c (dissolve_same_comdat_group_list): New function.
5672         (function_and_variable_visibility): Call
5673         dissolve_same_comdat_group_list when comdat group contains external or
5674         newly local nodes.
5675         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
5676         lists are circular and that they contain only DECL_ONE_ONLY nodes.
5677
5678 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
5679
5680         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
5681         (const_hash_1) <VECTOR_CST>: New case.
5682         (compare_constant) <VECTOR_CST>: Likewise.
5683         <ADDR_EXPR>: Deal with LABEL_REFs.
5684         (copy_constant) <VECTOR_CST>: New case.
5685
5686 2010-04-27  Jan Hubicka  <jh@suse.cz>
5687
5688         * cgraph.c (cgraph_propagate_frequency): New function.
5689         * cgraph.h (cgraph_propagate_frequency): Declare.
5690         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
5691         cgraph_propagate_frequency.
5692
5693 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
5694
5695         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
5696
5697 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
5698
5699         PR target/40657
5700         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
5701         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
5702         here to determine which regs to push and how much stack to reserve.
5703
5704 2010-04-27  Jie Zhang  <jie@codesourcery.com>
5705
5706         * doc/gimple.texi (gimple_statement_with_ops): Remove
5707         addresses_taken field.
5708         (gimple_statement_with_memory_ops): Likewise.
5709
5710 2010-04-27  Jan Hubicka  <jh@suse.cz>
5711
5712         * tree-inline.c (eni_inlining_weights): Remove.
5713         (estimate_num_insns): Special case more builtins.
5714
5715 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
5716
5717         PR c/32207
5718         * c-typeck.c (build_binary_op): Move forward check for comparison
5719         pointer with null pointer constant and adjust the diagnostic message.
5720
5721 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
5722
5723         PR lto/42776
5724         * configure.ac (gcc_cv_as_section_has_align): Set if installed
5725         binutils supports extended .section directive needed by LTO, or
5726         warn if older binutils found.
5727         (LTO_BINARY_READER): New AC_SUBST'd variable.
5728         (LTO_USE_LIBELF): Likewise.
5729         * gcc/config.gcc (lto_binary_reader): New target-specific configure
5730         variable.
5731         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
5732         (LTO_USE_LIBELF): Likewise.
5733         * configure: Regenerate.
5734
5735         * collect2.c (is_elf): Rename from this ...
5736         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
5737          object files in addition to ELF-formatted ones.
5738         (scan_prog_file): Caller updated.  Also allow for LTO info marker
5739         symbol to be prefixed or not by an extra underscore.
5740
5741         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
5742         * config/i386/winnt.c: Also #include lto-streamer.h
5743         (i386_pe_asm_named_section): Specify 1-byte section alignment for
5744         LTO named sections.
5745         (i386_pe_asm_output_aligned_decl_common): Add comment.
5746         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
5747
5748 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
5749
5750         PR target/43889
5751         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
5752         Add missing earlyclobber for second alternative.
5753
5754 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
5755
5756         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
5757         bits for artificial defs at the top of the block.
5758         * fwprop.c (single_def_use_enter_block): Don't call it.
5759
5760 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
5761
5762         PR 43715
5763         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
5764         instead of "$gcc_cv_objdump -T".
5765         Use "-undefined dynamic_lookup" on darwin.
5766         * gcc/configure: Regenerate.
5767
5768 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
5769
5770         PR c/43893
5771         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
5772
5773 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
5774
5775         * c-parser.c (struct c_token): Move location field up.
5776         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
5777         (struct c_declspecs): Convert typespec_word, storage_class, and
5778         default_int_p into bitfields.
5779         (struct c_declarator): Move loc field up.
5780
5781 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
5782
5783         * cfgloop.h (struct loop): Move can_be_parallel field up.
5784         * ipa-prop.h (struct ip_node_params): Move bitfields up.
5785         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
5786         down.
5787         (struct iv_cand): Convert pos field into a bitfield.
5788         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
5789         field up.
5790         (struct _stmt_vec_info): Shuffle fields for better packing.
5791
5792 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
5793
5794         * varasm.c (IN_NAMED_SECTION): Remove guard.
5795         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
5796         (IN_NAMED_SECTION_P): ...this.
5797         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
5798         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5799
5800 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
5801
5802         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
5803         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
5804         of shadowing it.  Fix comments.
5805
5806 2010-04-26  Jan Hubicka  <jh@suse.cz>
5807
5808         * cgraph.c (cgraph_create_node): Set node frequency to normal.
5809         (cgraph_clone_node): Copy function frequency.
5810         * cgraph.h (node_frequency): New enum
5811         (struct cgraph_node): Add.
5812         * final.c (rest_of_clean_state): Update.
5813         * lto-cgraph.c (lto_output_node): Output node frequency.
5814         (input_overwrite_node): Input node frequency.
5815         * tre-ssa-loop-ivopts (computation_cost): Update.
5816         * lto-streamer-out.c (output_function): Do not output function
5817         frequency.
5818         * predict.c (maybe_hot_frequency_p): Update and handle functions
5819         executed once.
5820         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
5821         attribute lookup.
5822         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
5823         (compute_function_frequency): Set noreturn functions to be executed
5824         once.
5825         (choose_function_section): Update.
5826         * lto-streamer-in.c (input_function): Do not input function frequency.
5827         * function.c (allocate_struct_function): Do not initialize function
5828         frequency.
5829         * function.h (function_frequency): Remove.
5830         (struct function): Remove function frequency.
5831         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
5832         (try_update): Update.
5833         * tree-inline.c (initialize_cfun): Do not update function frequency.
5834         * passes.c (pass_init_dump_file): Update.
5835         * i386.c (ix86_compute_frame_layout): Update.
5836         (ix86_pad_returns): Update.
5837
5838 2010-04-26  Jie Zhang  <jie@codesourcery.com>
5839
5840         PR tree-optimization/43833
5841         * tree-vrp.c (range_int_cst_p): New.
5842         (range_int_cst_singleton_p): New.
5843         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
5844         when both operands are constants.  Use range_int_cst_p in
5845         BIT_IOR_EXPR case.
5846
5847 2010-04-26  Jan Hubicka  <jh@suse.cz>
5848
5849         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
5850
5851 2010-04-26  Richard Guenther  <rguenther@suse.de>
5852
5853         PR lto/43080
5854         * gimple.c (gimple_decl_printable_name): Deal gracefully
5855         with a NULL DECL_NAME.
5856
5857 2010-04-26  Richard Guenther  <rguenther@suse.de>
5858
5859         PR lto/42425
5860         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
5861         if emitting debug information and it is either a function
5862         or a namespace decl.
5863
5864 2010-04-26  Ira Rosen  <irar@il.ibm.com>
5865
5866         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
5867         determine if the statement is vectorizable, and a macro to access it.
5868         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5869         Skip statements that can't be vectorized. If the analysis fails,
5870         mark the statement as unvectorizable if vectorizing basic block.
5871         (vect_compute_data_refs_alignment): Likewise.
5872         (vect_verify_datarefs_alignment): Skip statements marked as
5873         unvectorizable. Add print.
5874         (vect_analyze_group_access): Skip statements that can't be
5875         vectorized. If the analysis fails, mark the statement as
5876         unvectorizable if vectorizing basic block.
5877         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
5878         * tree-vect-stmts.c (vectorizable_store): Fix the number of
5879         generated stmts for SLP.
5880         (new_stmt_vec_info): Initialize the new field.
5881         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
5882         statements marked as unvectorizable.
5883
5884 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
5885
5886         * c-common.c (flag_isoc1x): New.
5887         (flag_isoc99): Update comment.
5888         * c-common.h (flag_isoc1x): New.
5889         (flag_isoc99): Update comment.
5890         * c-cppbuiltin.c (builtin_define_float_constants): Also define
5891         __<type>_DECIMAL_DIG__.
5892         * c-opts.c (set_std_c1x): New.
5893         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
5894         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
5895         * c.opt (-std=c1x, -std=gnu1x): New options.
5896         * doc/cpp.texi: Mention -std=c1x.
5897         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
5898         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
5899         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
5900         * doc/standards.texi: Mention C1X.
5901         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
5902         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
5903         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5904         Define for C1X.
5905
5906 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
5907
5908         * config/i386/gmon-sol2.c (_mcleanup): Change format string
5909         placeholder from 0x%x to %#x.
5910         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
5911         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
5912         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
5913         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
5914         * config/i386/i386.c (ix86_target_string): Ditto.
5915         (output_pic_addr_const): Ditto.
5916         (print_operand): Ditto.
5917
5918 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
5919
5920         * combine.c (find_split_point): Add third argument.  Use it
5921         to find nested multiply-accumulate instructions.  Adjust calls.
5922         (try_combine): Adjust call to find_split_point.
5923
5924 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
5925
5926         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
5927
5928 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
5929
5930         PR tree-optimization/41442
5931         * fold-const.c (merge_truthop_with_opposite_arm): New function.
5932         (fold_binary_loc): Call it.
5933
5934 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5935
5936         * toplev.c (general_init): Set default for fdiagnostics-show-option.
5937         * opts.c (common_handle_option): Allow disabling it.
5938         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
5939
5940 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5941
5942         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
5943         between modes if both types are integral.
5944
5945 2010-04-23  Richard Guenther  <rguenther@suse.de>
5946
5947         PR tree-optimization/43572
5948         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
5949
5950 2010-04-23  Richard Guenther  <rguenther@suse.de>
5951
5952         PR lto/43455
5953         * tree-inline.c (tree_can_inline_p): Also check compatibility
5954         of return types.
5955
5956 2010-04-23  Martin Jambor  <mjambor@suse.cz>
5957
5958         PR tree-optimization/43846
5959         * tree-sra.c (struct access): New flag grp_assignment_read.
5960         (build_accesses_from_assign): Set grp_assignment_read.
5961         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
5962         (enum mark_read_status): New type.
5963         (analyze_access_subtree): Propagate grp_assignment_read, create
5964         accesses also if both direct_read and root->grp_assignment_read.
5965
5966 2010-04-23  Martin Jambor  <mjambor@suse.cz>
5967
5968         PR middle-end/43835
5969         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
5970         function does not have type attributes.
5971
5972 2010-04-23  Richard Guenther  <rguenther@suse.de>
5973
5974         PR lto/42653
5975         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
5976         of FUNCTION_DECLs.
5977
5978 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5979
5980         * sese.h (create_if_region_on_edge): Remove.
5981
5982         * sese.c (create_if_region_on_edge): Make static.
5983
5984         * tree-inline.c: Do not include ggc.h.
5985
5986         * expr.c: Do not include ggc.h.
5987
5988         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
5989         dependencies.
5990
5991 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5992
5993         PR target/43744
5994         * config/sh/sh.c (find_barrier): Don't emit a constant pool
5995         in the middle of insns for casesi_worker_2.
5996
5997 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
5998
5999         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
6000
6001 2010-04-22  Ira Rosen  <irar@il.ibm.com>
6002
6003         PR tree-optimization/43842
6004         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
6005         loop unrolling in update of exit phis. Fix comment.
6006         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
6007         least two reduction statements in the loop before starting SLP
6008         analysis.
6009
6010 2010-04-22  Nick Clifton  <nickc@redhat.com>
6011
6012         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
6013
6014 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
6015
6016         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
6017         to simplify a + ~a.
6018
6019 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6020
6021         * tree-parloops.c (loop_parallel_p): New argument
6022         parloop_obstack.  Pass it down.
6023         (parallelize_loops): New variable parloop_obstack.  Initialize it,
6024         pass it down, free it.
6025
6026         * tree-loop-linear.c (linear_transform_loops): Pass down
6027         lambda_obstack.
6028
6029         * tree-data-ref.h (lambda_compute_access_matrices): New argument
6030         of type struct obstack *.
6031
6032         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
6033         scratch_obstack.  Initialize it, pass down, free it.
6034
6035         * lambda.h (lambda_loop_new): Remove.
6036         (lambda_matrix_new, lambda_matrix_inverse)
6037         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
6038         argument of type struct obstack *.
6039
6040         * lambda-trans.c (lambda_trans_matrix_new): New argument
6041         lambda_obstack.  Pass it down, use obstack allocation for ret.
6042         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
6043         it down.
6044
6045         * lambda-mat.c (lambda_matrix_get_column)
6046         (lambda_matrix_project_to_null): Remove.
6047         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
6048         allocation for mat.
6049         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
6050         lambda_obstack.
6051
6052         * lambda-code.c (lambda_loop_new): New function.
6053         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
6054         (lambda_compute_auxillary_space, lambda_compute_target_space)
6055         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
6056         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
6057         (build_access_matrix): New argument lambda_obstack.  Use obstack
6058         allocation for am.
6059         (lambda_compute_step_signs, lambda_compute_access_matrices): New
6060         argument lambda_obstack.  Pass it down.
6061
6062 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6063
6064         * optabs.h (expand_widening_mult): Declare.
6065
6066 2010-04-22  Richard Guenther  <rguenther@suse.de>
6067
6068         PR tree-optimization/43845
6069         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
6070         lookup the CALL_EXPR function and arguments.
6071
6072 2010-04-22  Nick Clifton  <nickc@redhat.com>
6073
6074         * config/stormy16/stormy16.c
6075         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
6076         * config/stormy16/stormy16.h: Tidy up formatting.
6077         (DONT_USE_BUILTIN_SETJMP): Remove definition.
6078         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
6079         (ineqbranchsi): Delete pattern.
6080         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
6081         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
6082         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6083         stormy16-lib2-ucmpsi2.c.
6084
6085 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6086
6087         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
6088         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
6089         extra set merge_set_noclobber, and use it to relax the final test
6090         slightly.
6091         * df.h (df_simulate_find_noclobber_defs): Declare.
6092         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
6093         conditional defs.
6094         (df_simulate_find_noclobber_defs): New function.
6095
6096 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
6097
6098         * config/i386/i386.md: Use {} around multi-line preparation statements.
6099
6100 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6101
6102         * c-tree.h (push_init_level, pop_init_level, set_init_index)
6103         (process_init_element): New argument of type struct obstack *.
6104
6105         * c-typeck.c (push_init_level, pop_init_level, set_designator)
6106         (set_init_index, set_init_label, set_nonincremental_init)
6107         (set_nonincremental_init_from_string, find_init_member)
6108         (output_init_element, output_pending_init_elements)
6109         (process_init_element): New argument braced_init_obstack.  Pass it
6110         down.
6111         (push_range_stack, add_pending_init): New argument
6112         braced_init_obstack.  Use obstack allocation.
6113
6114         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
6115         braced_init_obstack.  Pass it down.
6116         (c_parser_braced_init): New variables ret, braced_init_obstack.
6117         Initialize obstack, pass it down and finally free it.
6118
6119 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6120
6121         PR middle-end/29274
6122         * tree-pass.h (pass_optimize_widening_mul): Declare.
6123         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
6124         gate_optimize_widening_mul): New static functions.
6125         (pass_optimize_widening_mul): New.
6126         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
6127         <case MULT_EXPR>: Remove support for widening multiplies.
6128         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
6129         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
6130         simplify_gen_unary rather than directly building extensions.
6131         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
6132         WIDEN_MULT_EXPR.
6133         * expmed.c (expand_widening_mult): New function.
6134         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
6135
6136 2010-04-21  Jan Hubicka  <jh@suse.cz>
6137
6138         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
6139         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
6140         * lto-wpa-fixup.c: Remove.
6141         * Makefile.in (lto-wpa-fixup.o): Remove.
6142         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
6143         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
6144         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
6145
6146 2010-04-21  Jan Hubicka  <jh@suse.cz>
6147
6148         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
6149         add write_optimization_summary, read_optimization_summary.
6150         (ipa_write_summaries_of_cgraph_node_set): Remove.
6151         (ipa_write_optimization_summaries): Declare.
6152         (ipa_read_optimization_summaries): Declare.
6153         * ipa-cp.c (pass_ipa_cp): Update.
6154         * ipa-reference.c (pass_ipa_reference): Update.
6155         * ipa-pure-const.c (pass_ipa_pure_const): Update.
6156         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
6157         Update.
6158         * ipa-inline.c (pass_ipa_inline): Update.
6159         * ipa.c (pass_ipa_whole_program): Update.
6160         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
6161         * passes.c (ipa_write_summaries_1): Do not test wpa.
6162         (ipa_write_optimization_summaries_1): New.
6163         (ipa_write_optimization_summaries): New.
6164         (ipa_read_summaries): Do not test ltrans.
6165         (ipa_read_optimization_summaries_1): New.
6166         (ipa_read_optimization_summaries): New.
6167
6168 2010-04-21  Jan Hubicka  <jh@suse.cz>
6169
6170         * lto-cgraph.c (lto_output_node): Do not output comdat groups
6171         for boundary nodes.
6172         (output_cgraph): Do not arrange comdat groups for boundary nodes.
6173
6174 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
6175
6176         PR debug/40040
6177         * dwarf2out.c (add_name_and_src_coords_attributes): Add
6178         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
6179
6180 2010-04-21  Jan Hubicka  <jh@suse.cz>
6181
6182         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
6183
6184 2010-04-21  Jan Hubicka  <jh@suse.cz>
6185
6186         * varpool.c (decide_is_variable_needed): Variable is always needed
6187         during ltrans.
6188
6189 2010-04-21  Jan Hubicka  <jh@suse.cz>
6190
6191         * opts.c (decode_options): Enable pure-const pass for whopr.
6192
6193 2010-04-21  Jan Hubicka  <jh@suse.cz>
6194
6195         * cgraph.c (dump_cgraph_node): Dump also assembler name.
6196         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
6197         at WPA dumping.
6198         (cgraph_decide_inlining): Do not expect callee to be removed in all
6199         cases.
6200
6201 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
6202
6203         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
6204
6205 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
6206
6207         * config/i386/i386.md (x86_shrd): Add athlon_decode and
6208         amdfam10_decode attributes.
6209
6210 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
6211
6212         PR middle-end/43570
6213         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
6214         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
6215         (lower_copyprivate_clauses): Use private var in outer
6216         context instead of original var.  Make sure the types
6217         are correct for VLAs.
6218
6219 2010-04-21  Richard Guenther  <rguenther@suse.de>
6220
6221         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
6222         to non-pointer objects.
6223
6224 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
6225
6226         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
6227         last chain entry if it starts with the still current label.
6228         (add_location_or_const_value_attribute): Check that
6229         loc_list->first->next is NULL instead of comparing ->first with ->last.
6230         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
6231         to add_var_loc_to_decl.
6232
6233         * dwarf2out.c (output_call_frame_info): For dw_cie_version
6234         >= 4 add also address size and segment size fields into CIE header.
6235
6236         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
6237         long as address size is the same as sizeof (void *) and
6238         segment size is 0.
6239         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
6240         address size or segment size is unexpected, return DW_EH_PE_omit.
6241         (classify_object_over_fdes): If get_cie_encoding returned
6242         DW_EH_PE_omit, return -1.
6243         (init_object): If classify_object_over_fdes returned -1,
6244         pretend there were no FDEs at all.
6245
6246 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
6247
6248         * config/i386/i386.md (bswap<mode>2): Macroize expander from
6249         bswap{si,di}2 using SWI48 mode iterator.
6250         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
6251         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
6252         set modrm attribute of bswap insn to 0 and remove length attribute.
6253         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
6254         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
6255         set mode attribute to <MODE> and remove length attribute.
6256
6257 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
6258
6259         PR rtl-optimization/43520
6260         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
6261         zero available registers.
6262
6263 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6264
6265         * builtins.c (fold_builtin_cproj): Fold more cases.
6266
6267 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6268
6269         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
6270         (fold_builtin_1): Fold builtin cproj.
6271         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
6272         Use ATTR_CONST_NOTHROW_LIST.
6273
6274 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
6275
6276         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
6277         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
6278         ffsi2_no_cmove for !TARGET_CMOVE.
6279         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
6280         (ffssi2): Remove expander.
6281         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
6282         mode iterator.
6283         (ctz<mode>2): Ditto from ctz{si,di}2.
6284         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
6285         mode iterator.
6286         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
6287         mode iterator.
6288
6289 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
6290
6291         * dwarf2out.c (AT_linkage_name): Define.
6292         (clone_as_declaration): Handle DW_AT_linkage_name.
6293         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
6294         of DW_AT_MIPS_linkage_name.
6295         (move_linkage_attr): Likewise.
6296         (dwarf2out_finish): Likewise.
6297
6298 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
6299
6300         PR middle-end/41952
6301         * fold-const.c (fold_comparison): New folding rule.
6302
6303 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
6304
6305         * double-int.h (double_int_setbit): Declare.
6306         * double-int.c (double_int_setbit): New function.
6307         * rtl.h (immed_double_int_const): Declare.
6308         * emit-rtl.c (immed_double_int_const): New function.
6309         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
6310         and immed_double_int_const functions.
6311         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
6312         expand_copysign_bit):  (Ditto.).
6313         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
6314         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
6315         * dojump.c (prefer_and_bit_test): (Ditto.).
6316         * expr.c (convert_modes, reduce_to_bit_field_precision,
6317         const_vector_from_tree): (Ditto.).
6318         * expmed.c (mask_rtx, lshift_value): (Ditto.).
6319
6320 2010-04-20  Jan Hubicka  <jh@suse.cz>
6321
6322         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
6323         (dump_cgraph_node): Dump new flags.
6324         * cgraph.h (struct cgraph_node): Add flags
6325         reachable_from_other_partition and in_other_partition.
6326         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
6327         other partition can not be removed.
6328         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
6329         the other partition must be output; silence sanity checking on
6330         leaking functions bodies from other paritition.
6331         * lto-cgraph.c (reachable_from_other_partition_p): New function.
6332         (lto_output_node): Output new flags; do not sanity check that inline
6333         clones are output; drop lto_forced_extern_inline_p code; do not mock
6334         visibility flags at partition boundaries.
6335         (add_node_to): New function.
6336         (output_cgraph): Use it to sort functions so masters appear before
6337         clones.
6338         (input_overwrite_node): Input new flags.
6339         * passes.c (ipa_write_summaries): Do not call
6340         lto_new_extern_inline_states.
6341         * lto-section-out.c (forced_extern_inline,
6342         lto_new_extern_inline_states lto_delete_extern_inline_states,
6343         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
6344         * lto-streamer.h (lto_new_extern_inline_states,
6345         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
6346         lto_forced_extern_inline_p): Kill.
6347
6348 2010-04-20  Richard Guenther  <rguenther@suse.de>
6349
6350         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
6351         from vars that can have pointers.
6352         (process_constraint): Dump useless constraints.
6353
6354 2010-04-20  Richard Guenther  <rguenther@suse.de>
6355
6356         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
6357         (dump_sa_points_to_info): Remove asserts.
6358         (init_base_vars): nothing_id isn't an escape point nor does it
6359         have pointers.
6360
6361 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
6362
6363         * tree.h (TYPE_REF_IS_RVALUE): Define.
6364         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
6365         should_move_die_to_comdat, prune_unused_types_walk): Handle
6366         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
6367         (modified_type_die, gen_reference_type_die): Emit
6368         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
6369         if TYPE_REF_IS_RVALUE and -gdwarf-4.
6370
6371 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6372
6373         PR target/43635
6374         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
6375         calls for -fpic -m31 if they have been sibcall optimized.
6376
6377 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
6378
6379         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
6380         ar.lc fixed and call-used.
6381
6382         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
6383
6384 2010-04-19  Jan Hubicka  <jh@suse.cz>
6385
6386         * opts.c (decode_options): Disable whpr incompatible passes.
6387         * lto/lto.c (lto_1_to_1_map): Skip clones.
6388         (read_cgraph_and_symbols): Do not mark everything as needed.
6389         (do_whole_program_analysis): Do map only after optimizing;
6390         set proper cgraph_state; use passmanager.
6391
6392 2010-04-19  DJ Delorie  <dj@redhat.com>
6393
6394         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
6395         POINTER_PLUS_EXPR and fix them.
6396
6397 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
6398
6399         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
6400         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
6401         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
6402         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
6403         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
6404         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
6405         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
6406         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
6407         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
6408         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
6409         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
6410
6411 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6412
6413         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
6414         (check_cond_move_block): Likewise.
6415         (cond_move_process_if_block): Likewise.
6416         (noce_find_if_block): Improve formatting.
6417         (find_if_header): Pass 0 to memset and tweak conditions.
6418         (cond_exec_find_if_block): Fix long lines and tweak conditions.
6419
6420 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
6421
6422         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
6423         for -gdwarf-4.
6424
6425         PR middle-end/43337
6426         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
6427         with non-local decl doesn't need chain.
6428
6429 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
6430
6431         * ira-color.c (allocno_reload_assign): Avoid accumulating
6432         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
6433
6434 2010-04-19  Martin Jambor  <mjambor@suse.cz>
6435
6436         * gimple.h (create_tmp_reg): Declare.
6437         * gimplify.c (create_tmp_reg): New function.
6438         (gimplify_return_expr): Use create_tmp_reg.
6439         (gimplify_omp_atomic): Likewise.
6440         (gimple_regimplify_operands): Likewise.
6441         * tree-dfa.c (make_rename_temp): Likewise.
6442         * tree-predcom.c (predcom_tmp_var): Likewise.
6443         (reassociate_to_the_same_stmt): Likewise.
6444         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
6445         (get_replaced_param_substitute): Likewise.
6446         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
6447         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
6448         * tree-ssa-pre.c (get_representative_for): Likewise.
6449         (create_expression_by_pieces): Likewise.
6450         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
6451         (create_tailcall_accumulator): Likewise.
6452
6453 2010-04-19  Martin Jambor  <mjambor@suse.cz>
6454
6455         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
6456         new_stmt.
6457         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
6458
6459 2010-04-19  Richard Guenther  <rguenther@suse.de>
6460
6461         PR tree-optimization/43796
6462         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
6463         from SCEV in the lattice.
6464         (vrp_visit_phi_node): Dump change.
6465
6466 2010-04-19  Richard Guenther  <rguenther@suse.de>
6467
6468         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
6469         * configure: Re-generated.
6470
6471 2010-04-19  Richard Guenther  <rguenther@suse.de>
6472
6473         PR tree-optimization/43783
6474         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
6475         constant ARRAY_REF operands two and three if possible.
6476
6477 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
6478
6479         PR target/43766
6480         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
6481
6482 2010-04-19  Jie Zhang  <jie@codesourcery.com>
6483
6484         PR target/43662
6485         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
6486
6487 2010-04-19  Ira Rosen  <irar@il.ibm.com>
6488
6489         PR tree-optimization/37027
6490         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
6491         and macro to access it.
6492         (vectorizable_reduction): Add argument.
6493         (vect_get_slp_defs): Likewise.
6494         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
6495         statements for possible use in SLP.
6496         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
6497         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
6498         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
6499         add new argument.
6500         (vectorizable_reduction): Likewise.
6501         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
6502         vect_get_slp_defs.
6503         (vectorizable_type_demotion, vectorizable_type_promotion,
6504         vectorizable_store): Likewise.
6505         (vect_analyze_stmt): Update call to vectorizable_reduction.
6506         (vect_transform_stmt): Likewise.
6507         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
6508         (vect_build_slp_tree): Fix indentation. Check that there are no loads
6509         from different interleaving chains in same node.
6510         (vect_slp_rearrange_stmts): New function.
6511         (vect_supported_load_permutation_p): Allow load permutations for
6512         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
6513         inside SLP nodes if necessary.
6514         (vect_analyze_slp_instance): Handle reductions.
6515         (vect_analyze_slp): Try to build SLP instances originating from groups
6516         of reductions.
6517         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
6518         (vect_get_constant_vectors): Create initial vectors for reductions
6519         according to reduction code. Add new argument.
6520         (vect_get_slp_defs): Add new argument, pass it to
6521         vect_get_constant_vectors.
6522         (vect_schedule_slp_instance): Remove SLP tree root statements.
6523
6524 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
6525
6526         * tree.h (ENUM_IS_SCOPED): Define.
6527         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
6528         for ENUM_IS_SCOPED enums.
6529
6530 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
6531
6532         * fold-const.c (fold_comparison): Use ssizetype.
6533         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
6534         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
6535         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
6536         * tree-object-size.c (compute_object_sizes): Use size_type_node.
6537
6538         * tree.h (initialize_sizetypes): Remove parameter.
6539         (build_common_tree_nodes): Remove second parameter.
6540         * stor-layout.c (initialize_sizetypes): Remove parameter.
6541         Always create an unsigned type.
6542         (set_sizetype): Assert that the passed type is unsigned and simplify.
6543         * tree.c (build_common_tree_nodes): Remove second parameter.
6544         Adjust call to initialize_sizetypes.
6545         * c-decl.c (c_init_decl_processing): Remove second argument in call to
6546         build_common_tree_nodes.
6547
6548 2010-04-18  Matthias Klose  <doko@ubuntu.com>
6549
6550         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
6551
6552 2010-04-18  Ira Rosen  <irar@il.ibm.com>
6553
6554         PR tree-optimization/43771
6555         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
6556         load permutation doesn't have gaps.
6557
6558 2010-04-18  Jan Hubicka  <jh@suse.cz>
6559
6560         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
6561         (sse_prologue_save_insn expander): Use new pattern.
6562         (sse_prologue_save_insn1): New pattern and splitter.
6563         (sse_prologue_save_insn): Update to deal also with 64bit aligned
6564         blocks.
6565         * i386.c (setup_incoming_varargs_64): Do not compute jump
6566         destination here.
6567         (ix86_gimplify_va_arg): Update alignment needed.
6568         (ix86_local_alignment): Do not align all local arrays to 128bit.
6569
6570 2010-04-17  Jan Hubicka  <jh@suse.cz>
6571
6572         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
6573
6574 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
6575
6576         * arm.md (negdi2): Remove redundant code to force values into a
6577         register.
6578
6579 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
6580
6581         * arm/bpabi.S: Add EABI alignment attributes to objects.
6582         * arm/bpabi-v6m.S: Likewise.
6583         * arm/crti.asm: Likewise.
6584         * arm/crtn.asm: Likewise.
6585         * arm/lib1funcs.asm: Likewise.
6586         * arm/libunwind.S: Likewise.
6587
6588 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
6589
6590         * arm-protos.h (tune_params): New structure.
6591         * arm.c (current_tune): New variable.
6592         (arm_constant_limit): Delete.
6593         (struct processors): Add pointer to the tune parameters.
6594         (arm_slowmul_tune): New tuning option.
6595         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
6596         (all_cores): Adjust to pick up the tuning model.
6597         (arm_constant_limit): New function.
6598         (arm_override_options): Select the appropriate tuning model.  Delete
6599         initialization of arm_const_limit.
6600         (arm_split_constant): Use the new constant-limit model.
6601         (arm_rtx_costs): Pick up the current tuning model.
6602         * arm.md (is_strongarm, is_xscale): Delete.
6603         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
6604         for Xscale variant architectures.
6605         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
6606
6607 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6608
6609         * config/arm/arm.c (arm_gen_constant): Remove unused variable
6610         can_shift.
6611         (arm_rtx_costs_1): Remove unused variable extra_cost.
6612         (arm_unwind_emit_set): Use variable offset.
6613         (thumb1_output_casesi): Remove unused variable flags.
6614
6615 2010-04-16  Jeff Law  <law@redhat.com>
6616
6617         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
6618         needing assignment rather than doing a two-phase assignment.  Remove
6619         unused variable 'm'.
6620
6621 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
6622
6623         PR bootstrap/43767
6624         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
6625
6626 2010-04-16  Doug Kwan  <dougkwan@google.com>
6627
6628         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
6629         (next_operand_entry_id): New static variable.
6630         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
6631         (add_to_ops_vec): Assigned unique ID to operand entry.
6632         (struct oecount_s): New field ID.
6633         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
6634         (undistribute_ops_list): Assign unique IDs to oecounts.
6635         (init_reassoc): reset next_operand_entry_id.
6636
6637 2010-04-16  Doug Kwan  <dougkwan@google.com>
6638
6639         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
6640         missing left parenthesis.
6641
6642 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
6643
6644         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
6645         *btdi_rex64 using SWI48 mode iterator.
6646         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
6647         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
6648         *jcc_btdi_mask_rex64.
6649
6650 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
6651
6652         * double-int.h (tree_to_double_int): Convert to macro.
6653         * double-int.c (tree_to_double_int): Remove.
6654
6655 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
6656
6657         PR debug/43762
6658         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
6659         with want_address 2 and in case a single element list might be
6660         possible, call it again with want_address 0.
6661
6662 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
6663
6664         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
6665         case 'W' print operands for HI mode.
6666         * config/h8300/h8300.h (Y0, Y2) : New constraints.
6667         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
6668         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
6669         * config/h8300/predicate.md (bit_register_indirect_operand): New.
6670
6671         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
6672
6673         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
6674         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
6675         #xx:3 and #xx:4 mode.
6676
6677         * config/h8300/h8300.md (inverted load with HImode dest): Add
6678         support for H8300SX.
6679
6680         * config/h8300/predicate.md (bit_operand): Allow immediate values that
6681         satisfy 'U' constraint.
6682
6683 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6684
6685         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
6686         * configure: Regenerate.
6687         * config.in: Regenerate.
6688         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
6689         works.
6690
6691 2010-04-16  Richard Guenther  <rguenther@suse.de>
6692
6693         * tree.h (struct tree_decl_minimal): Move pt_uid ...
6694         (struct tree_decl_common): ... here.
6695         (DECL_PT_UID): Adjust.
6696         (SET_DECL_PT_UID): Likewise.
6697         (DECL_PT_UID_SET_P): Likewise.
6698
6699 2010-04-16  Richard Guenther  <rguenther@suse.de>
6700
6701         PR tree-optimization/43572
6702         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
6703         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
6704         * tree-flow.h (is_call_clobbered): Remove.
6705         * tree-flow-inline.h (is_call_clobbered): Likewise.
6706         * tree-dfa.c (dump_variable): Do not dump call clobber state.
6707         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
6708         (execute_return_slot_opt): Adjust.
6709         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
6710         check for call clobbered vars here.
6711         (find_tail_calls): Move tailcall verification to the
6712         proper place.
6713
6714 2010-04-16  Diego Novillo  <dnovillo@google.com>
6715
6716         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
6717
6718 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
6719
6720         PR target/40603
6721         * config/arm/arm.md (cbranchqi4): New pattern.
6722         * config/arm/predicates.md (const0_operand,
6723         cbranchqi4_comparison_operator): New predicates.
6724
6725 2010-04-16  Richard Guenther  <rguenther@suse.de>
6726
6727         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
6728         (dump_gimple_stmt): Likewise.
6729
6730 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
6731
6732         * recog.h (struct recog_data): New field is_operator.
6733         (struct insn_operand_data): New field is_operator.
6734         * recog.c (extract_insn): Set recog_data.is_operator.
6735         * genoutput.c (output_operand_data): Emit code to set the
6736         is_operator field.
6737         * reload.c (find_reloads): Use it rather than testing for an
6738         empty constraint string.
6739
6740         PR target/41514
6741         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
6742         If the previous insn is a cbranchsi4_insn with the same arguments,
6743         omit the compare instruction.
6744
6745         * config/arm/arm.md (addsi3_cbranch): If destination is a high
6746         register, inputs must be low registers and we need a low register
6747         scratch.  Handle alternative 2 like alternative 3.
6748
6749 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
6750
6751         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
6752         don't call get_addr on both.  If one expression is a VALUE and
6753         the other a REG, check VALUE's locs if the REG isn't among them.
6754
6755 2010-04-16  Christian Bruel  <christian.bruel@st.com>
6756
6757         * config/sh/sh.h (sh_frame_pointer_required): New function.
6758         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
6759         (flag_omit_frame_pointer) Set.
6760         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
6761         (rounded_frame_size): Adjust size with outgoing_args_size.
6762         (sh_set_return_address): Must return from stack pointer.
6763         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
6764         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
6765         (ACCUMULATE_OUTGOING_ARGS): Define.
6766         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
6767         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
6768
6769 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
6770
6771         PR target/43471
6772         * config/sh/sh.c (sh_legitimize_reload_address): Use
6773         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
6774         Remove a unneeded check for offset_base.
6775
6776 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
6777
6778         * configure: Regenerated.
6779
6780 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6781
6782         * config/s390/s390.c (s390_call_save_register_used): Switch back
6783         to HARD_REGNO_NREGS.
6784
6785 2010-04-15  Richard Guenther  <rguenther@suse.de>
6786
6787         * alias.c (alias_set_subset_of): Handle alias-set zero
6788         child properly.
6789
6790 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
6791             Julian Brown  <julian@codesourcery.com>
6792
6793         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
6794         alternatives according to use of high and low regs.
6795         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
6796         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
6797         optimizing for size on Thumb-2.
6798
6799 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
6800
6801         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
6802
6803 2010-04-15  Richard Guenther  <rguenther@suse.de>
6804
6805         * tree-ssa-structalias.c (struct variable_info): Add
6806         is_fn_info flag.
6807         (new_var_info): Initialize it.
6808         (dump_constraints): Support printing last added constraints.
6809         (debug_constraints): Adjust.
6810         (dump_constraint_graph): Likewise.
6811         (make_heapvar_for): Check for NULL cfun.
6812         (get_function_part_constraint): New function.
6813         (get_fi_for_callee): Likewise.
6814         (find_func_aliases): Properly implement IPA PTA constraints.
6815         (process_ipa_clobber): New function.
6816         (find_func_clobbers): Likewise.
6817         (insert_into_field_list_sorted): Remove.
6818         (create_function_info_for): Properly allocate vars for IPA mode.
6819         Do not use insert_into_field_list_sorted.
6820         (create_variable_info_for): Properly generate constraints for
6821         global vars in IPA mode.
6822         (dump_solution_for_var): Always dump the solution.
6823         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
6824         (find_what_var_points_to): Adjust.
6825         (pt_solution_set): Change.
6826         (pt_solution_ior_into): New function.
6827         (pt_solution_empty_p): Export.
6828         (pt_solution_includes_global): Adjust.
6829         (pt_solution_includes_1): Likewise.
6830         (pt_solutions_intersect_1): Likewise.
6831         (dump_sa_points_to_info): Check some invariants.
6832         (solve_constraints): Move constraint dumping ...
6833         (compute_points_to_sets): ... here.
6834         (ipa_pta_execute): ... and here.
6835         (compute_may_aliases): Do not re-compute points-to info
6836         locally if IPA info is available.
6837         (ipa_escaped_pt): New global var.
6838         (ipa_pta_execute): Properly implement IPA PTA.
6839         * tree-into-ssa.c (dump_decl_set): Support dumping
6840         decls not in referenced-vars.
6841         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
6842         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
6843         (dump_points_to_solution): Likewise.
6844         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
6845         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
6846         (remap_gimple_stmt): Reset call clobber/use information if necessary.
6847         (copy_decl_to_var): Copy DECL_PT_UID.
6848         (copy_result_decl_to_var): Likewise.
6849         * tree.c (make_node_stat): Initialize DECL_PT_UID.
6850         (copy_node_stat): Copy it.
6851         * tree.h (DECL_PT_UID): New macro.
6852         (SET_DECL_PT_UID): Likewise.
6853         (DECL_PT_UID_SET_P): Likewise.
6854         (struct tree_decl_minimal): Add pt_uid member.
6855         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
6856         (pt_solution_empty_p): Declare.
6857         (pt_solution_set): Adjust.
6858         (ipa_escaped_pt): Declare.
6859         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
6860         * gimple-pretty-print.c (pp_points_to_solution): New function.
6861         (dump_gimple_call): Dump call clobber/use information.
6862         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
6863         * tree-pass.h (TDF_ALIAS): New dump option.
6864         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
6865         * doc/invoke.texi (-fipa-pta): Update documentation.
6866
6867 2010-04-15  Richard Guenther  <rguenther@suse.de>
6868
6869         * Makefile.in (OBJS-common): Add gimple-fold.o.
6870         (gimple-fold.o): New rule.
6871         * tree.h (maybe_fold_offset_to_reference,
6872         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
6873         prototypes ...
6874         * gimple.h: ... here.
6875         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
6876         may_propagate_address_into_dereference): Move prototypes ...
6877         * gimple.h: ... here.
6878         * tree-ssa-ccp.c (get_symbol_constant_value,
6879         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
6880         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
6881         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
6882         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
6883         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
6884         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
6885         gimplify_and_update_call_from_tree): Move ...
6886         * gimple-fold.c: ... here.  New file.
6887         (ccp_fold_builtin): Rename to ...
6888         (gimple_fold_builtin): ... this.
6889         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
6890
6891 2010-04-15  Richard Guenther  <rguenther@suse.de>
6892
6893         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
6894         fit_double_type, force_fit_type_double, add_double_with_sign,
6895         neg_double, mul_double_with_sign, lshift_double, rshift_double,
6896         lrotate_double, rrotate_double, div_and_round_double): Move ...
6897         * double-int.c: ... here.
6898         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
6899         add_double, neg_double, mul_double_with_sign, mul_double,
6900         lshift_double, rshift_double, lrotate_double, rrotate_double,
6901         div_and_round_double): Move prototypes ...
6902         * double-int.h: ... here.
6903
6904 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
6905
6906         PR target/43742
6907         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
6908         matching constraints to ensure inputs match the output.
6909
6910 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
6911
6912         PR target/43742
6913         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
6914         in an input-only operand.
6915
6916 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
6917
6918         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
6919         (double_int_not, double_int_lshift, double_int_rshift): Declare.
6920         (double_int_negative_p): Convert to static inline function.
6921         * double-int.c (double_int_lshift, double_int_lshift): New functions.
6922         (double_int_negative_p): Remove.
6923         * tree.h (lshift_double, rshift_double):
6924         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
6925         * fold-const.c (fold_convert_const_int_from_real,
6926         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
6927         (lshift_double): Change type of arith argument to bool.
6928         (rshift_double): Change type of arith argument to bool. Correct
6929         comment.
6930         * expmed.c (mask_rtx, lshift_value): (Ditto.).
6931
6932 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
6933
6934         PR target/21803
6935         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
6936         at the start and end of the then/else blocks, and omit them from the
6937         conversion.
6938         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
6939         argument; all callers changed.  Pass zero to old_insns_match_p instead.
6940         (flow_find_head_matching_sequence): New function.
6941         (old_insns_match_p): Check REG_EH_REGION notes for calls.
6942         * basic-block.h (flow_find_cross_jump,
6943         flow_find_head_matching_sequence): Declare functions.
6944
6945 2010-04-14  Jason Merrill  <jason@redhat.com>
6946
6947         PR c++/36625
6948         * c-common.c (attribute_takes_identifier_p): New fn.
6949         * c-common.h: Declare it.
6950
6951 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6952
6953         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
6954         splitter condition.
6955         (*udivmod<mode>4): Ditto.
6956
6957 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6958
6959         * config/i386/i386.md (maxmin_int): Rename code attribute from
6960         maxminiprefix and update all users.
6961         (maxmin_float): Ditto from maxminfprefix.
6962         (logic): Ditto from logicprefix.
6963         (absneg_mnemonic): Ditto from absnegprefix.
6964         * config/i386/mmx.md: Update all users of maxminiprefix,
6965         maxminfprefix and logicprefix for rename.
6966         * config/i386/sse.md: Ditto.
6967         * config/i386/sync.md (sync_<code><mode>): Update for
6968         logicprefix rename.
6969
6970 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6971
6972         PR 42966
6973         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
6974         warnings converted to errors.
6975
6976 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6977
6978         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
6979         used insn_type variable.
6980         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
6981         to avoid set-but-not-used warning.
6982
6983 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
6984
6985         * df-core.c (df_ref_debug): Change format string placeholder
6986         from 0x%x to %#x.
6987         * dwarf2asm.c (dw2_asm_output_data_raw,
6988         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
6989         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
6990         * dwarf2out.c (output_cfi, output_cfi_directive,
6991         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
6992         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
6993         Ditto.
6994         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
6995         * print-rtl.c (print_rtx): Ditto.
6996
6997 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6998
6999         PR middle-end/42694
7000         * builtins.c (expand_builtin_pow_root): New function to expand pow
7001         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
7002         series of sqrt and cbrt calls under -ffast-math.
7003         (expand_builtin_pow): Call it.
7004
7005 2010-04-14  Michael Matz  <matz@suse.de>
7006
7007         PR tree-optimization/42963
7008         * tree-cfg.c (touched_switch_bbs): New static variable.
7009         (group_case_labels_stmt): New function broken out from ...
7010         (group_case_labels): ... here, use the above.
7011         (start_recording_case_labels): Allocate touched_switch_bbs.
7012         (end_recording_case_labels): Deallocate it, call
7013         group_case_labels_stmt.
7014         (gimple_redirect_edge_and_branch): Remember index of affected BB.
7015
7016 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7017
7018         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
7019         from insn template.
7020
7021 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7022
7023         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
7024
7025 2010-04-13  Jan Hubicka  <jh@suse.cz>
7026
7027         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
7028         of optimized out static functions.
7029         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
7030         cost computation.  Also sanity check for overflows.
7031         (update_caller_keys): Update cgraph_edge_badness call; properly
7032         update fibheap and sanity check that it is up to date.
7033         (add_new_edges_to_heap): Update cgraph_edge_badness.
7034         (cgraph_decide_inlining_of_small_function): Likewise;
7035         add sanity checking that badness in heap is up to date;
7036         improve dumping of reason; Update badness of calls to the
7037         offline copy of function currently inlined; dump badness
7038         of functions not inlined because of unit growth limits.
7039
7040 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
7041
7042         PR middle-end/32628
7043         * c-common.c (pointer_int_sum): Disregard overflow that occured only
7044         because of sign-extension change when converting to sizetype here...
7045         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
7046
7047         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
7048         the folding to constants.  Remove redundant final conversion.
7049         (fold_binary) <associate>: Do not associate if the re-association of
7050         constants alone overflows.
7051         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
7052         to the end of the list.
7053         (multiple_of_p) <COND_EXPR>: New case.
7054
7055 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7056
7057         * opt-functions.awk (opt_sanitized_name): New.
7058         (opt_enum): New.
7059         * optc-gen.awk: Use it
7060         * opth-gen.awk: Use it.
7061
7062 2010-04-13  Martin Jambor  <mjambor@suse.cz>
7063
7064         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
7065         (sra_modify_assign): Delete stmts loading dead data even if racc has no
7066         children.  Call replace_uses_with_default_def_ssa_name to handle
7067         SSA_NAES on lhs.
7068
7069 2010-04-13  Michael Matz  <matz@suse.de>
7070
7071         PR middle-end/43730
7072         * builtins.c (expand_builtin_interclass_mathfn): Also create
7073         a register if the predicate doesn't match.
7074
7075 2010-04-13  Diego Novillo  <dnovillo@google.com>
7076
7077         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
7078         * c-pch.c: Include timevar.h.
7079         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
7080         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
7081         * ggc-common.c: Include timevar.h.
7082         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
7083         * timevar.def (TV_PCH_SAVE): Define.
7084         (TV_PCH_CPP_SAVE): Define.
7085         (TV_PCH_PTR_REALLOC): Define.
7086         (TV_PCH_PTR_SORT): Define.
7087         (TV_PCH_RESTORE): Define.
7088         (TV_PCH_CPP_RESTORE): Define.
7089
7090 2010-04-13  Michael Matz  <matz@suse.de>
7091
7092         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
7093         into MINUS_EXPRs.
7094         (can_reassociate_p): New function.
7095         (break_up_subtract_bb, reassociate_bb): Use it.
7096
7097 2010-04-13  Richard Guenther  <rguenther@suse.de>
7098
7099         PR bootstrap/43737
7100         * builtins.c (c_readstr): Fix assert.
7101
7102 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
7103
7104         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
7105         when generating cltd insn.
7106
7107         (*ashl<mode>3_1): Remove special handling for register operand 2.
7108         (*ashlsi3_1_zext): Ditto.
7109         (*ashlhi3_1): Ditto.
7110         (*ashlhi3_1_lea): Ditto.
7111         (*ashlqi3_1): Ditto.
7112         (*ashlqi3_1_lea): Ditto.
7113         (*<shiftrt_insn><mode>3_1): Ditto.
7114         (*<shiftrt_insn>si3_1_zext): Ditto.
7115         (*<shiftrt_insn>qi3_1_slp): Ditto.
7116         (*<rotate_insn><mode>3_1): Ditto.
7117         (*<rotate_insn>si3_1_zext): Ditto.
7118         (*<rotate_insn>qi3_1_slp): Ditto.
7119
7120 2010-04-13  Richard Guenther  <rguenther@suse.de>
7121
7122         * tree-ssa-structalias.c (callused_id): Remove.
7123         (call_stmt_vars): New.
7124         (get_call_vi): Likewise.
7125         (lookup_call_use_vi): Likewise.
7126         (lookup_call_clobber_vi): Likewise.
7127         (get_call_use_vi): Likewise.
7128         (get_call_clobber_vi): Likewise.
7129         (make_transitive_closure_constraints): Likewise.
7130         (handle_const_call): Adjust to do per-call call-used handling.
7131         (handle_pure_call): Likewise.
7132         (find_what_var_points_to): Remove general callused handling.
7133         (init_base_vars): Likewise.
7134         (init_alias_vars): Initialize call_stmt_vars.
7135         (compute_points_to_sets): Process call-used and call-clobbered
7136         vars for call statements.
7137         (delete_points_to_sets): Free call_stmt_vars.
7138
7139 2010-04-13  Richard Guenther  <rguenther@suse.de>
7140
7141         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7142         Only add RW dependence for dependence distance zero.
7143         Adjust maximal vectorization factor according to dependences.
7144         Move alignment handling ...
7145         (vect_find_same_alignment_drs): ... here.  New function.
7146         (vect_analyze_data_ref_dependences): Adjust.
7147         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
7148         (vect_analyze_data_refs): Adjust minimal vectorization factor
7149         according to data references.
7150         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
7151         dependences before determining the vectorization factor.
7152         Analyze alignment after determining the vectorization factor.
7153         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
7154         dependences before alignment.
7155         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
7156         Adjust prototype.
7157         (vect_analyze_data_refs): Likewise.
7158         (MAX_VECTORIZATION_FACTOR): New define.
7159
7160 2010-04-13  Duncan Sands  <baldrick@free.fr>
7161
7162         * except.h (lang_eh_type_covers): Remove.
7163         * except.c (lang_eh_type_covers): Likewise.
7164
7165 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7166             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7167
7168         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
7169         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
7170         UNITS_PER_LONG where it is ABI relevant.
7171         (s390_return_addr_rtx): Likewise.
7172         (s390_back_chain_rtx): Likewise.
7173         (s390_frame_area): Likewise.
7174         (s390_frame_info): Likewise.
7175         (s390_initial_elimination_offset): Likewise.
7176         (save_gprs): Likewise.
7177         (s390_emit_prologue): Likewise.
7178         (s390_emit_epilogue): Likewise.
7179         (s390_function_arg_advance): Likewise.
7180         (s390_function_arg): Likewise.
7181         (s390_va_start): Likewise.
7182         (s390_gimplify_va_arg): Likewise.
7183         (s390_function_profiler): Likewise.
7184         (s390_optimize_prologue): Likewise.
7185         (s390_rtx_costs): Likewise.
7186         (s390_secondary_reload): Likewise.
7187         (s390_promote_function_mode): Likewise.
7188         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
7189         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
7190         registers available.
7191         (s390_unwind_word_mode): New function.
7192         (s390_function_value): Split 64 bit values into register pair if
7193         used as return value.
7194         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
7195         function call parameters.  Handle parallels.
7196         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
7197         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
7198         (DWARF_CIE_DATA_ALIGNMENT): New macro.
7199         (s390_expand_setmem): Remove unused variable src_addr.
7200         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
7201         deal with 64 bit registers.
7202         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
7203         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
7204         (UNITS_PER_LONG): New macro.
7205         * libjava/include/s390-signal.h: Define extended ucontext
7206         structure containing the upper halfs of the 64 bit registers.
7207
7208 2010-04-13  Simon Baldwin  <simonb@google.com>
7209
7210         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
7211
7212 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
7213
7214         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
7215         rvalue on the RHS if the LHS is of a non-renamable type.
7216         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
7217
7218 2010-04-13  Matthias Klose  <doko@ubuntu.com>
7219
7220         * gcc.c (cc1_options): Handle -iplugindir before processing
7221         the cc1 spec. Only add -iplugindir once.
7222         (cpp_unique_options): Add -iplugindir option if -fplugin* options
7223         found.
7224         * common.opt (iplugindir): Remove `Separate' property, initialize.
7225         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
7226         option.
7227         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
7228         (distclean): Remove plugin dir.
7229         * doc/invoke.texi: Document -iplugindir.
7230
7231 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
7232
7233         * doc/plugins.texi (Loading Plugins): Document short
7234         -fplugin=foo option.
7235         (Plugin API): Mention default_plugin_dir_name function.
7236
7237         * gcc.c (find_file_spec_function): Add new declaration.
7238         (static_spec_func): Use it for "find-file".
7239         (find_file_spec_function): Add new function.
7240         (cc1_options): Add -iplugindir option if -fplugin* options found.
7241
7242         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
7243
7244         * plugin.c (add_new_plugin): Updated comment, and handle short
7245         plugin name.
7246         (default_plugin_dir_name): Added new function.
7247
7248         * common.opt (iplugindir): New option to set the plugin directory.
7249
7250 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
7251
7252         * config/i386/i386.md (any_rotate): New code iterator.
7253         (rotate_insn): New code attribute.
7254         (rotate): Ditto.
7255         (SWIM124): New mode iterator.
7256         (<rotate_insn>ti3): New expander.
7257         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
7258         any_rotate code iterator.
7259         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
7260         using any_rotate code iterator and SWIM124 mode iterator.
7261         (ix86_rotlti3): New insn_and_split pattern.
7262         (ix86_rotrti3): Ditto.
7263         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
7264         ix86_rotl{di,ti}3 patterns.
7265         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
7266         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
7267         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
7268         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
7269         code iterator and SWI mode iterator.
7270         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
7271         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
7272         code iterator.
7273         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
7274         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
7275         (bswap rotatert splitter): Add splitter.
7276         (bswap splitter): Macroize splitter using any_rotate code iterator.
7277         Add insn predicate to split only for TARGET_USE_XCHGB or when
7278         optimizing function for size.
7279
7280 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
7281
7282         * config/pa/pa.c (emit_move_sequence): Remove use of
7283         deleted variable flag_argument_noalias.
7284
7285 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7286
7287         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
7288         configurations.
7289         Add to unsupported targets list.
7290         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
7291         sparc*-sun-solaris2.[567]* from target lists.
7292         * configure: Regenerate.
7293         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
7294         removal.
7295         Remove Solaris 7 patch references.
7296         (Specific, sparc-sun-solaris2.7): Removed.
7297         (sparc-sun-solaris2*): Update Solaris 7 example.
7298         (sparc64-*-solaris2*): Likewise.
7299
7300 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7301
7302         * config.build (alpha*-dec-osf4*): Remove.
7303         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
7304         of obsolete configurations.
7305         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
7306         support.
7307         * config/alpha/t-osf4: Renamed to ...
7308         * config/alpha/t-osf5: ... this.
7309         * config/alpha/osf.h: Renamed to ...
7310         * config/alpha/osf5.h: ... this.
7311         Merged old osf5.h contents.
7312         Update comments.
7313         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
7314         (EXTRA_SPECS): Removed.
7315         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
7316         reflect removal of Tru64 UNIX V4.0/V5.0 support.
7317         Document that.
7318
7319 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7320
7321         * doc/contrib.texi (Contributors, Rainer Orth): Update.
7322
7323 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
7324
7325         PR/43702
7326         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
7327         __thiscall convention.
7328
7329 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
7330
7331         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
7332         orig_base.
7333         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
7334
7335 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
7336
7337         * function.c (assign_parms_initialize_all): Add unused attribute
7338         to fntype.
7339
7340 2010-04-12  Richard Guenther  <rguenther@suse.de>
7341
7342         * gsstruct.def (GSS_CALL): New.
7343         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
7344         * gimple.h: Include tree-ssa-alias.h.
7345         (struct gimple_statement_call): New.
7346         (union gimple_statement_struct_d): Add gimple_call member.
7347         (gimple_call_reset_alias_info): Declare.
7348         (gimple_call_use_set): New function.
7349         (gimple_call_clobber_set): Likewise.
7350         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
7351         * gimple.c (gimple_call_reset_alias_info): New function.
7352         (gimple_build_call_1): Call it.
7353         * lto-streamer-in.c (input_gimple_stmt): Likewise.
7354         * tree-inline.c (remap_gimple_stmt): Likewise.
7355         (expand_call_inline): Remove callused handling.
7356         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
7357         * tree-dfa.c (dump_variable): Likewise.
7358         * tree-parloops.c (parallelize_loops): Likewise.
7359         * tree-ssa.c (init_tree_ssa): Likewise.
7360         (delete_tree_ssa): Likewise.
7361         * tree-flow-inline.h (is_call_used): Remove.
7362         * tree-flow.h (struct gimple_df): Remove callused member.
7363         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
7364         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
7365         (ref_maybe_used_by_call_p_1): Simplify.
7366         (call_may_clobber_ref_p_1): Likewise.
7367         * tree-ssa-structalias.c (compute_points_to_sets): Set
7368         the call stmt used and clobbered sets.
7369         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
7370         (find_tail_calls): Verify the tail call.
7371
7372 2010-04-12  Richard Guenther  <rguenther@suse.de>
7373
7374         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
7375         single-iteration always-inline inlining.
7376         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
7377         (cgraph_decide_inlining): Do not handle always-inline specially.
7378         (try_inline): Remove always-inline cycle detection special case.
7379         Do not recurse on always-inlines.
7380         (cgraph_early_inlining): Do not iterate if not optimizing.
7381         (cgraph_gate_early_inlining): remove.
7382         (pass_early_inline): Run unconditionally.
7383         (gate_cgraph_decide_inlining): New function.
7384         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
7385         not inlining or optimizing.
7386         (cgraph_decide_inlining_of_small_functions): Also consider
7387         always-inline functions.
7388         (cgraph_default_inline_p): Return true for nodes which should
7389         disregard inline limits.
7390         (estimate_function_body_sizes): Assume zero size and time for
7391         nodes which are marked as disregarding inline limits.
7392         (cgraph_decide_recursive_inlining): Do not perform recursive
7393         inlining on always-inline nodes.
7394
7395 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
7396
7397         PR bootstrap/43699
7398         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
7399         for exprs satisfying handled_component_p.
7400
7401 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
7402
7403         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
7404         non-constant aggregate elements.
7405
7406         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
7407         is a real initialization.
7408
7409 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
7410
7411         PR c/36774
7412         * c-decl.c (start_function): Move forward check for nested function.
7413
7414 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
7415
7416         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
7417         * config/sh/sh.c: Include reload.h.
7418         (sh_legitimize_reload_address): New.
7419         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
7420         sh_legitimize_reload_address.
7421
7422 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7423
7424         * config/sh/sh.md (*movqi_pop): New insn pattern.
7425         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
7426
7427 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
7428
7429         * config/i386/i386.md (any_shiftrt): New code iterator.
7430         (shiftrt_insn): New code attribute.
7431         (shiftrt): Ditto.
7432         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
7433         using any_shiftrt code iterator.
7434         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
7435         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
7436         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
7437         pattern from corresponding peephole2 patterns.
7438         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
7439         using any_shiftrt code iterator.
7440         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
7441         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
7442         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
7443         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
7444         *{ashr,lshr}<mode>3_cmp_zext.
7445         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
7446
7447 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
7448
7449         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
7450         scratch register.
7451         (*lshr<mode>3_cconly): Ditto.
7452
7453 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
7454
7455         * config/i386/i386.md (lshr<mode>3): Macroize expander from
7456         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
7457         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
7458         pattern from *lshr{di,ti}3_1 and corresponding splitters using
7459         DWI mode iterator.
7460         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
7461         from corresponding peephole2 patterns.
7462         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
7463         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
7464         and *lshrdi3_1_rex64 using SWI mode iterator.
7465         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
7466         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
7467         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
7468         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
7469         and *lshrdi3_cmp_rex64 using SWI mode iterator.
7470         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
7471         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
7472         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
7473         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
7474         SWI mode iterator.
7475
7476 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
7477
7478         * config/i386/i386.md (ashr<mode>3): Macroize expander from
7479         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
7480         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
7481         pattern from *ashr{di,ti}3_1 and corresponding splitters using
7482         DWI mode iterator.
7483         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
7484         from corresponding peephole2 patterns.
7485         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
7486         (ashrsi3_cvt): Rename from ashrsi3_31.
7487         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
7488         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
7489         and x86_64_shift_adj_3 using SWI48 mode iterator.
7490         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
7491         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
7492         and *ashrdi3_1_rex64 using SWI mode iterator.
7493         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
7494         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
7495         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
7496         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
7497         and *ashrdi3_cmp_rex64 using SWI mode iterator.
7498         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
7499         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
7500         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
7501         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
7502         SWI mode iterator.
7503         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
7504         * config/i386/i386.c (ix86_split_ashr): Update for renamed
7505         x86_shift<mode>_adj_3 expanders.
7506
7507 2010-04-10  Wei Guozhi  <carrot@google.com>
7508
7509         PR target/42601
7510         * config/arm/arm.c (arm_pic_static_addr): New function.
7511         (legitimize_pic_address): Call arm_pic_static_addr when it detects
7512         a static symbol.
7513         (arm_output_addr_const_extra): Output expression for new pattern.
7514         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
7515
7516 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
7517
7518         * ira-costs.c (record_reg_classes): Ignore alternatives that are
7519         not enabled.
7520
7521         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
7522         * web.c: Include "insn-config.h" and "recog.h".
7523         (union_match_dups): New function.
7524         (web_main): Call it.
7525         (union_defs): Don't try to recognize match_dups.
7526
7527         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
7528         if doing so would replace the entire pattern.
7529
7530 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
7531
7532         PR target/43707
7533         PR target/43709
7534         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
7535         and splitter pattern.  Change splitter operand 1 predicate to
7536         nonmemory_operand.
7537
7538 2010-04-09  Martin Jambor  <mjambor@suse.cz>
7539
7540         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
7541         lattices are addresses of CONST_DECLs with the same initial value.
7542         (ipcp_print_all_lattices): Print values of CONST_DECLs.
7543         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
7544
7545 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
7546             Bernd Schmidt  <bernds@codesourcery.com>
7547
7548         * loop-invariant.c (replace_uses): New static function.
7549         (move_invariant_reg): Use it to ensure we can replace the uses.
7550
7551 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
7552
7553         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
7554         function template.
7555         (picochip_override_options): Enable section anchors only above -O1.
7556         (picochip_reorg): Fixed a couple of build warnings.
7557
7558 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7559
7560         * configure.ac (plugin -rdynamic test): Log result.
7561         * configure: Regenerate.
7562         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
7563         (RDYNAMIC_SPEC): Define.
7564         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
7565
7566 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7567
7568         * configure.ac: Determine Sun ld version numbers.
7569         (comdat_group): Restrict GNU ld version checks to gld.
7570         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
7571         (enable_comdat): Support --enable-comdat.
7572         * configure: Regenerate.
7573         * doc/install.texi (Configuration): Document --enable-comdat.
7574
7575 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7576
7577         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
7578         * config/sol2-gld.h: ... here.
7579         * config.gcc (sparc*-*-solaris2*): Reflect this.
7580         (i[34567]86-*-solaris2*): Use it.
7581
7582 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
7583
7584         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
7585         setup_clocks_p.
7586         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
7587
7588 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7589
7590         PR 42965
7591         * diagnostic.c (diagnostic_initialize): Initialize
7592         some_warnings_are_errors.
7593         (diagnostic_finish): New.
7594         (diagnostic_action_after_output): Call it before exiting.
7595         (diagnostic_report_diagnostic): Do not print message here. Set
7596         some_warnings_are_errors.
7597         * diagnostic.h (diagnostic_context): Delete
7598         issue_warnings_are_errors_message. Add some_warnings_are_errors.
7599         (diagnostic_finish): Declare.
7600         * toplev.c (toplev_main): Call it before exit.
7601
7602 2010-04-09  Jason Merrill  <jason@redhat.com>
7603
7604         PR c++/42623
7605         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
7606         for incomplete type.
7607
7608         PR c++/41788
7609         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
7610         based on a warning flag.
7611
7612 2010-04-09  Richard Guenther  <rguenther@suse.de>
7613
7614         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
7615
7616 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
7617
7618         PR bootstrap/43684
7619         * varasm.c (default_assemble_visibility): Wrap vars that are
7620         set, but unused, by targets without GAS.
7621         * config/rs6000/rs6000.c (paired_emit_vector_compare):
7622         Remove set, but unused, vars.
7623         (rs6000_legitimize_tls_address): Likewise.
7624         (altivec_expand_dst_builtin): Likewise.
7625         * config/darwin.c (machopic_classify_symbol): Likewise.
7626         (machopic_indirection_name): Likewise.
7627
7628 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
7629
7630         * config/i386/i386.md (DWI): New mode iterator.
7631         (S): New mode attribute.
7632         (shift_operand): Ditto.
7633         (shift_immediate_operand): Ditto.
7634         (ashl_input_operand): Ditto.
7635         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
7636         using SDWIM mode iterator.
7637         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
7638         pattern from *ashl{di,ti}3_1 and corresponding splitters using
7639         DWI mode iterator.
7640         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
7641         from corresponding peephole2 patterns.
7642         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
7643         and x86_64_shift_adj_1 using SWI48 mode iterator.
7644         (x86_shift<mode>_adj_2): Ditto.
7645         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
7646         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
7647         using SWI48 mode iterator.
7648         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
7649         *ashldi3_cmp_rex64 using SWI mode iterator.
7650         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
7651         *ashldi3_cconly_rex64 using SWI mode iterator.
7652         * config/i386/i386.c (ix86_split_ashl): Update for renamed
7653         x86_shift<mode>_adj_{1,2}.
7654         (ix86_split_ashr): Ditto.
7655         (ix86_split_lshr): Ditto.
7656
7657 2010-04-09  Richard Guenther  <rguenther@suse.de>
7658
7659         * target.h (builtin_conversion): Pass in input and output types.
7660         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
7661         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
7662         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
7663         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
7664
7665         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
7666         Handle AVX modes.
7667         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
7668
7669 2010-04-09  Richard Guenther  <rguenther@suse.de>
7670
7671         PR target/43152
7672         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
7673
7674 2010-04-09  Richard Guenther  <rguenther@suse.de>
7675
7676         * tree-vectorizer.h (struct _stmt_vec_info): Document
7677         that vectype is the type of the LHS.
7678         (supportable_widening_operation, supportable_narrowing_operation):
7679         Get both input and output vector types as arguments.
7680         (vect_is_simple_use_1): Declare.
7681         (get_same_sized_vectype): Likewise.
7682         * tree-vect-loop.c (vect_determine_vectorization_factor):
7683         Set STMT_VINFO_VECTYPE to the vector type of the def.
7684         (vectorizable_reduction): Adjust.
7685         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
7686         Adjust.  Specify the output vector type.
7687         (vect_pattern_recog_1): Adjust.
7688         * tree-vect-stmts.c (get_same_sized_vectype): New function.
7689         (vectorizable_call): Adjust.
7690         (vectorizable_conversion): Likewise.
7691         (vectorizable_operation): Likewise.
7692         (vectorizable_type_demotion): Likewise.
7693         (vectorizable_type_promotion): Likewise.
7694         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
7695         the def.
7696         (vect_is_simple_use_1): New function.
7697         (supportable_widening_operation): Get both input and output
7698         vector types.
7699         (supportable_narrowing_operation): Likewise.
7700         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
7701
7702 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
7703
7704         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
7705         __thiscall and _thiscall as predefined macros.
7706         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
7707         thiscall attribute handling.
7708         (ix86_comp_type_attributes): Likewise.
7709         (ix86_function_regparm): Likewise.
7710         (ix86_return_pops_args): Likewise.
7711         (init_cumulative_args): Likewise.
7712         (find_drap_reg): Likewise.
7713         (ix86_static_chain): Likewise.
7714         (x86_this_parameter): Likewise.
7715         (x86_output_mi_thunk): Likewise.
7716         (ix86_attribute_table): Add description for thiscall attribute.
7717         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
7718         * doc/extend.texi: Add documentation for thiscall.
7719
7720 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7721
7722         PR c++/28584
7723         * c.opt (Wint-to-pointer-cast): Available in C++.
7724         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
7725
7726 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
7727
7728         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
7729         * calls.c (expand_call): Pass the function type to aggregate_value_p.
7730         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
7731         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
7732         function type instead.  Reorder and simplify checks.
7733
7734         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
7735
7736 2010-04-08  Jing Yu  <jingyu@google.com>
7737             Zdenek Dvorak  <ook@ucw.cz>
7738
7739         PR tree-optimization/42720
7740         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
7741         loop unswitch conditions here from ...
7742         (tree_unswitch_single_loop): ... here.
7743
7744 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
7745
7746         * tree-if-conv.c: Fix comments and simplify logic.
7747
7748 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
7749
7750         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
7751         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
7752         (main_tree_if_conversion): Update call to tree_if_conversion.
7753
7754 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7755
7756         PR 42485
7757         * doc/invoke.texi (-b,-V): Delete.
7758         * doc/tm.texi: Do not mention -b.
7759         * gcc.c (display_help): Delete -b and -V.
7760         (process_command): Delete -b and -V.
7761         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
7762
7763 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
7764             Wolfgang Gellerich  <gellerich@de.ibm.com>
7765
7766         Implement target hook for loop unrolling
7767         * target.h (loop_unroll_adjust): Add a new target hook function.
7768         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
7769         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
7770         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
7771         (s390_loop_unroll_adjust): Implement the new target hook for s390.
7772         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
7773         target hook.
7774         (decide_unroll_stupid): Likewise.
7775
7776 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7777
7778         PR target/43643
7779         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
7780
7781 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7782
7783         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
7784         (Specific, *-*-solaris2*): Likewise.
7785         Don't prefer Sun as over GNU as.
7786
7787 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
7788
7789         * config/s390/s390.c (override_options): Adjust the z10 defaults
7790         for max-unroll-times, max-completely-peeled-insns
7791         and max-completely-peel-times.
7792
7793 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7794
7795         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
7796         instructions for z10.
7797         (s390_expand_setmem): Likewise.
7798         (s390_expand_cmpmem): Likewise.
7799
7800 2010-04-08  Richard Guenther  <rguenther@suse.de>
7801
7802         PR tree-optimization/43679
7803         * tree-ssa-pre.c (eliminate): Only propagate copies.
7804
7805 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
7806
7807         PR bootstrap/43681
7808         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
7809         set but not used variable warning.
7810
7811 2010-04-08  Wei Guozhi  <carrot@google.com>
7812
7813         PR target/41653
7814         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
7815         (arm_size_rtx_costs): Call the new function when optimized for size.
7816
7817 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR debug/43670
7820         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
7821         op0 is not a MEM, just return NULL instead of assertion
7822         failure.
7823         (discover_nonconstant_array_refs): Don't walk debug stmts.
7824
7825 2010-04-08  Doug Kwan  <dougkwan@google.com>
7826
7827         * configure.ac: Recognize gold and do not use its version number
7828         to test ld features.
7829         * configure: Regenerate.
7830
7831 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
7832
7833         PR middle-end/40815
7834         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
7835         (negate_value): Move code to push elements to broken_up_substracts ...
7836         (eliminate_plus_minus_pair): ... here.  Push operands that have no
7837         negative pair to plus_negates.
7838         (repropagate_negates, init_reassoc, fini_reassoc): Update.
7839
7840 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7841
7842         * doc/install.texi (Configuration): Move description of
7843         --enable-lto, --with-libelf*, --enable-gold from Java section to
7844         general section.
7845
7846         * doc/generic.texi (Working with declarations)
7847         (Function Properties, C and C++ Trees): Fix typos.
7848         * doc/sourcebuild.texi (Top Level): Likewise.
7849
7850 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
7851
7852         PR c/18624
7853         * tree.h (DECL_READ_P): Define.
7854         (struct tree_decl_common): Add decl_read_flag.
7855         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
7856         a set but not used warning.
7857         (merge_decls): Merge DECL_READ_P flag.
7858         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
7859         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
7860         * c-common.c (handle_used_attribute, handle_unused_attribute):
7861         Likewise.
7862         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
7863         New prototypes.
7864         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
7865         New functions.
7866         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
7867         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
7868         c_parser_binary_expression, c_parser_cast_expression,
7869         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
7870         Call default_function_array_read_conversion instead of
7871         default_function_array_conversion where needed.
7872         (c_parser_unary_expression, c_parser_conditional_expression,
7873         c_parser_postfix_expression_after_primary, c_parser_initelt):
7874         Likewise.  Call mark_exp_read where needed.
7875         (c_parser_statement_after_labels, c_parser_asm_operands,
7876         c_parser_typeof_specifier, c_parser_sizeof_expression,
7877         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
7878         where needed.
7879         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
7880         New.
7881         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
7882         (warn_unused_but_set_parameter): Default to warn_unused
7883         && extra_warnings.
7884         * doc/invoke.texi: Document -Wunused-but-set-variable and
7885         -Wunused-but-set-parameter.
7886
7887         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
7888         used count variable.
7889         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
7890         when operandN variables aren't used in the body of the expander
7891         or splitter.
7892         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
7893         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
7894         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
7895         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
7896         FOR_EACH_IMM_USE_ON_STMT): Likewise.
7897         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
7898         * tree.c (PROCESS_ARG): Likewise.
7899
7900 2010-04-07  Simon Baldwin  <simonb@google.com>
7901
7902         * diagnostic.h (diagnostic_override_option_index): New macro to
7903         set a diagnostic's option_index.
7904         * c-tree.h (c_cpp_error): Add warning reason argument.
7905         * opts.c (_warning_as_error_callback): New.
7906         (register_warning_as_error_callback): Store callback for
7907         warnings enabled via enable_warning_as_error.
7908         (enable_warning_as_error): Call callback, minor code tidy.
7909         * opts.h (register_warning_as_error_callback): Declare.
7910         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
7911         response to -Werror=.
7912         (c_common_init_options): Register warning_as_error_callback in opts.c.
7913         * common.opt: Add -Wno-cpp option.
7914         * c-common.c (struct reason_option_codes_t): Map cpp warning
7915         reason codes to gcc option indexes.
7916         * (c_option_controlling_cpp_error): New function, lookup the gcc
7917         option index for a cpp warning reason code.
7918         * (c_cpp_error): Add warning reason argument, call
7919         c_option_controlling_cpp_error for diagnostic_override_option_index.
7920         * doc/invoke.texi: Document -Wno-cpp.
7921
7922 2010-04-07  Richard Guenther  <rguenther@suse.de>
7923
7924         * ipa-reference.c (mark_load): Use get_base_address.
7925         (mark_store): Likewise.
7926
7927         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
7928         inserting GIMPLE_NOPs into the IL.
7929         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7930         Explicitly strip handled components and indirect references.
7931
7932         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
7933         folding address expressions.
7934         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
7935         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
7936         operand_equal_p to compare decls.
7937         (ptr_deref_may_alias_decl_p): Likewise.
7938         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
7939         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
7940         Handle reversed comparison ops.
7941         * tree-sra.c (asm_visit_addr): Use get_base_address.
7942         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
7943         * ipa-reference.c (mark_address): Use get_base_address.
7944
7945 2010-04-07  Richard Guenther  <rguenther@suse.de>
7946
7947         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
7948         Propagate constants everywhere.
7949
7950 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
7951
7952         PR debug/43516
7953         * tree.c (MAX_INT_CACHED_PREC): Define.
7954         (nonstandard_integer_type_cache): New array.
7955         (build_nonstandard_integer_type): Cache results for precision
7956         <= MAX_INT_CACHED_PREC.
7957
7958 2010-04-07  Richard Guenther  <rguenther@suse.de>
7959
7960         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
7961         -fargument-noalias-global, -fargument-noalias-anything): Remove.
7962         * common.opt: Likewise.
7963         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
7964         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
7965         (nonoverlapping_memrefs_p): Likewise.
7966         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
7967         * opts.c (common_handle_option): Handle OPT_fargument_alias,
7968         OPT_fargument_noalias, OPT_fargument_noalias_anything and
7969         OPT_fargument_noalias_global for backward compatibility.
7970
7971 2010-04-07  Richard Guenther  <rguenther@suse.de>
7972
7973         PR tree-optimization/43270
7974         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
7975         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
7976         * tree-ssa-pre.c (phi_translate_1): Adjust.
7977         (fully_constant_expression): Split out vn_reference handling to ...
7978         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
7979         Fold reads from constant strings.
7980         (vn_reference_lookup): Handle fully constant references.
7981         (vn_reference_lookup_pieces): Likewise.
7982         * Makefile.in (expmed.o-warn): Add -Wno-error.
7983
7984 2010-04-07  Martin Jambor  <mjambor@suse.cz>
7985
7986         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
7987
7988 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
7989
7990         PR driver/41594
7991         * gcc.c: Add -static-libstdc++ to list of recognized options.
7992
7993 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7994
7995         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
7996
7997 2010-04-07  Richard Guenther  <rguenther@suse.de>
7998
7999         PR middle-end/42617
8000         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
8001         bases build simple mem attributes to retain points-to information.
8002
8003 2010-04-07  Richard Guenther  <rguenther@suse.de>
8004
8005         PR middle-end/42617
8006         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
8007         preserve points-to related information.
8008
8009 2010-04-07  Richard Guenther  <rguenther@suse.de>
8010
8011         PR middle-end/42617
8012         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
8013         discard plain indirect references.
8014         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
8015         * tree.c (tree_nop_conversion): Likewise.
8016
8017 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
8018
8019         PR debug/43628
8020         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
8021
8022 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
8023
8024         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
8025         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
8026
8027 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8028
8029         * tree-if-conv.c: Fix indentation and comments.
8030
8031 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8032
8033         * tree-if-conv.c: Sort static functions in topological order.
8034
8035 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8036
8037         * tree-if-conv.c: Fix indentation and comments.
8038
8039 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8040
8041         PR middle-end/43519
8042         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
8043         lang_hooks.types.type_for_size instead of
8044         build_nonstandard_integer_type.
8045         When converting an unsigned type to signed, double its precision.
8046         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
8047         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
8048         (graphite_create_new_loop_guard): When ub + 1 wraps around,
8049         use lb <= ub.
8050
8051 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8052
8053         PR middle-end/43519
8054         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
8055         POINTER_PLUS_EXPR for pointer types.
8056
8057 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8058
8059         PR middle-end/43519
8060         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
8061         * graphite-clast-to-gimple.c: Include langhooks.h.
8062         (max_signed_precision_type): New.
8063         (max_precision_type): Takes two types as arguments.
8064         (precision_for_value): New.
8065         (precision_for_interval): New.
8066         (gcc_type_for_interval): New.
8067         (gcc_type_for_value): New.
8068         (gcc_type_for_clast_term): New.
8069         (gcc_type_for_clast_red): New.
8070         (gcc_type_for_clast_bin): New.
8071         (gcc_type_for_clast_expr): Split up into several functions.
8072         (gcc_type_for_clast_eq): Rewritten.
8073         (compute_bounds_for_level): New.
8074         (compute_type_for_level_1): New.
8075         (compute_type_for_level): New.
8076         (gcc_type_for_cloog_iv): Removed.
8077         (gcc_type_for_iv_of_clast_loop): Rewritten.
8078         (graphite_create_new_loop): Compute the lower and upper bound types
8079         with gcc_type_for_clast_expr.
8080         (graphite_create_new_loop_guard): Same.
8081         (find_cloog_iv_in_expr): Removed.
8082         (compute_cloog_iv_types_1): Removed.
8083         (compute_cloog_iv_types): Removed.
8084         (gloog): Do not call compute_cloog_iv_types.
8085         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
8086         GBB_CLOOG_IV_TYPES.
8087         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
8088         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
8089         (GBB_CLOOG_IV_TYPES): Removed.
8090
8091 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8092
8093         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
8094         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
8095         (detect_commutative_reduction): Same.
8096
8097 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8098
8099         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
8100         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
8101         argument.
8102         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
8103         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
8104         (rewrite_commutative_reductions_out_of_ssa): Same.
8105         * passes.c (execute_function_todo): Call verify_ssa for every pass
8106         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
8107         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
8108         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
8109         with an extra argument.
8110         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
8111         verify_ssa only when the extra argument is true.
8112         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
8113         with an extra argument.
8114         (tree_transform_and_unroll_loop): Same.
8115
8116 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8117
8118         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
8119         for all the passes of the LNO having LOOP_CLOSED_SSA.
8120         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
8121         * tree-loop-distribution.c (pass_loop_distribution): Same.
8122         * tree-pass.h (TODO_verify_loops): Removed.
8123         * tree-ssa-loop.c (pass_tree_loop_init): Same.
8124         (pass_lim): Same.
8125         (pass_tree_unswitch): Same.
8126         (pass_predcom): Same.
8127         (pass_vectorize): Same.
8128         (pass_linear_transform): Same.
8129         (pass_graphite_transforms): Same.
8130         (pass_iv_canon): Same.
8131         (pass_complete_unroll): Same.
8132         (pass_complete_unrolli): Same.
8133         (pass_parallelize_loops): Same.
8134         (pass_loop_prefetch): Same.
8135         (pass_iv_optimize): Same.
8136
8137 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
8138
8139         PR middle-end/32824
8140         * passes.c (init_optimization_passes): Move pass_lim before
8141         pass_copy_prop and pass_dce_loop.
8142
8143 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
8144
8145         PR target/43667
8146         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
8147         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
8148         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
8149         MULTI_* defines for 4 argument vpermil2p* builtins.
8150
8151 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
8152
8153         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
8154         * config/i386/i386.c (x86_maybe_negate_const_int): New.
8155         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
8156         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
8157         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
8158         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
8159         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
8160         Use x86_maybe_negate_const_int to output insn mnemonic.
8161         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
8162         check from instruction predicate.  Update comments.
8163         * config/i386/sync.md (sync_add<mode>): Use
8164         x86_maybe_negate_const_int to output insn mnemonic.
8165
8166 2010-04-06  Jan Hubicka  <jh@suse.cz>
8167
8168         PR tree-optimization/42906
8169         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
8170         IGNORE_SELF argument.  Set visited_control_parents for fully
8171         processed BBs.
8172         (find_obviously_necessary_stmts): Update call of
8173         mark_control_dependent_edges_necessary.
8174         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
8175
8176 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
8177
8178         * config/i386/i386.md: Remove comment about 'e' and 'E'
8179         operand modifier.
8180
8181 2010-04-06  Richard Guenther  <rguenther@suse.de>
8182
8183         PR tree-optimization/43627
8184         * tree-vrp.c (extract_range_from_unary_expr): Widenings
8185         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
8186         not varying.
8187
8188 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
8189
8190         * BASE-VER: Change to 4.6.0.
8191
8192         PR target/43638
8193         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
8194         handling.
8195
8196 2010-04-06  Richard Guenther  <rguenther@suse.de>
8197
8198         PR middle-end/43661
8199         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
8200
8201 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8202
8203         * doc/invoke.texi (Optimize Options): Document that LTO
8204         won't remove object access purely due to incompatible
8205         declarations.
8206
8207 2010-04-04  Matthias Klose  <doko@ubuntu.com>
8208
8209         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
8210         Initialize variable.
8211
8212 2010-04-03  Richard Guenther  <rguenther@suse.de>
8213
8214         PR middle-end/42509
8215         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
8216         require a non-NULL MEM_OFFSET.
8217
8218 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
8219
8220         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
8221         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
8222         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
8223         config/alpha/predicates.md, config/arm/arm.md,
8224         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
8225         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
8226         config/darwin9.h, config/darwin.c, config/darwin.h,
8227         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
8228         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
8229         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
8230         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
8231         config/mips/mips.md, config/mn10300/mn10300.c,
8232         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
8233         config/rs6000/aix.h, config/rs6000/dfp.md,
8234         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
8235         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
8236         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
8237         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
8238         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
8239         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
8240         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
8241         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
8242         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
8243         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
8244         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
8245         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
8246         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
8247         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
8248         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
8249         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
8250         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
8251         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
8252         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
8253         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
8254         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
8255         opt-functions.awk, opth-gen.awk, params.def, passes.c,
8256         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
8257         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
8258         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
8259         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
8260         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
8261         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
8262         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
8263         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
8264         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
8265         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
8266         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
8267         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
8268         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
8269         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
8270
8271 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8272
8273         PR other/43620
8274         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
8275         * aclocal.m4: Regenerate.
8276
8277 2010-04-02  Richard Guenther  <rguenther@suse.de>
8278
8279         PR tree-optimization/43629
8280         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
8281         if we have seen a constant value.
8282
8283 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
8284
8285         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
8286
8287 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
8288
8289         PR target/43469
8290         * arm.c (legitimize_tls_address): Adjust call to
8291         gen_tls_load_dot_plus_four.
8292         (arm_note_pic_base): New function.
8293         (arm_cannot_copy_insn_p): Use it.
8294         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
8295         constraint.
8296
8297 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8298
8299         PR bootstrap/43531
8300
8301         Revert:
8302         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8303
8304         * Makefile.in ($(out_object_file)): Depend on
8305         gt-$(basename $(notdir $(out_file))).h.
8306
8307 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
8308
8309         * config.gcc (lm32-*-rtems*): Add t-lm32.
8310
8311 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
8312
8313         * config.gcc: Add lm32-*-rtems*.
8314         * config/lm32/rtems.h: New file.
8315
8316 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
8317
8318         PR target/42609
8319         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
8320
8321 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
8322
8323         * dwarf2out.c (output_compilation_unit_header): For
8324         -gdwarf-4 use version 4 instead of version 3.
8325         (output_line_info): For version 4 and above emit additional
8326         maximum ops per insn header field.
8327         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
8328
8329         * dwarf2out.c (is_c_family, is_java): Remove.
8330         (lower_bound_default): New function.
8331         (add_bound_info, gen_descr_array_type_die): Use it.
8332
8333 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
8334
8335         PR debug/43325
8336         * dwarf2out.c (gen_variable_die): Allow debug info for variable
8337         re-declaration when it happens in a function.
8338
8339 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
8340
8341         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
8342         (cgraph_remove_function_insertion_hook): Same.
8343         (cgraph_call_function_insertion_hooks): Same.
8344
8345 2010-04-01  Richard Guenther  <rguenther@suse.de>
8346
8347         PR middle-end/43614
8348         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
8349         and TREE_THIS_VOLATILE.
8350         (copy_ref_info): Likewise.
8351         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
8352         * tree.c (build6_stat): Ignore side-effects of all but arg5
8353         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
8354         TARGET_MEM_REF.
8355
8356 2010-04-01  Richard Guenther  <rguenther@suse.de>
8357
8358         PR tree-optimization/43607
8359         * ipa-type-escape.c (check_call): Do not access non-existing
8360         arguments.
8361
8362 2010-04-01  Richard Guenther  <rguenther@suse.de>
8363
8364         PR middle-end/43602
8365         Revert
8366         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
8367                     Jack Howarth <howarth@bromo.med.uc.edu>
8368
8369         * tree-profile.c (tree_init_ic_make_global_vars): Make static
8370         variables TLS.
8371
8372 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8373
8374         * doc/install.texi (Prerequisites): Document libelf usability on
8375         IRIX 5/6 and Solaris 2.
8376         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
8377         Update GNU as, GNU ld requirements.
8378         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
8379         Document Sun Studio compiler download.
8380         Update and simplify as, ld recommendations.
8381         (Specific, *-*-solaris2.7): Note obsoletion, removal.
8382
8383 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8384
8385         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
8386         with_tune_32 to pentium4.
8387
8388 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
8389
8390         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
8391
8392 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8393
8394         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
8395         obsoletion, removal.
8396         Update IDO URL.
8397         Document GNU as requirement.
8398         Update configure requirements.
8399         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
8400         Recomment IRIX 6.5.18+.
8401         Document IDF/IDL requirement.
8402         Document GNU as requirement.
8403         Document GNU ld bootstrap failure.
8404         Remove freeware.sgi.com reference.
8405
8406 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8407
8408         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
8409         UNIX V4.0, V5.0 obsoletion, removal.
8410         Remove --with-gc=simple reference.
8411         Update VM requirements during bootstrap.
8412         Remove -oldas bootstrap description.
8413         Update binutils reference.
8414         Remove comparison failure note.
8415
8416 2010-03-31  Richard Guenther  <rguenther@suse.de>
8417             Zdenek Dvorak  <ook@ucw.cz>
8418             Sebastian Pop  <sebastian.pop@amd.com>
8419
8420         PR middle-end/43464
8421         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
8422         with multiple arguments.
8423         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
8424
8425 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
8426
8427         * graphite-dependences.c (print_pddr): Call print_pdr with an
8428         extra argument.
8429         * graphite-poly.c (debug_pdr): Add an extra argument for the
8430         verbosity level.
8431         (print_pdr): Same.
8432         (print_pbb_domain): Same.
8433         (print_pbb): Same.
8434         (print_scop_context): Same.
8435         (print_scop): Same.
8436         (print_cloog): Same.
8437         (debug_pbb_domain): Same.
8438         (debug_pbb): Same.
8439         (print_pdrs): Same.
8440         (debug_pdrs): Same.
8441         (debug_scop_context): Same.
8442         (debug_scop): Same.
8443         (debug_cloog): Same.
8444         (print_scop_params): Same.
8445         (debug_scop_params): Same.
8446         (print_iteration_domain): Same.
8447         (print_iteration_domains): Same.
8448         (debug_iteration_domain): Same.
8449         (debug_iteration_domains): Same.
8450         (print_scattering_function): Same.
8451         (print_scattering_functions): Same.
8452         (debug_scattering_function): Same.
8453         (debug_scattering_functions): Same.
8454         * graphite-poly.h (debug_pdr): Update declaration.
8455         (print_pdr): Same.
8456         (print_pbb_domain): Same.
8457         (print_pbb): Same.
8458         (print_scop_context): Same.
8459         (print_scop): Same.
8460         (print_cloog): Same.
8461         (debug_pbb_domain): Same.
8462         (debug_pbb): Same.
8463         (print_pdrs): Same.
8464         (debug_pdrs): Same.
8465         (debug_scop_context): Same.
8466         (debug_scop): Same.
8467         (debug_cloog): Same.
8468         (print_scop_params): Same.
8469         (debug_scop_params): Same.
8470         (print_iteration_domain): Same.
8471         (print_iteration_domains): Same.
8472         (debug_iteration_domain): Same.
8473         (debug_iteration_domains): Same.
8474         (print_scattering_function): Same.
8475         (print_scattering_functions): Same.
8476         (debug_scattering_function): Same.
8477         (debug_scattering_functions): Same.
8478
8479 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
8480
8481         * graphite-poly.c (print_scattering_function_1): New.
8482         (print_scattering_function): Call it.
8483         (print_scop_params): Remove spaces at the end of lines.
8484         (print_cloog): New.
8485         (debug_cloog): New.
8486         * graphite-poly.h (print_cloog): Declared.
8487         (debug_cloog): Declared.
8488
8489 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
8490
8491         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
8492         in loop->header.
8493         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
8494         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
8495         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
8496         to switch between adding the IV bump in loop->latch or in loop->header.
8497
8498 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
8499
8500         * graphite-poly.c (print_scattering_function): Pretty print following
8501         the scoplib format.
8502         (print_pdr): Same.
8503         (print_pbb_domain): Same.
8504         (dump_gbb_cases): Same.
8505         (dump_gbb_conditions): Same.
8506         (print_pdrs): Same.
8507         (print_pbb): Same.
8508         (print_scop_params): Same.
8509         (print_scop_context): Same.
8510         (print_scop): Same.
8511         (print_pbb_body): New.
8512         (lst_indent_to): New.
8513         (print_lst): Start new lines with a #.
8514         * graphite-poly.h (pbb_bb): New.
8515         (pbb_index): Use pbb_bb.
8516         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
8517         disjuncts.
8518         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
8519
8520 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
8521
8522         * dwarf2out.c (size_of_die): For -gdwarf-4 use
8523         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
8524         and 0 instead of 1 for dw_val_class_flag.
8525         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
8526         dw_val_class_range_list, dw_val_class_loc_list,
8527         dw_val_class_lineptr and dw_val_class_macptr, use
8528         DW_FORM_flag_present for dw_val_class_flag and
8529         DW_FORM_exprloc for dw_val_class_loc.
8530         (output_die): For -gdwarf-4 print dw_val_class_loc
8531         size as uleb128 instead of 1 or 2 bytes and don't print
8532         anything for dw_val_class_flag.
8533
8534         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
8535         instead of cselib_lookup following by tweaking locs->setting_insn.
8536
8537         PR bootstrap/43596
8538         * cselib.c (cselib_process_insn): Clear cselib_current_insn
8539         even before returning from label, setjmp call or volatile asm
8540         handling.
8541
8542 2010-03-31  Richard Guenther  <rguenther@suse.de>
8543
8544         PR middle-end/43600
8545         * cgraphunit.c (cgraph_output_in_order): Do not allocate
8546         temporary data on stack.
8547
8548 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8549
8550         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
8551         (PUSHSECTION_ASM_OP): Remove.
8552         (POPSECTION_ASM_OP): Remove.
8553         (PUSHSECTION_FORMAT): Remove.
8554         * config/sol2.h (PUSHSECTION_FORMAT): Define.
8555         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
8556         * config/sol2.c (solaris_output_init_fini): Use it.
8557
8558 2010-03-31  Jie Zhang  <jie@codesourcery.com>
8559
8560         PR 43574
8561         * opt-functions.awk (var_type_struct): Use signed char type
8562         for simple variables.
8563
8564 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8565
8566         * config/sol2.c: Include output.h.
8567         (solaris_assemble_visibility): New function.
8568         * config/t-sol2 (sol2.o): Add output.h dependency.
8569         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
8570         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
8571         Redefine.
8572
8573 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
8574
8575         PR target/43580
8576         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
8577         V2SImode or XFmode on PRE_DEC.
8578
8579         PR debug/43557
8580         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
8581         BLKmode.
8582
8583 2010-03-31  Jie Zhang  <jie@codesourcery.com>
8584
8585         PR 43562
8586         * reload.h (caller_save_initialized_p): Declare.
8587         * toplev.c (backend_init_target): Don't call
8588         init_caller_save but set caller_save_initialized_p to false.
8589         * caller-save.c (caller_save_initialized_p): Define.
8590         (init_caller_save): Check caller_save_initialized_p.
8591         * ira.c (ira): Call init_caller_save if flag_caller_saves.
8592
8593 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8594
8595         PR target/39048
8596         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
8597         and soft-fp/t-softfp to tmake_file.
8598         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
8599         (LIBGCC2_TF_CEXT): Define.
8600         (TF_SIZE): Define.
8601
8602 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
8603
8604         PR debug/42977
8605         * cselib.c (n_useless_values): Document handling of debug locs.
8606         (n_useless_debug_values, n_debug_values): New variables.
8607         (new_elt_loc_list): Don't add to debug values, keep count.
8608         (promote_debug_loc): New.
8609         (cselib_reset_table): Zero new variables.
8610         (entry_and_rtx_equal_p): Promote debug locs.
8611         (discard_useless_locs): Increment n_useless_debug_values for
8612         debug values.
8613         (remove_useless_values): Adjust n_useless_values and n_debug_values
8614         with n_useless_debug_values.
8615         (add_mem_for_addr): Promote debug locs.
8616         (cselib_lookup_mem): Likewise.
8617         (cselib_lookup_addr): Renamed to...
8618         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
8619         (cselib_log_lookup): ... this.  Turn into...
8620         (cselib_lookup_addr): ... new wrapper.
8621         (cselib_lookup_from_insn): New.
8622         (cselib_invalidate_regno): Increment n_useless_debug_values for
8623         debug values.
8624         (cselib_invalidate_mem): Likewise.
8625         (cselib_process_insn): Take n_deleted and n_debug_values into
8626         account to guard remove_useless_value call.
8627         (cselib_finish): Zero n_useless_debug_values.
8628         * cselib.h (cselib_lookup_from_insn): Declare.
8629         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
8630         (sched_analyze_2): Likewise.
8631
8632 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
8633
8634         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
8635         functions.
8636         (adjust_mems): Replace narrowing SUBREG of expression containing
8637         just PLUS, MINUS, MULT and ASHIFT of registers and constants
8638         with operations in the narrower mode.
8639
8640         PR debug/43593
8641         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
8642         regs_invalidated_by_call instead all call_used_reg_set registers.
8643
8644 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
8645
8646         PR middle-end/43430
8647         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
8648         pointer comparisons with types_compatible_p.
8649         * tree-vect-stmts.c (vectorizable_call): Same.
8650         (vectorizable_condition): Same.
8651
8652 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8653
8654         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
8655         stack check if the mask would be zero.
8656
8657 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
8658             Jack Howarth <howarth@bromo.med.uc.edu>
8659
8660         * tree-profile.c (tree_init_ic_make_global_vars): Make static
8661         variables TLS.
8662
8663 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
8664
8665         PR other/25232
8666         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
8667         and __unordtf2.
8668         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
8669         Include ___unordxf2 and ___unordtf2.
8670         * config/i386/libgcc-glibc.ver: Do not define inheritance from
8671         GCC_4.4.0 here.
8672
8673 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
8674
8675         * config/lm32/t-lm32: New file.
8676         * config.gcc: Use the above file when targetting lm32.
8677
8678 2010-03-28  Duncan Sands  <baldrick@free.fr>
8679
8680         * Makefile.in (PLUGIN_HEADERS): Add except.h.
8681
8682 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
8683
8684         PR middle-end/43431
8685         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
8686         Improve vectorization cost model diagnostic.
8687
8688 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
8689
8690         PR middle-end/43436
8691         * tree-vect-data-refs.c (vect_analyze_data_refs): When
8692         compute_data_dependences_for_loop returns false, early exit
8693         and output an extra diagnostic for the failed data reference
8694         analysis.
8695
8696 2010-03-29  Richard Guenther  <rguenther@suse.de>
8697
8698         PR tree-optimization/43560
8699         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
8700         (can_sm_ref_p): Treat stores to readonly locations as trapping.
8701
8702 2010-03-29  Jie Zhang  <jie@codesourcery.com>
8703
8704         PR 43564
8705         * toplev.c (process_options): Set optimization_default_node
8706         and optimization_current_node.
8707         * opts.c (decode_options): Don't set optimization_default_node
8708         and optimization_current_node.
8709
8710 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
8711
8712         * config/rtems.h: Abandon -qrtems_debug.
8713
8714 2010-03-28  Jan Hubicka  <jh@suse.cz>
8715
8716         PR tree-optimization/43505
8717         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
8718         map should not be copied.
8719
8720 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8721
8722         PR middle-end/41674
8723         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
8724         cdtors, set DECL_PRESERVE_P.
8725         * ipa.c (cgraph_externally_visible_p): Return true if declaration
8726         should be preseved.
8727
8728 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
8729
8730         PR tree-optimization/43528
8731         * stor-layout.c (place_field): Check that constant fits into
8732         unsigned HWI when skipping calculation of MS bitfield layout.
8733
8734 2010-03-27  Jan Hubicka  <jh@suse.cz>
8735
8736         PR middle-end/43391
8737         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
8738         notice_global_symbol work.
8739
8740 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
8741
8742         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
8743         instead of dwarf2out_decl.
8744         (struct var_loc_node): Remove section_label field.
8745         (dwarf2out_function_decl): New function.
8746         (dwarf2out_var_location): Don't set section_label field.
8747         (dwarf2out_begin_function): Don't empty decl_loc_table here.
8748
8749 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
8750
8751         PR tree-optimization/43544
8752         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
8753         First argument for builtin vectorized function hook is now a
8754         tree to be able to distinguish between machine specific and
8755         standard builtins.
8756         * targhooks.c (default_builtin_vectorized_function): Ditto.
8757         * targhooks.h (default_builtin_vectorized_function): Ditto.
8758         * target.h (struct gcc_target): Ditto.
8759         * tree-vect-stmts.c (vectorizable_function): Ditto.
8760         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
8761         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
8762         Ditto.
8763
8764 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
8765
8766         PR c/43381
8767         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
8768         nested binding iff it is a FUNCTION_DECL.
8769         (store_parm_decls_newstyle): Pass nested=true to bind for
8770         FUNCTION_DECLs amongst parameters.
8771
8772 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
8773
8774         * var-tracking.c (vt_expand_loc_callback): Don't run
8775         cselib_expand_value_rtx_cb in dummy mode if
8776         cselib_dummy_expand_value_rtx_cb returned false.
8777
8778         * var-tracking.c (emit_note_insn_var_location): For one part
8779         notes with offset 0, don't add EXPR_LIST around the location.
8780         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
8781         add_location_or_const_value_attribute): Adjust for that change.
8782
8783         PR debug/43540
8784         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
8785         into first operand and location into second.
8786         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
8787         dw_cfi_oprnd_loc for DW_CFA_expression.
8788         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
8789         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
8790         assume first argument is regnum and second argument is location.
8791
8792 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
8793
8794         PR target/42113
8795         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
8796         of scratch register to DImode.  Split to DImode comparison operator.
8797         Use SImode subreg of scratch register in the multiplication.
8798         (*cmp_sadd_sidi): Ditto.
8799         (*cmp_ssub_si): Ditto.
8800         (*cmp_ssub_sidi): Ditto.
8801
8802 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
8803
8804         PR target/43524
8805         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
8806         Remove invalid assert and wrong comment.
8807
8808 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
8809
8810         PR debug/43516
8811         * flags.h (final_insns_dump_p): New extern.
8812         * final.c (final_insns_dump_p): New variable.
8813         (rest_of_clean_state): Set it before -fdump-final-insns=
8814         dumping, clear afterwards.
8815         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
8816         MEM_ALIAS_SET on MEMs.
8817
8818 2010-03-26  David S. Miller  <davem@davemloft.net>
8819
8820         * configure.ac: Fix sparc GOTDATA_OP bug check.
8821         * configure: Rebuild.
8822
8823 2010-03-26  Alan Modra  <amodra@gmail.com>
8824
8825         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
8826
8827 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8828
8829         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
8830         TLS_SECTION_ASM_FLAG.
8831
8832 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
8833
8834         PR bootstrap/43511
8835         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
8836         Clear first_function_block_is_cold.
8837
8838         PR c/43385
8839         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
8840         argument if the argument is truth_value_p.
8841
8842 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8843
8844         * config/rs6000/constraints.md: Update copyright year for my changes.
8845
8846         PR target/43484
8847         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
8848         used in reg+reg addressing, swap registers.
8849
8850 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
8851
8852         PR debug/43293
8853         * target.h (struct gcc_target): Add code_end hook.
8854         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
8855         if not yet defined.
8856         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
8857         * toplev.c (compile_file): Call targetm.asm_out.code_end
8858         hook before unwind info/debug info output.
8859         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
8860         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
8861         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
8862         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
8863         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
8864         * config/i386/i386.c (ix86_file_end): Renamed to...
8865         (ix86_code_end): ... this.  Make static.  Don't call
8866         file_end_indicate_exec_stack.  Emit unwind info using
8867         final_start_function/final_end_function.
8868         (darwin_x86_file_end): Remove.
8869         (TARGET_ASM_CODE_END): Define.
8870         * config/i386/i386.h (TARGET_ASM_FILE_END,
8871         NEED_INDICATE_EXEC_STACK): Don't define.
8872         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
8873         (TARGET_ASM_FILE_END): Define to darwin_file_end.
8874         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
8875         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
8876
8877         PR target/43498
8878         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
8879         at the beginning and final_end_function at the end.
8880         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
8881
8882 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8883
8884         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
8885         and Sun as TLS syntax.
8886         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
8887         * configure: Regenerate.
8888         * config.in: Regenerate.
8889         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
8890         (default_elf_asm_named_section): Use it.
8891         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
8892         (i386_output_dwarf_dtprel): Likewise.
8893         (output_addr_const_extra): Likewise.
8894         (output_pic_addr_const): Lowercase @GOTTPOFF.
8895         (output_addr_const_extra): Likewise.
8896         (output_pic_addr_const): Lowercase @GOTNTPOFF.
8897         (output_addr_const_extra): Likewise.
8898         (output_pic_addr_const): Lowercase @INDNTPOFF.
8899         (output_addr_const_extra): Likewise.
8900         (output_pic_addr_const): Lowercase @NTPOFF.
8901         (output_addr_const_extra): Likewise.
8902         (output_pic_addr_const): Lowercase @TPOFF.
8903         (output_addr_const_extra): Likewise.
8904         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
8905         (*tls_global_dynamic_64): Likewise.
8906         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
8907         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
8908
8909         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
8910         (ASM_OUTPUT_TLS_COMMON): Use it.
8911         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
8912
8913         PR target/38118
8914         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
8915         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
8916         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
8917         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
8918         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
8919         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
8920
8921 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8922
8923         * config/i386/i386.c (override_options): Don't accept
8924         -mtls-dialect=sun any longer.
8925         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
8926         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
8927         (*tls_local_dynamic_base_32_sun): Likewise.
8928         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
8929
8930 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
8931
8932         PR debug/43508
8933         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
8934         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
8935
8936         PR debug/43479
8937         * ira.c (adjust_cleared_regs): New function.
8938         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
8939
8940         PR debug/19192
8941         PR debug/43479
8942         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
8943         from gimple_block.
8944         * expr.c (expand_expr_real): Restore previous
8945         curr_insn_source_location and curr_insn_block after
8946         expand_expr_real_1 call.
8947         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
8948         instead of expand_expr_real_1.
8949
8950 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
8951
8952         PR rtl-optimization/43413
8953         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
8954         hard regs too.
8955
8956 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
8957
8958         PR target/43348
8959         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
8960         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
8961
8962 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
8963
8964         * config/i386/i386.c (ix86_target_string): Add -mfma.
8965         Fix a typo in comment.
8966
8967 2010-03-22  Mike Stump  <mikestump@comcast.net>
8968
8969         PR target/23071
8970         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
8971         Don't overly align based upon packed packed fields.
8972
8973 2010-03-22  Jason Merrill  <jason@redhat.com>
8974
8975         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
8976         Use () rather than [], and move before the element type.
8977
8978 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8979
8980         * doc/configfiles.texi (Configuration Files): Removed
8981         fixinc/Makefile*, intl/Makefile.*.
8982         * doc/makefile.texi: Fixed markup. Abstract from version
8983         control system used.
8984         (Makefile): Removed obsolete gcc/java/parse.y example.
8985         * doc/sourcebuild.texi: Likewise.
8986         (Top Level): Added config, gnattools, libdecnumber, libgcc,
8987         libgomp, libssp.  Removed fastjar.
8988         (Miscellaneous Docs): Clarify location.
8989         Added COPYING3, COPYING3.LIB.
8990         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
8991
8992 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8993
8994         PR target/38085
8995         * config/i386/i386.c (x86_function_profiler)
8996         [!NO_PROFILE_COUNTERS]: Fix typo.
8997         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
8998         instead of callq.
8999
9000 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
9001             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9002
9003         * doc/sourcebuild.texi (Test Directives): Split into six
9004         subsections, with most of the current text in new subsections
9005         Directives, Selectors, and Final Actions.
9006         (Directives): Split list of test directives into multiple
9007         subsubsections.
9008         (Selectors): Describe use and syntax of selectors.
9009         (Effective-Target Keywords): Describe all existing keywords.
9010         (Add Options): Describe features for dg-add-options.
9011         (Require Support): Describe variants of dg-require-support.
9012         (Final Actions): Describe commands to use in dg-final.
9013
9014 2010-03-22  Michael Matz  <matz@suse.de>
9015
9016         PR middle-end/43475
9017         * recog.c (validate_replace_rtx_group): Replace also in
9018         REG_EQUAL and REG_EQUIV notes.
9019
9020 2010-03-22  Richard Guenther  <rguenther@suse.de>
9021
9022         PR tree-optimization/43390
9023         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
9024         sure vector extracts are type correct.
9025
9026 2010-03-22  Richard Guenther  <rguenther@suse.de>
9027
9028         PR middle-end/40106
9029         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
9030         x * sqrt (x) even when optimizing for size if the target
9031         has native support for sqrt.
9032
9033 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
9034
9035         * varasm.c (make_decl_rtl_for_debug): Also clear
9036         flag_mudflap for the duration of make_decl_rtl call.
9037
9038         PR debug/43443
9039         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
9040         locs from preserved VALUEs.
9041
9042 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9043
9044         PR middle-end/42718
9045         * pa.md (movmemsi): Set align to one if zero.
9046         (movmemdi): Likewise.
9047
9048 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
9049
9050         PR target/42321
9051         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
9052         with their corresponding prologue pushes.
9053
9054 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
9055
9056         PR target/43156
9057         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
9058         at the begining or end.
9059         (spu_expand_epilogue): Likewise.
9060
9061 2010-03-20  Richard Guenther  <rguenther@suse.de>
9062
9063         PR rtl-optimization/43438
9064         * combine.c (make_extraction): Properly zero-/sign-extend an
9065         extraction of the low part of a CONST_INT.  Also handle
9066         CONST_DOUBLE.
9067
9068 2010-03-19  Mike Stump  <mikestump@comcast.net>
9069
9070         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
9071         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
9072         (override_options): Use SUBTARGET32_DEFAULT_CPU.
9073
9074 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
9075
9076         PR c/43211
9077         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
9078         an error.
9079
9080 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
9081
9082         PR rtl-optimization/42258
9083         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
9084         use that may match DEF.
9085
9086         PR target/40697
9087         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
9088         the cost of loading the constant rather than assuming
9089         COSTS_N_INSNS (1).
9090         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
9091         outer code is AND, do the same tests as the andsi3 expander and
9092         return COSTS_N_INSNS (1) if and is cheap.
9093
9094         * optabs.c (avoid_expensive_constant): Fix formatting.
9095
9096 2010-03-19  Michael Matz  <matz@suse.de>
9097
9098         PR c++/43116
9099         * attribs.c (decl_attributes): When rebuilding a function pointer
9100         type use the same qualifiers as the original pointer type.
9101
9102 2010-03-19  Martin Jambor  <mjambor@suse.cz>
9103
9104         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
9105         and is_gimple_ip_invariant_address.
9106
9107 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9108
9109         Revert
9110         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9111
9112         * config/arm/arm.c (arm_override_options): Turn off
9113         flag_dwarf2_cfi_asm for AAPCS variants.
9114
9115 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9116
9117         PR target/43399
9118         * config/arm/arm.c (emit_multi_reg_push): Update comments.
9119         Use PRE_MODIFY instead of PRE_DEC.
9120         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
9121         (vfp_emit_fstmd): Likewise.
9122
9123 2010-03-19  Michael Matz  <matz@suse.de>
9124
9125         PR target/43305
9126         * builtins.c (expand_builtin_interclass_mathfn,
9127         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
9128         if that fails.
9129
9130 2010-03-19  Richard Guenther  <rguenther@suse.de>
9131
9132         PR tree-optimization/43415
9133         * tree-ssa-pre.c (phi_translate): Split out worker to ...
9134         (phi_translate_1): ... this.
9135         (phi_translate): Move all caching here.  Cache all NARY
9136         and REFERENCE translations.
9137
9138 2010-03-19  David S. Miller  <davem@davemloft.net>
9139
9140         With help from Eric Botcazou.
9141         * config/sparc/sparc.c: Include dwarf2out.h.
9142         (emit_pic_helper): Delete.
9143         (pic_helper_symbol_name): Delete.
9144         (pic_helper_emitted_p): Delete.
9145         (pic_helper_needed): New.
9146         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
9147         (get_pc_thunk_name): New.
9148         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
9149         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
9150         Set pic_helper_needed to true.  Don't call emit_pic_helper.
9151         (sparc_expand_prologue): Update load_pic_register call.
9152         (sparc_output_mi_thunk): Likewise.
9153         (sparc_file_end): Emit a hidden comdat symbol for the PIC
9154         thunk if possible.  Output CFI information as needed.
9155
9156 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9157             Jack Howarth <howarth@bromo.med.uc.edu>
9158
9159         PR target/36399
9160         * config/i386/i386.h: Fix ABI on darwin x86-32.
9161
9162 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
9163
9164         * tree.h: Declare make_decl_rtl_for_debug.
9165         * varasm.c (make_decl_rtl_for_debug): New.
9166         * dwarf2out.c (rtl_for_decl_location): Call it.
9167         * cfgexpand.c (expand_debug_expr): Call it.
9168
9169 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
9170
9171         PR bootstrap/43399
9172         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
9173         mem_mode.
9174
9175         PR bootstrap/43403
9176         * var-tracking.c (vt_init_cfa_base): Do nothing if
9177         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
9178
9179 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
9180
9181         PR debug/42873
9182         * var-tracking.c (canonicalize_vars_star): New.
9183         (dataflow_post_merge_adjust): Use it.
9184
9185 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
9186
9187         PR debug/43058
9188         * var-tracking.c (non_suitable_const): New function.
9189         (add_uses): For DEBUG_INSNs with constants, don't record any
9190         value, instead just the constant value itself.
9191         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
9192         is not VAR_LOC_UNKNOWN_P, set var to the constant.
9193         (emit_notes_in_bb): Likewise.
9194         (emit_note_insn_var_location): For onepart variables if
9195         cur_loc is a VOIDmode constant, use DECL_MODE.
9196
9197 2010-03-18  Martin Jambor  <mjambor@suse.cz>
9198
9199         PR middle-end/42450
9200         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
9201         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
9202         all non-clones.  Moved call redirection...
9203         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
9204         (cgraph_materialize_all_clones): Dispose of all
9205         combined_args_to_skip bitmaps.
9206         (verify_cgraph_node): Do not check for edges pointing to wrong
9207         nodes in inline clones.
9208         * tree-inline.c (copy_bb): Call
9209         cgraph_redirect_edge_call_stmt_to_callee.
9210         * ipa.c (cgraph_remove_unreachable_nodes): Call
9211         cgraph_node_remove_callees even when there are used clones.
9212
9213 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
9214
9215         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
9216
9217 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
9218
9219         PR target/43383
9220         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
9221         for 32bit.
9222
9223 2010-03-18  Michael Matz  <matz@suse.de>
9224
9225         PR middle-end/43419
9226         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
9227         into sqrt(x) if we need to preserve signed zeros.
9228
9229 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
9230             Eric Botcazou  <ebotcazou@adacore.com>
9231
9232         PR rtl-optimization/43360
9233         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
9234         note if we don't know its invariant status.
9235
9236 2010-03-18  Michael Matz  <matz@suse.de>
9237
9238         PR tree-optimization/43402
9239         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
9240         PHI chains of ssa names registered for update.
9241
9242 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
9243
9244         PR target/42427
9245         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
9246         non-offsettable and pre_modify update addressing.
9247         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
9248         and "2" alternatives "#".
9249         (*movdd_softfloat32): Make all alternatives "#";
9250         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
9251         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
9252         (*movdf_softfloat32): Make all alternatives "#";
9253         (movdi): Use the new DIFD mode iterator to create a common splitter
9254         for movdi, movdf and movdd patterns.
9255
9256 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
9257
9258         * common.opt (dumpdir): Remove redundant tab.
9259
9260 2010-03-17  Martin Jambor  <mjambor@suse.cz>
9261
9262         PR tree-optimization/43347
9263         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
9264         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
9265
9266 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
9267
9268         PR rtl-optimization/42216
9269         * regrename.c (create_new_chain): New function, broken out from...
9270         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
9271         appending a use to an empty chain.
9272         (build_def_use): Remove previous changes that convert OP_INOUT to
9273         OP_OUT operands; instead detect the case where an OP_INOUT operand
9274         uses a previously untracked register and create an empty chain for it.
9275
9276 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9277
9278         * doc/extend.texi (Function Attributes): Rewrite unfinished
9279         sentence in ms_abi documentation.
9280
9281 2010-03-17  Alan Modra  <amodra@gmail.com>
9282
9283         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
9284         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
9285         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
9286         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
9287
9288 2010-03-16  Richard Henderson  <rth@redhat.com>
9289
9290         PR middle-end/43365
9291         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
9292         (lower_try_finally): Save and restore eh_seq around the expansion
9293         of the try-finally.
9294
9295 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
9296
9297         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
9298         statements before splitting block.
9299
9300 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9301
9302         * doc/sourcebuild.texi (Testsuites): Fix markup.
9303         Use pathnames relative to gcc/testsuite.
9304         (Test Directives): Move description of how timeout is determined.
9305         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
9306         (C Tests): Correct gcc.misc-tests directory.
9307         Framework tests now live in gcc.test-framework.
9308
9309 2010-03-16  Richard Guenther  <rguenther@suse.de>
9310
9311         PR middle-end/43379
9312         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
9313         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
9314
9315 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
9316             Alexandre Oliva  <aoliva@redhat.com>
9317
9318         PR tree-optimization/42917
9319         * lambda-code.c (remove_iv): Skip debug statements.
9320         (lambda_loopnest_to_gcc_loopnest): Likewise.
9321         (not_interesting_stmt): Debug statements are not interesting.
9322
9323 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
9324
9325         PR debug/43051
9326         PR debug/43092
9327         * cselib.c (cselib_preserve_constants,
9328         cfa_base_preserved_val): New static variables.
9329         (preserve_only_constants): New function.
9330         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
9331         clear its REG_VALUES.  If cselib_preserve_constants, don't
9332         empty the whole hash table, but preserve there VALUEs with constants,
9333         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
9334         (cselib_preserve_cfa_base_value): New function.
9335         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
9336         (cselib_init): Change argument to int bitfield.  Set
9337         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
9338         is in it.
9339         (cselib_finish): Clear cselib_preserve_constants and
9340         cfa_base_preserved_val.
9341         * cselib.h (enum cselib_record_what): New enum.
9342         (cselib_init): Change argument to int.
9343         (cselib_preserve_cfa_base_value): New prototype.
9344         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
9345         * dse.c (dse_step1): Likewise.
9346         * cfgcleanup.c (thread_jump): Likewise.
9347         * sched-deps.c (sched_analyze): Likewise.
9348         * gcse.c (local_cprop_pass): Likewise.
9349         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
9350         If FN is non-NULL, call the callback always and whenever it returns
9351         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
9352         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
9353         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
9354         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
9355         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
9356         * var-tracking.c: Include recog.h.
9357         (bb_stack_adjust_offset): Remove.
9358         (vt_stack_adjustments): Don't call it, instead just gather the
9359         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
9360         (adjust_stack_reference): Remove.
9361         (compute_cfa_pointer): New function.
9362         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
9363         (struct adjust_mem_data): New type.
9364         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
9365         functions.
9366         (get_address_mode): New function.
9367         (replace_expr_with_values): Use it.
9368         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
9369         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
9370         (adjust_sets): Remove.
9371         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
9372         Use get_address_mode.
9373         (get_adjusted_src): Remove.
9374         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
9375         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
9376         (add_with_sets): Don't call adjust_sets.
9377         (fp_setter, vt_init_cfa_base): New functions.
9378         (vt_initialize): Change return type to bool.  Move most of pool etc.
9379         initialization to the beginning of the function from end.  Pass
9380         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
9381         If !frame_pointer_needed, call vt_stack_adjustment before mos
9382         vector is filled, call vt_init_cfa_base if argp/framep has been
9383         eliminated to sp.  If frame_pointer_needed and argp/framep has
9384         been eliminated to hard frame pointer, set
9385         hard_frame_pointer_adjustment and call vt_init_cfa_base after
9386         encountering fp setter in the prologue.  For MO_ADJUST, call
9387         log_op_type before pusing the op into mos vector, not afterwards.
9388         Call adjust_insn before cselib_process_insn/add_with_sets,
9389         call cancel_changes (0) afterwards.
9390         (variable_tracking_main_1): Adjust for vt_initialize calling
9391         vt_stack_adjustments and returning whether it succeeded or not.
9392
9393 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
9394
9395         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
9396         debug statements.
9397
9398 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
9399
9400         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
9401         has been set.
9402         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
9403         drap_reg has not been set.
9404
9405 2010-03-15  Michael Matz  <matz@suse.de>
9406
9407         PR middle-end/43300
9408         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
9409         use it to expand block copies.
9410         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
9411         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
9412         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
9413
9414 2010-03-15  Richard Guenther  <rguenther@suse.de>
9415
9416         PR tree-optimization/43367
9417         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
9418         elimination check.
9419
9420 2010-03-15  Richard Guenther  <rguenther@suse.de>
9421
9422         PR tree-optimization/43317
9423         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
9424
9425 2010-03-15  Martin Jambor  <mjambor@suse.cz>
9426
9427         PR tree-optimization/43141
9428         * tree-sra.c (create_abstract_origin): New function.
9429         (modify_function): Call create_abstract_origin.
9430
9431 2010-03-15  Chris Demetriou  <cgd@google.com>
9432
9433         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
9434         wasn't copied.
9435
9436 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9437
9438         PR middle-end/43354
9439         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
9440         call insert_out_of_ssa_copy for default definitions.
9441
9442 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9443
9444         * graphite-clast-to-gimple.c (my_long_long): Defined.
9445         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
9446         * graphite-sese-to-poly.c (my_long_long): Defined.
9447         (scop_ivs_can_be_represented): Use it.
9448
9449 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9450
9451         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
9452         graphite-max-bbs-per-function, and loop-block-tile-size.
9453         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
9454         with "maximum".
9455         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
9456
9457 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9458
9459         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
9460         forward declaration.
9461         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
9462         (add_upper_bounds_from_estimated_nit): New.
9463         (build_loop_iteration_domains): Use it.
9464
9465 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9466
9467         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
9468
9469 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9470
9471         PR middle-end/43306
9472         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
9473         should be an INTEGER_CST.  Also handle CASE_CONVERT.
9474
9475 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9476
9477         * graphite.c (graphite_initialize): To bound the number of bbs per
9478         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
9479         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
9480         * doc/invoke.texi: Document it.
9481
9482 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9483
9484         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
9485         * graphite-sese-to-poly.h (build_poly_scop): Same.
9486
9487 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
9488
9489         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
9490         the number of parameters in the scop.  Use as an upper bound
9491         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
9492         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
9493         * doc/invoke.texi: Document it.
9494
9495 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
9496
9497         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
9498         * doc/c-tree.texi: Remove.
9499         * doc/generic.texi: Merge c-tree.texi here.
9500         * doc/gccint.texi (Trees): Remove menu entry.
9501         (c-tree.texi): Remove @include.
9502         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
9503         * doc/languages.texi (Reading RTL): Ditto.
9504
9505 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
9506
9507         PR target/42869
9508         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
9509
9510 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9511
9512         PR middle-end/42431
9513         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
9514         code added to work around reload clobbering CONST insns.
9515
9516 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
9517
9518         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
9519         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
9520         (cselib_preserve_only_values): Remove retain argument, don't
9521         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
9522         * cselib.h (cselib_preserve_only_values): Remove retain argument.
9523         * var-tracking.c (micro_operation): Move insn field before union.
9524         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
9525         (struct variable_tracking_info_def): Remove n_mos field, change
9526         mos into a vector of micro_operations.
9527         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
9528         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
9529         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
9530         changing into a vector.
9531         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
9532         come before all other uops generated by add_stores.
9533         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
9534         argument removal.
9535         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
9536         a vector.  Run just one pass over the bbs instead of separate counting
9537         and computation phase.
9538         (vt_finalize): Free VTI (bb)->mos vector instead of array.
9539
9540         PR debug/43329
9541         * tree-inline.c (remap_decls): Put old_var rather than origin_var
9542         into *nonlocalized_list vector.
9543         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
9544         even if origin is non-NULL.
9545         (gen_variable_die): Likewise.
9546         (process_scope_var): Don't change origin.
9547         (gen_decl_die): Likewise.
9548         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
9549         before adding new edges instead of after it, fix moving over
9550         debug stmts.
9551
9552 2010-03-11  David S. Miller  <davem@davemloft.net>
9553
9554         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
9555         of four.
9556         * configure: Rebuild.
9557
9558 2010-03-11  Martin Jambor  <mjambor@suse.cz>
9559
9560         PR tree-optimization/43257
9561         * tree.c (assign_assembler_name_if_neeeded): New function.
9562         (free_lang_data_in_cgraph): Assembler name assignment moved to the
9563         above new function.
9564         * tree.h (assign_assembler_name_if_neeeded): Declare.
9565         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
9566         the function if needed.
9567
9568 2010-03-11  Chris Demetriou  <cgd@google.com>
9569
9570         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
9571         include/stdint-gcc.h, and include/stdint.h world-readable.
9572
9573 2010-03-11  Richard Guenther  <rguenther@suse.de>
9574
9575         PR tree-optimization/43255
9576         * tree-vrp.c (process_assert_insertions_for): Do not insert
9577         asserts for trivial conditions.
9578
9579 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9580
9581         PR tree-optimization/43280
9582         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
9583         generation.  Move calculation of size out of the if branch.
9584         (find_bswap): Modify compare number generation.
9585
9586 2010-03-11  Richard Guenther  <rguenther@suse.de>
9587
9588         PR lto/43200
9589         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
9590         (input_gimple_stmt): Fixup handled component types during
9591         operand read.  Also fix up decls in ADDR_EXPRs.
9592
9593 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
9594
9595         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
9596         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
9597
9598 2010-03-10  Jan Hubicka  <jh@suse.cz>
9599
9600         PR c/43288
9601         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
9602         * varasm.c (get_variable_section): Don't do that here...
9603         (make_decl_rtl): ... and here.
9604         (do_assemble_alias): Produce decl RTL.
9605         (assemble_alias): Likewise.
9606
9607 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
9608
9609         PR debug/43290
9610         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
9611         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
9612         of fde->vdrap_reg.
9613         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
9614         (based_loc_descr): Only express drap or vdrap regno based expressions
9615         using DW_OP_fbreg when not optimizing.
9616         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
9617         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
9618         REG_CFA_SET_VDRAP note.
9619
9620 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
9621
9622         PR tree-optimization/43236
9623         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
9624         error in calculation of base address in reverse iteration case.
9625         (generate_builtin): Take number of latch executions if the statement
9626         is in the latch.
9627
9628 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
9629
9630         PR middle-end/42859
9631         * tree-eh.c: Include pointer-set.h.
9632         (lower_eh_dispatch): Filter out duplicate case labels and
9633         remove the unneeded edge when the label is unused.  Return
9634         true when some edges are removed.
9635         (execute_lower_eh_dispatch): When any lowering resulted in
9636         removing an edge, also delete unreachable blocks.
9637
9638 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
9639
9640         PR bootstrap/43287
9641         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
9642         UNSPEC_MACHOPIC_OFFSET.
9643
9644 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
9645
9646         PR target/43294
9647         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
9648         (m68k_delegitimize_address): New function.
9649
9650 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
9651
9652         PR debug/43299
9653         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
9654
9655         PR debug/43299
9656         * var-tracking.c (adjust_sets): New function.
9657         (count_with_sets, add_with_sets): Use it.
9658         (get_adjusted_src): New inline function.
9659         (add_stores): Use it.
9660
9661         PR debug/43304
9662         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
9663         call cselib_dummy_expand_value_rtx_cb instead of
9664         cselib_expand_value_rtx_cb.
9665
9666         PR debug/43293
9667         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
9668         * config/i386/i386.c: Include debug.h and dwarf2out.h.
9669         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
9670         and .cfi_endproc around the pic thunks.
9671         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
9672         all queued unwind info register saves are saved before the call.
9673         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
9674         considered as sp-=4 for unwind info and the pop as sp+=4 which
9675         also clobbers dest, but doesn't actually restore it.
9676
9677         PR debug/43290
9678         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
9679         RTX_FRAME_RELATED_P.
9680
9681 2010-03-09  Jie Zhang  <jie@codesourcery.com>
9682
9683         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
9684         whitespaces in output template.
9685
9686 2010-03-09  Jie Zhang  <jie@codesourcery.com>
9687
9688         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
9689         out array boundary.
9690
9691 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
9692
9693         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
9694         builtins.exp in a separate job.
9695
9696 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9697
9698         * graphite-sese-to-poly.c (add_param_constraints): Use
9699         lower_bound_in_type and upper_bound_in_type.
9700
9701 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9702
9703         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
9704         instead of unsigned_type_node.
9705
9706 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9707             Reza Yazdani  <reza.yazdani@amd.com>
9708
9709         PR middle-end/43065
9710         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
9711         on pointer type parameters.
9712
9713 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
9714
9715         PR middle-end/42644
9716         PR middle-end/42130
9717         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
9718         handle conversions from pointer to integers.
9719         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
9720         induction variable, to be able to work with code generated by CLooG.
9721         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
9722         (build_poly_scop): Bail out if we cannot codegen a loop.
9723
9724 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
9725
9726         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
9727         code generation with gloog_error.
9728
9729 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9730
9731         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
9732         Call fold_convert on all the returned values.
9733         (expand_scalar_variables_expr): Pass to
9734         expand_scalar_variables_ssa_name the type of the resulting expression.
9735
9736 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9737
9738         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
9739         ppl_min_for_le_pointset.
9740         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
9741         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
9742
9743 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9744
9745         * graphite-dependences.c (map_into_dep_poly): Removed.
9746         (dependence_polyhedron_1): Use combine_context_id_scat.
9747
9748 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9749
9750         * graphite-poly.h (struct poly_scattering): Add layout documentation.
9751         (struct poly_bb): Same.
9752         (combine_context_id_scat): New.
9753
9754 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9755
9756         PR middle-end/42326
9757         * sese.c (name_defined_in_loop_p): Return false for default
9758         definitions.
9759
9760 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9761
9762         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
9763         and clean up the logic.
9764
9765 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
9766
9767         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
9768         early return.
9769
9770 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
9771
9772         * var-tracking.c (remove_cselib_value_chains): Define only for
9773         ENABLE_CHECKING.
9774         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
9775         delete_slot_part, emit_notes_for_differences_1): Don't call
9776         remove_cselib_value_chains here.
9777         (set_slot_part, emit_notes_for_differences_2): Don't call
9778         add_cselib_value_chains here.
9779         (preserved_values): New vector.
9780         (preserve_value): New function.
9781         (add_uses, add_stores, vt_add_function_parameters): Use it
9782         instead of cselib_preserve_value.
9783         (changed_values_stack): New vector.
9784         (check_changed_vars_0): New function.
9785         (check_changed_vars_1, check_changed_vars_2): Use it.
9786         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
9787         changed_values_stack VALUEs.
9788         (vt_emit_notes): For all preserved_values call
9789         add_cselib_value_chains.  If ENABLE_CHECKING call
9790         remove_cselib_value_chains before verifying value_chains is empty.
9791         Initialize and free changed_values_stack.
9792         (vt_initialize): Initialize preserved_values.
9793         (vt_finalize): Free preserved_values.
9794
9795 2010-03-08  Richard Guenther  <rguenther@suse.de>
9796
9797         PR tree-optimization/43269
9798         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
9799         region detection.
9800
9801 2010-03-08  Martin Jambor  <mjambor@suse.cz>
9802
9803         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
9804         (ipa_is_param_called): Removed.
9805         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
9806         (ipa_print_node_params): Do not print the called flag.
9807         (ipa_write_node_info): Do not stream the called flag.
9808         (ipa_read_node_info): Likewise.
9809
9810 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
9811
9812         PR debug/43176
9813         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
9814         * cselib.c (struct expand_value_data): Add dummy field.
9815         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
9816         dummy to false.
9817         (cselib_dummy_expand_value_rtx_cb): New function.
9818         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
9819         any rtl.
9820         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
9821         * var-tracking.c: Include pointer-set.h.
9822         (variable): Change n_var_parts to char from int.  Add
9823         cur_loc_changed and in_changed_variables fields.
9824         (variable_canonicalize): Remove.
9825         (shared_var_p): New inline function.
9826         (unshare_variable): Maintain cur_loc_changed and
9827         in_changed_variables fields.  If var was in changed_variables,
9828         replace it there with new_var.  Just copy cur_loc instead of
9829         resetting it to something else.
9830         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
9831         (dataflow_set_union): Don't call variable_canonicalize.
9832         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
9833         of their DEBUG_EXPR_TREE_DECLs.
9834         (canonicalize_loc_order_check): Verify that cur_loc is NULL
9835         and in_changed_variables and cur_loc_changed is false.
9836         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
9837         and cur_loc_changed.  Don't update cur_loc here.
9838         (variable_merge_over_src): Don't call variable_canonicalize.
9839         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
9840         removing loc that is equal to cur_loc, clear cur_loc,
9841         set cur_loc_changed and ensure variable_was_changed is called.
9842         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
9843         compare pointers in cur_loc check, if it is equal to loc,
9844         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
9845         (variable_different_p): Remove compare_current_location argument,
9846         don't compare cur_loc.
9847         (dataflow_set_different_1): Adjust variable_different_p caller.
9848         (variable_was_changed): If dv had some var in changed_variables
9849         already, reset in_changed_variables flag for it and propagate
9850         cur_loc_changed over to the new variable.  On empty var
9851         always set cur_loc_changed.  Set in_changed_variables on whatever
9852         var is added to changed_variables.
9853         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
9854         Use shared_var_p.  When removing loc that is equal to cur_loc,
9855         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
9856         end, don't set it to something else, just call variable_was_changed.
9857         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
9858         loc being removed, clear cur_loc and set cur_loc_changed.
9859         Set cur_loc_changed if all locations have been removed.
9860         (struct expand_loc_callback_data): New type.
9861         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
9862         allocated.  Always create SUBREGs if simplify_subreg failed.
9863         Prefer to use cur_loc, when that fails and still in
9864         changed_variables (and seen first time) recompute it.  Set
9865         cur_loc_changed of variables which had to change cur_loc and
9866         compute elcd->cur_loc_changed if any of the subexpressions used
9867         had to change cur_loc.
9868         (vt_expand_loc): Adjust to pass arguments in
9869         expand_loc_callback_data structure.
9870         (vt_expand_loc_dummy): New function.
9871         (emitted_notes): New variable.
9872         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
9873         that weren't used for any other decl in current
9874         emit_notes_for_changes call call vt_expand_loc_dummy to update
9875         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
9876         first loc_chain location if NULL before.  Always use just
9877         cur_loc instead of first loc_chain location.  When cur_loc_changed
9878         is false, when not --enable-checking=rtl just don't emit any note.
9879         When rtl checking, compute the note and assert it is the same
9880         as previous note.  Clear cur_loc_changed and in_changed_variables
9881         at the end before removing from changed_variables.
9882         (check_changed_vars_3): New function.
9883         (emit_notes_for_changes): Traverse changed_vars to call
9884         check_changed_vars_3 on each changed var.
9885         (emit_notes_for_differences_1): Clear cur_loc_changed and
9886         in_changed_variables.  Recompute cur_loc of new_var.
9887         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
9888         (vt_emit_notes): Initialize and destroy emitted_notes.
9889
9890 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
9891
9892         PR rtl-optimization/42220
9893         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
9894         Use verify_reg_tracked to determine if we should use OP_OUT rather
9895         than OP_INOUT.
9896         (build_def_use): If we see an in-out operand for a register that we
9897         know nothing about, treat is an output if possible, fail the block if
9898         not.
9899
9900 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
9901
9902         PR debug/42897
9903         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
9904         permanently.
9905
9906 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
9907
9908         PR debug/42897
9909         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
9910         uses of relevant DEFs that are dead outside the loop too.
9911
9912 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
9913
9914         * var-tracking.c (dataflow_set_merge): Swap src and src2.
9915         Reverted:
9916         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
9917         PR debug/41371
9918         * var-tracking.c (values_to_unmark): New variable.
9919         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
9920         values_to_unmark vector.  Moved body to...
9921         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
9922         instead queue it into values_to_unmark vector.
9923         (vt_find_locations): Free values_to_unmark vector.
9924
9925 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
9926
9927         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
9928         (site.exp): Export them when plugins are enabled.
9929
9930 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
9931
9932         PR middle-end/42326
9933         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
9934         that contain scevs.
9935         (chrec_fold_multiply): Same.
9936
9937 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
9938
9939         PR c/43248
9940         * c-decl.c (build_compound_literal): Return early if init is
9941         an error_mark_node.
9942
9943 2010-03-04  Martin Jambor  <mjambor@suse.cz>
9944
9945         PR tree-optimization/43164
9946         PR tree-optimization/43191
9947         * tree-sra.c (type_consists_of_records_p): Reject records with
9948         zero-size bit-fields at the end.
9949
9950 2010-03-04  Mike Stump  <mikestump@comcast.net>
9951
9952         * Makefile.in (TAGS): Remove *.y.
9953
9954 2010-03-04  Richard Guenther  <rguenther@suse.de>
9955
9956         PR tree-optimization/40761
9957         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
9958         in reverse order.
9959         (my_rev_post_order_compute): New function.
9960         (init_pre): Call it.
9961
9962 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
9963
9964         PR middle-end/43209
9965         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
9966         decrease the cost of an IV candidate when the cost is infinite.
9967
9968 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9969
9970         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
9971         Use '3DNow!' for the extension of that name, ensure normal space
9972         after the string.
9973         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
9974
9975 2010-03-03  Jeff Law  <law@redhat.com>
9976
9977         * PR middle-end/32693
9978         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
9979         than gen_rtx_SUBREG.
9980         (extract_bit_field_1): Likewise.
9981
9982 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
9983
9984         * doc/sourcebuild.texi (Test directives): Document that arguments
9985         include-opts and exclude-opts are now optional for dg-skip-if,
9986         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
9987
9988 2010-03-03  Jason Merrill  <jason@redhat.com>
9989
9990         PR c++/12909
9991         * cgraph.h (varpool_node): Add extra_name field.
9992         * varpool.c (varpool_extra_name_alias): New.
9993         (varpool_assemble_decl): Emit extra name aliases.
9994         (varpool_mark_needed_node): Look past an extra name alias.
9995         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
9996         * lto-streamer-in.c (lto_input_tree): Read it.
9997         * lto-streamer-out.c (output_unreferenced_globals): Write it.
9998
9999 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
10000
10001         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
10002         (sparc*-*-solaris2*): ...this.
10003
10004 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
10005
10006         PR debug/43229
10007         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
10008         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
10009         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
10010         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
10011
10012         PR debug/43237
10013         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
10014         fallthrough to default handling, just with want_address 0 instead of 2.
10015         For single element lists, add_AT_loc directly, otherwise create an
10016         artificial variable DIE and stick location list to it.
10017
10018         PR debug/43177
10019         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
10020         (VAL_EXPR_HAS_REVERSE): Define.
10021         (reverse_op): New function.
10022         (add_stores): For reversible operations add an extra MO_VAL_USE.
10023
10024 2010-03-02  Jason Merrill  <jason@redhat.com>
10025
10026         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
10027
10028 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10029
10030         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
10031         (sparc64-*-linux*): Likewise.
10032         (sparc64-*-solaris2*): Include assembler files before linker ones.
10033         (sparc-*-solaris2*): Simplify and reorder to match previous case.
10034         * config/sparc/gas.h: Delete.
10035         * config/sparc/sol2-64.h: Add copyright notice.
10036         * config/sparc/sol2-gas-bi.h: Likewise.
10037         * config/sparc/sol2-gld.h: Likewise.
10038         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
10039         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
10040         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
10041         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
10042         (sparc_elf_asm_named_section): Rename into...
10043         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
10044
10045 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
10046
10047         * config/alpha/alpha.c (override_options): Fix -mtune error message.
10048
10049 2010-03-02  Jeff Law  <law@redhat.com>
10050
10051         PR middle-end/42431
10052         * reload1.c (rtx_p, substitute_stack): Declare.
10053         (substitute): Record addresses of changed rtxs.
10054         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
10055         Restore the original rtx when complete.
10056         (reload): Free subsitute_stack when complete.
10057
10058 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
10059
10060         * doc/gccint.texi (menu): Add Testsuites as a chapter.
10061         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
10062         new chapter.
10063         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
10064         LTO Testing, gcov Testing, profopt Testing, compat Testing,
10065         Torture Tests): Change from subsection to section.
10066
10067 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
10068             Steven Bosscher  <steven@gcc.gnu.org>
10069
10070         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
10071         instead of bb.
10072
10073 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
10074
10075         PR middle-end/42640
10076         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
10077         the assignment from the new induction variable to the assignment
10078         of the value from the original loop PHI function.
10079
10080 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
10081             Daniel Jacobowitz  <dan@codesourcery.com>
10082
10083         * doc/sourcebuild.texi (Test directives): Clarify options to
10084         dg-skip-if.
10085
10086 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10087
10088         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
10089         Disable cfi directives unless GCC and gas agree on using read-only
10090         .eh_frame sections for 64-bit.
10091         * configure: Regenerate.
10092
10093 2010-03-01  Richard Guenther  <rguenther@suse.de>
10094
10095         PR tree-optimization/43220
10096         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
10097         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
10098
10099 2010-03-01  Richard Guenther  <rguenther@suse.de>
10100             Martin Jambor  <mjambor@suse.cz>
10101
10102         PR middle-end/41250
10103         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
10104         gimplified parameters.
10105
10106 2010-03-01  Christian Bruel  <christian.bruel@st.com>
10107
10108         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
10109
10110 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
10111
10112         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
10113
10114 2010-03-01  Richard Guenther  <rguenther@suse.de>
10115
10116         PR middle-end/43213
10117         * expr.c (expand_assignment): Use the alias-oracle to tell
10118         if the rhs aliases the result decl.
10119
10120 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10121
10122         PR pch/14940
10123         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
10124         to sol_gt_pch_get_address.
10125         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
10126         64-bit, SPARC and x86.
10127         (sol_gt_pch_get_address): New function.
10128
10129 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
10130
10131         * toplev.h (inform_n, error_n): Declare.
10132         * diagnostic.c (inform_n, error_n): New function.
10133
10134 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
10135
10136         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
10137         has no rtl yet when processing local_decls, queue it and recheck
10138         if deferred stack allocation hasn't assigned it rtl.
10139
10140 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
10141
10142         * config/sh/sh.c (unspec_bbr_uid): New.
10143         (gen_block_redirect): Use it instead of INSN_UID.
10144         (gen_far_branch): Likewise.
10145
10146 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
10147
10148         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
10149         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
10150
10151 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10152
10153         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
10154         (Warning Options): -Wno-conversion-null is valid for
10155         Objective-C++ as well.
10156         * doc/tm.texi (Named Address Spaces): Likewise.
10157         * doc/plugins.texi (Plugins): Replace TABs with spaces.
10158         * doc/tree-ssa.texi (Tree SSA): Likewise.
10159
10160 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10161
10162         PR bootstrap/43202
10163         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
10164         by default.  Don't set the default arch for
10165         i[34567]86-*-darwin*|x86_64-*-darwin*.
10166
10167 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10168
10169         PR bootstrap/43202
10170         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
10171         default.  Set the default 32bit/64bit archs with $with_arch
10172         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
10173
10174 2010-02-27  Richard Guenther  <rguenther@suse.de>
10175
10176         PR tree-optimization/43186
10177         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
10178         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
10179         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
10180         unroller iterations.
10181
10182 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10183
10184         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
10185         required and i[34567]86-*-* targets don't support 64bit ISA.
10186
10187 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
10188
10189         PR ada/43096
10190         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
10191         the same alias set.
10192
10193 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
10194
10195         * config.gcc: Set the default arch at least to Prescott for
10196         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
10197         if SSE math is enabled.
10198
10199 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10200
10201         * diagnostic.c (diagnostic_initialize): Update.
10202         (diagnostic_report_diagnostic): Test inhibit_notes_p for
10203         informative notes.
10204         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
10205         (diagnostic_inhibit_notes): New.
10206         * toplev.c (process_options): inhibit notes with -fcompare-debug.
10207
10208 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10209
10210         PR c/20631
10211         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
10212         * doc/standards.texi: Likewise.
10213         * doc/extend.texi: Likewise.
10214         * doc/trouble.texi: Likewise.
10215         * doc/cppopts.texi: Likewise.
10216         * doc/install.texi: Likewise.
10217         * c.opt (std=c90,std=gnu90): New options.
10218         * c-opts.c (c_common_handle_option): Handle them.
10219
10220 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10221
10222         PR c/24577
10223         * c-decl.c (undeclared_variable): Use an informative note.
10224
10225 2010-02-26  Richard Guenther  <rguenther@suse.de>
10226
10227         PR tree-optimization/43186
10228         * gimple.h (gimple_fold): Remove.
10229         * gimple.c (gimple_fold): Remove.  Inline into single user ...
10230         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
10231         Try harder for conditions.
10232
10233 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
10234
10235         PR debug/43190
10236         * function.c (used_types_insert): Don't skip through named pointer
10237         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
10238         and it is different from the main variant's type.
10239
10240 2010-02-26  Nick Clifton  <nickc@redhat.com>
10241
10242         * config/rx/rx.md (sminsi3): Remove bogus alternative.
10243
10244 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
10245
10246         * config.gcc: Support --with-fpmath=sse for x86.
10247
10248         * config/i386/ssemath.h: New.
10249
10250         * doc/install.texi (--with-fpmath=sse): Documented.
10251
10252 2010-02-26  Richard Guenther  <rguenther@suse.de>
10253
10254         PR tree-optimization/43188
10255         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
10256         vector types of over-aligned element type.
10257
10258 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
10259
10260         PR target/43175
10261         * config/i386/i386.c (expand_vec_perm_blend): Use correct
10262         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
10263
10264 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
10265
10266         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
10267
10268 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
10269
10270         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
10271         * var-tracking.c: Include diagnostic.h.
10272         (debug_dv): New function.
10273         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
10274
10275         PR debug/43160
10276         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
10277         (add_value_chain, add_value_chains, remove_value_chain,
10278         remove_value_chains): Handle DEBUG_EXPRs.
10279         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
10280
10281         PR debug/43161
10282         * regcprop.c (struct queued_debug_insn_change): New type.
10283         (struct value_data_entry): Add debug_insn_changes field.
10284         (struct value_data): Add n_debug_insn_changes field.
10285         (debug_insn_changes_pool): New variable.
10286         (free_debug_insn_changes, apply_debug_insn_changes,
10287         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
10288         (kill_value_one_regno): Call free_debug_insn_changes if needed.
10289         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
10290         fields.
10291         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
10292         changes for them.
10293         (copyprop_hardreg_forward_1): Don't call apply_change_group for
10294         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
10295         changes, call cprop_find_used_regs via note_stores.
10296         (copyprop_hardreg_forward): When copying vd from predecessor
10297         which has any queued DEBUG_INSN changes, make sure the pointers are
10298         cleared.  At the end call df_analyze and then if there are any
10299         DEBUG_INSN changes queued at the end of some basic block for still
10300         live registers, apply them.
10301         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
10302
10303 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
10304
10305         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
10306         (arm*-*-*): Ditto.
10307
10308 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
10309
10310         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
10311         targets.  Set the default with_cpu/with_arch from arch/cpu.
10312         Allow x86-64 and native for with_cpu/with_arch.
10313
10314 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
10315
10316         * ebitmap.c: Change calls to verify_popcount with calls to
10317         sbitmap_verify_popcount.
10318         (ebitmap_clear_bit): Fixed map->cacheindex test and
10319         map>cache update when bit clearing results in an empty
10320         element.
10321
10322 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
10323
10324         PR target/43154
10325         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
10326         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
10327         and support both V2DF and V2DI modes.
10328         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
10329         support both V2DF and V2DI modes.
10330         (general): Delete trailing whitespace from a few patterns.
10331
10332         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10333         V2DF/V2DI interleave high/low builtins.
10334
10335         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
10336         new VSX builtins.
10337
10338         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
10339         interleave high/low functions.
10340
10341 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
10342
10343         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
10344         #pragma extern_prefix.
10345
10346 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
10347
10348         PR debug/43166
10349         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
10350         BLKmode, assert op0 is a MEM and just adjust its mode.
10351
10352         PR debug/43165
10353         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
10354         if bitpos isn't multiple of mode's bitsize.
10355
10356 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10357
10358         * c.opt (-ftemplate-depth=): New.
10359         (-ftemplate-depth-): Deprecate.
10360         * optc-gen.awk: Handle -ftemplate-depth=.
10361         * opth-gen.awk: Likewise.
10362         * c-opts.c (c_common_handle_option): Likewise.
10363         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
10364
10365 2010-02-24  Jason Merrill  <jason@redhat.com>
10366
10367         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
10368
10369 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10370
10371         * cfg.c (alloc_aux_for_block): Remove inline.
10372         (alloc_aux_for_edge): Likewise.
10373
10374 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10375
10376         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
10377
10378 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10379
10380         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
10381         * config/i386/sol2-gas.h: New file.
10382         * config.gcc (i[34567]86-*-solaris2*): Use it.
10383
10384 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10385
10386         PR c/43128
10387         * c-typeck.c (ep_convert_and_check): New.
10388         (build_conditional_expr): Use it.
10389         (build_binary_op): Likewise.
10390
10391 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
10392
10393         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
10394
10395         PR debug/43150
10396         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
10397         bounds even for -O+.
10398         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
10399         expr needs to have DECL_NAME set.
10400
10401 2010-02-24  Nick Clifton  <nickc@redhat.com>
10402
10403         * config/mep/mep.c: Include gimple.h.
10404         (mep_function_uses_sp): Delete unused function.
10405         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
10406         parameters.  Use unsigned integers to count args.  Return a
10407         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
10408
10409 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
10410
10411         PR target/43107
10412         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
10413         greater or equal to nelt instead of 2 * nelt.
10414         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
10415         with nelt - 1.
10416
10417 2010-02-23  Jason Merrill  <jason@redhat.com>
10418
10419         PR debug/42800
10420         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
10421         in cfun->local_decls even if they have register types.
10422
10423         PR c++/42837
10424         * stor-layout.c (place_field): Don't warn about unnecessary
10425         DECL_PACKED if the type is packed.
10426
10427 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
10428
10429         PR target/43139
10430         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
10431         GOTOFF relocs, even when the base reg isn't pic pointer.
10432
10433 2010-02-23  Michael Matz  <matz@suse.de>
10434
10435         PR debug/43077
10436         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
10437         (expand_gimple_basic_block): Generate and use debug temps if there
10438         are debug uses left after the last real use of TERed ssa names.
10439         Unlink debug immediate uses when they are expanded.
10440
10441 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10442
10443         PR 43123
10444         * config/i386/i386.c (override_options): Reorganise to provide
10445         better error messages.
10446
10447 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10448
10449         PR middle-end/43083
10450         * graphite-scop-detection.c (create_single_exit_edge): Move
10451         the call to find_single_exit_edge to....
10452         (create_sese_edges): ...here.  Don't handle multiple edges
10453         exiting the function.
10454         (build_graphite_scops): Don't handle multiple edges
10455         exiting the function.
10456
10457 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10458
10459         PR middle-end/43097
10460         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
10461         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
10462
10463 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
10464
10465         PR middle-end/43026
10466         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
10467
10468 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10469
10470         PR c++/43126
10471         * c-typeck.c (convert_arguments): Print declaration location.
10472         * c-common.c (validate_nargs): Rename as
10473         builtin_function_validate_nargs.
10474         (check_builtin_function_arguments): Update.
10475
10476 2010-02-22  Richard Guenther  <rguenther@suse.de>
10477
10478         PR lto/43045
10479         * tree-inline.c (declare_return_variable): Use the type of
10480         the call stmt lhs if available.
10481
10482 2010-02-22  Duncan Sands  <baldrick@free.fr>
10483
10484         * passes.c (register_pass): Always consider all pass lists when
10485         ref_pass_instance_number is zero.
10486
10487 2010-02-22  Richard Guenther  <rguenther@suse.de>
10488
10489         PR tree-optimization/42749
10490         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
10491         parameter.  Do arithmetic in the original type.
10492         (update_accumulator_with_ops): Likewise.
10493         (adjust_accumulator_values): Adjust.
10494
10495 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10496
10497         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
10498         (QI to BLKmode splitter): New splitter.
10499
10500 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
10501
10502         * config/i386/i386.c (initial_ix86_tune_features): Turn on
10503         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
10504
10505 2010-02-22  Richard Guenther  <rguenther@suse.de>
10506
10507         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
10508
10509 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
10510
10511         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
10512         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
10513         ($(T)crti.o, $(T)crtn.o): Remove rules.
10514
10515 2010-02-21  Tobias Burnus  <burnus@net-b.de>
10516
10517         PR fortran/35259
10518         * doc/invoke.texi (-fassociative-math): Document that this
10519         option is automatically enabled for Fortran.
10520
10521 2010-02-20  David S. Miller  <davem@davemloft.net>
10522
10523         * configure.ac: Test if linker and assembler properly support
10524         GOTDATA_OP relocations.
10525         * configure: Rebuild.
10526         * config.in: Likewise.
10527         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
10528         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
10529         (movsi_high_pic): Likewise.
10530         (movdi_lo_sum_pic): Likewise.
10531         (movdi_high_pic): Likewise.
10532         (movsi_pic_gotdata_op): New pattern.
10533         (movdi_pic_gotdata_op): Likewise.
10534         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
10535         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
10536
10537 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
10538
10539         PR target/43067
10540         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
10541         attribute to ssemul.
10542         (xop_mulv2div2di3_high): Ditto.
10543
10544 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10545
10546         PR c++/35669
10547         * c.opt (Wconversion-null): New option.
10548         * doc/invoke.texi (Wconversion-null): Document.
10549
10550 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10551
10552         * common.opt (Wlarger-than-): Add Undocumented.
10553
10554 2010-02-19  Mike Stump  <mikestump@comcast.net>
10555
10556         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
10557
10558 2010-02-19  Jason Merrill  <jason@redhat.com>
10559
10560         PR target/40332
10561         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
10562         * configure: Likewise.
10563
10564 2010-02-20  Alan Modra  <amodra@gmail.com>
10565
10566         PR middle-end/42344
10567         * cgraph.h (cgraph_make_decl_local): Declare.
10568         * cgraph.c (cgraph_make_decl_local): New function.
10569         (cgraph_make_node_local): Use it.
10570         * cgraphunit.c (cgraph_function_versioning): Likewise.
10571         * ipa.c (function_and_variable_visibility): Likewise.
10572
10573 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
10574
10575         PR bootstrap/43121
10576         * except.c (sjlj_emit_function_enter): Don't call
10577         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
10578         directly.
10579         * rtl.h (add_reg_br_prob_note): Remove prototype.
10580
10581 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10582
10583         PR 41779
10584         * c-common.c (conversion_warning): Remove widening conversions
10585         before checking the conversion of integers to reals.
10586
10587 2010-02-19  Mike Stump  <mikestump@comcast.net>
10588
10589         PR middle-end/43125
10590         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
10591
10592         PR objc/43061
10593         * cgraphunit.c (process_function_and_variable_attributes): Check
10594         DECL_PRESERVE_P instead of looking up attribute "used".
10595         * ipa-pure-const.c (check_decl): Likewise.
10596         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
10597         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
10598         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
10599         instead of attribute "used".
10600         * config/sol2-c.c (solaris_pragma_init): Likewise.
10601         (solaris_pragma_fini): Likewise.
10602
10603 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
10604
10605         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
10606         Use XCNEW instead of xcalloc.
10607         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
10608         XNEW instead of xmalloc.
10609         (get_fields): Use XNEWVEC instead of xmalloc.
10610
10611         PR debug/43084
10612         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
10613         populate vars array.
10614         (create_new_general_access): For debug stmts just reset value.
10615         (get_stmt_accesses): For accesses within debug stmts just record them
10616         using add_access_to_acc_sites instead of preventing the peeling or
10617         counting them as accesses.
10618
10619         PR middle-end/42233
10620         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
10621
10622 2010-02-19  Richard Guenther  <rguenther@suse.de>
10623
10624         PR tree-optimization/42916
10625         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
10626         instructions.
10627
10628 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
10629
10630         * configure.ac: Replace all uses of changequote in macro arguments
10631         with proper quoting.
10632
10633 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
10634
10635         PR middle-end/42233
10636         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
10637
10638 2010-02-19  Richard Guenther  <rguenther@suse.de>
10639
10640         PR tree-optimization/42944
10641         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
10642         test for aliasing with errno.
10643
10644 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
10645
10646         PR middle-end/42233
10647         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
10648         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
10649         * dojump.c: Include output.h.
10650         (inv): New inline function.
10651         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
10652         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
10653         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
10654         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
10655         argument, pass it down to other calls.
10656         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
10657         add REG_BR_PROB note to the conditional jump.
10658         * cfgexpand.c (add_reg_br_prob_note): Removed.
10659         (expand_gimple_cond): Don't call it, add the probability
10660         as last argument to jumpif_1/jumpifnot_1.
10661         * Makefile.in (dojump.o): Depend on output.h.
10662         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
10663         callers.
10664         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
10665         * stmt.c (do_jump_if_equal): Likewise.
10666         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
10667         * loop-unswitch.c (compare_and_jump_seq): Likewise.
10668         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
10669         Likewise.
10670         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
10671         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
10672         jumpifnot_1 callers.
10673         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
10674         callers.
10675         (store_expr): Adjust jumpifnot caller.
10676         (store_constructor): Adjust jumpif caller.
10677
10678         PR middle-end/42233
10679         * gimplify.c (gimple_boolify): For __builtin_expect call
10680         gimple_boolify also on its first argument.
10681
10682 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
10683
10684         * configure.ac (gnu-unique-object): Wrap regexps using [] in
10685         changequote block.
10686         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
10687         * configure: Regenerated.
10688
10689 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10690
10691         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
10692         lang_hooks.types_compatible_p instead of comptypes.
10693
10694 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
10695
10696         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
10697         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
10698         if __prefer_thumb__ is defined.
10699
10700 2010-02-18  Martin Jambor  <mjambor@suse.cz>
10701
10702         PR tree-optimization/43066
10703         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
10704         array with zero-sized element type.
10705
10706 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
10707
10708         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
10709         rtx, allocate struct var_loc_node here and return it to the
10710         caller, and only if it is actually needed.
10711         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
10712         move it earlier and return immediately if it returns NULL.
10713
10714 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
10715
10716         * config/sparc/gas.h: New file.  Restore
10717         TARGET_ASM_NAMED_SECTION to its ELF default.
10718         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
10719         check !HAVE_GNU_AS.
10720         * config/sparc/sparc.c (sparc_elf_asm_named_section):
10721         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
10722         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
10723         after sparc/sysv4.h.
10724
10725 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
10726
10727         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
10728
10729 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
10730
10731         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
10732         patterns from predicated pattern.
10733
10734 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
10735
10736         PR target/43103
10737         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
10738         for insn mnemonic suffix.
10739
10740 2010-02-17  Richard Guenther  <rguenther@suse.de>
10741
10742         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
10743         to loop PHI nodes.
10744
10745 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
10746
10747         PR debug/42918
10748         * caller-save.c (save_call_clobbered_regs): If BB ends with
10749         a DEBUG_INSN, move any notes in between last real insn and the last
10750         DEBUG_INSN after the last DEBUG_INSN.
10751
10752 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
10753
10754         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
10755         Fix return type.  Fix argument type.  Explain meaning of return value.
10756
10757 2010-02-16  Richard Guenther  <rguenther@suse.de>
10758
10759         PR tree-optimization/41043
10760         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
10761         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
10762         statements ...
10763         (vrp_visit_phi_node): ... but only for loop PHI nodes.
10764
10765 2010-02-16  Ira Rosen  <irar@il.ibm.com>
10766
10767         PR tree-optimization/43074
10768         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
10769         * tree-vect-loop.c (vect_analyze_loop_operations): Add
10770         vectorizable cycles in hybrid SLP check.
10771         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
10772
10773 2010-02-16  Richard Guenther  <rguenther@suse.de>
10774
10775         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
10776         (true_dependence): If memrefs_conflict_p computes must-alias
10777         trust it.  Move TBAA check after offset-based disambiguation.
10778         (canon_true_dependence): Likewise.
10779
10780 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
10781
10782         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
10783         * doc/invoke.texi: Document it.
10784         * var-tracking.c: Include toplev.h and params.h.
10785         (vt_find_locations): Return bool indicating success.  Compute
10786         hash sizes unconditionally.  Check new parameter, report.
10787         (variable_tracking_main_1): Check vt_find_locations results and
10788         retry.  Renamed from...
10789         (variable_tracking_main): ... this.  New wrapper to preserve
10790         flag_var_tracking_assignments.
10791         * Makefile.in (var-tracking.o): Adjust dependencies.
10792
10793 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
10794             Jakub Jelinek <jakub@redhat.com>
10795
10796         PR target/42854
10797         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
10798         if weak_import attribute is present.
10799         * config/darwin.c (machopic_select_section): Likewise.
10800
10801 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
10802
10803         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
10804         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
10805         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
10806         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
10807
10808         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
10809         types.
10810
10811         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10812         Fix argument types.
10813
10814         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
10815         Rewrite text to refer to the names.
10816
10817 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
10818
10819         * config/i386/i386-builtin-types.def
10820         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
10821         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
10822         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
10823         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
10824         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
10825         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
10826         IX86_BUILTIN_VPERMIL2PS256.
10827         (MULTI_ARG_4_DF2_DI_I): Defined.
10828         (MULTI_ARG_4_DF2_DI_I1): Defined.
10829         (MULTI_ARG_4_SF2_SI_I): Defined.
10830         (MULTI_ARG_4_SF2_SI_I1): Defined.
10831         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
10832         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
10833         __builtin_ia32_vpermil2ps256.
10834         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
10835         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
10836         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
10837         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
10838         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
10839         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
10840         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
10841         CODE_FOR_xop_vpermil2v8sf3.
10842         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
10843         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
10844         * config/i386/xopintrin.h (_mm_permute2_pd): New.
10845         (_mm256_permute2_pd): New.
10846         (_mm_permute2_ps): New.
10847         (_mm256_permute2_ps): New.
10848
10849 2010-02-15  Nick Clifton  <nickc@redhat.com>
10850
10851         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
10852         boolean parameters.  Use emit_jump_insn when emitting a pop
10853         instruction containing a return insn.
10854         (push): Use 'true' rather than '1' as second parameter to F.
10855         (h8300_expand_prologue): Likewise.
10856         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
10857         (h8300_expand_epilogue): Likewise.
10858
10859 2010-02-15  Richard Guenther  <rguenther@suse.de>
10860
10861         PR middle-end/43068
10862         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
10863         if that is zero.
10864
10865 2010-02-15  Nick Clifton  <nickc@redhat.com>
10866
10867         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
10868         delta.
10869
10870 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
10871
10872         * intl.c (fake_ngettext): New function.
10873         * intl.h (fake_ngettext): Declare.
10874         (ngettext): Define macro.
10875         * collect2.c (notice_translated): New function.
10876         (main): Use notice_translated and ngettext.
10877         * collect2.h (notice_translated): Declare.
10878
10879 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
10880
10881         * reorg.c (delete_computation): Comment fixes.
10882         * caller-save.c (setup_save_areas): Idem.
10883         * sel-sched-dump.c (dump_lv_set): Idem.
10884         * rtl.def: Idem.
10885
10886 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10887
10888         * config/s390/s390.c (s390_sched_init): New function.
10889         (TARGET_SCHED_INIT): Target hook defined.
10890
10891 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
10892             Jack Howarth  <howarth@bromo.med.uc.edu>
10893             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10894
10895         PR target/42982
10896         Partial revert of unintended change in fix for PR41605.
10897         * config/darwin.h: Fix typo.
10898         * config/darwin9.h: Same.
10899
10900 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
10901
10902         * c-pch.c (pch_init): Clear v.
10903
10904 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
10905
10906         PR middle-end/42930
10907         * graphite-scop-detection.c (graphite_can_represent_scev): Call
10908         graphite_can_represent_init for MULT_EXPR.
10909
10910 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
10911
10912         PR middle-end/42914
10913         PR middle-end/42530
10914         * graphite-sese-to-poly.c (remove_phi): New.
10915         (translate_scalar_reduction_to_array): Call remove_phi.
10916
10917 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
10918
10919         PR middle-end/42771
10920         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
10921         * graphite-clast-to-gimple.h (gloog): Update declaration.
10922         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
10923         * graphite-poly.h (struct poly_bb): Add missing comments.
10924         (struct scop): Add poly_scop_p field.
10925         (POLY_SCOP_P): New.
10926         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
10927         * graphite.c (graphite_transform_loops): Build the polyhedral
10928         representation for each scop before code generation.
10929         * sese.c (rename_variables_in_operand): Removed.
10930         (rename_variables_in_expr): Return the renamed expression.
10931         (rename_sese_parameters): New.
10932         * sese.h (rename_sese_parameters): Declared.
10933
10934 2010-02-11  Richard Guenther  <rguenther@suse.de>
10935
10936         PR tree-optimization/42998
10937         * tree-ssa-pre.c (create_expression_by_pieces): Treat
10938         POINTER_PLUS_EXPR properly.
10939
10940 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
10941             Changpeng Fang  <changpeng.fang@amd.com>
10942
10943         PR middle-end/40886
10944         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
10945         the cost of an IV candidate when the IV is used in a test against zero.
10946
10947         * gcc.dg/tree-ssa/ivopts-3.c: New.
10948
10949 2010-02-11  Richard Guenther  <rguenther@suse.de>
10950
10951         PR lto/41664
10952         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
10953         pointer-vs-decl case by swapping refs.  Handle some cases
10954         of pointer-vs-decl disambiguations more conservatively.
10955         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
10956         to false after expanding.
10957
10958 2010-02-11  Richard Guenther  <rguenther@suse.de>
10959
10960         PR driver/43021
10961         * gcc.c (process_command): Handle LTO file@offset case more
10962         appropriately.
10963
10964 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
10965
10966         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
10967         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
10968         of DEBUG_INSNs.
10969         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
10970
10971         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
10972         if MEM's mode size isn't DWARF2_ADDR_SIZE.
10973         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
10974         Optimize eq/ne comparisons when both arguments are known to be
10975         zero-extended.
10976         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
10977         Don't mask operands unnecessarily if they are known to be already
10978         zero-extended.
10979
10980 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
10981
10982         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
10983         instead of loop.
10984
10985 2010-02-10  Richard Guenther  <rguenther@suse.de>
10986
10987         PR tree-optimization/43017
10988         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
10989         for wrapping signed arithmetic.
10990
10991 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
10992
10993         PR debug/43010
10994         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
10995         if no debug info should be emitted for it.
10996
10997 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
10998
10999         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
11000         note when flag_exceptions is set.
11001
11002 2010-02-10  Duncan Sands  <baldrick@free.fr>
11003
11004         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
11005
11006 2010-02-10  Richard Guenther  <rguenther@suse.de>
11007
11008         PR c/43007
11009         * tree.c (get_unwidened): Handle constants.
11010         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
11011
11012 2010-02-10  Martin Jambor  <mjambor@suse.cz>
11013
11014         PR lto/42985
11015         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
11016         check for variable argument counts independently.
11017
11018 2010-02-10  Christian Bruel  <christian.bruel@st.com>
11019
11020         PR target/42841
11021         * config/sh/sh.c (find_barrier): Increase length for non delayed
11022         conditional branches.
11023
11024 2010-02-10  Christian Bruel  <christian.bruel@st.com>
11025
11026         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
11027
11028 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
11029
11030         * builtins.c (set_builtin_user_assembler_name): Also handle
11031         ffs if int is smaller than word.
11032
11033 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
11034
11035         PR middle-end/42973
11036         * ira-conflicts.c (get_dup): Remove.
11037         (process_reg_shuffles): Add new parameter.  Use it as an
11038         additional guard for copy generation.
11039         (add_insn_allocno_copies): Rewrite.
11040
11041 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
11042
11043         * common.opt (fsched2-use-traces): Preserved for backward
11044         compatibility.
11045         * doc/invoke.texi: Remove the documentation about option
11046         -fsched2-use-traces.
11047         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
11048         flag_sched2_use_traces.
11049         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
11050         the backward compatibility flag section.
11051
11052 2010-02-09  Richard Guenther  <rguenther@suse.de>
11053
11054         PR tree-optimization/43008
11055         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
11056         make HEAP variables initialized from global memory if they
11057         are not known builtin functions.
11058         (find_func_aliases): Adjust.
11059
11060 2010-02-09  Richard Guenther  <rguenther@suse.de>
11061
11062         PR tree-optimization/43000
11063         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
11064         arithmetic manually.
11065
11066 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
11067
11068         PR tree-optimization/42931
11069         * tree-loop-linear.c (try_interchange_loops): Don't call
11070         double_int_mul if estimated_loop_iterations failed.
11071
11072 2010-02-08  Martin Jambor  <mjambor@suse.cz>
11073
11074         PR middle-end/42898
11075         * tree-sra.c (build_accesses_from_assign): Do not mark in
11076         should_scalarize_away_bitmap if stmt has volatile ops.
11077         (sra_modify_assign): Do not process assigns piecemeal if if stmt
11078         has volatile ops.
11079
11080 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
11081
11082         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
11083
11084 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
11085
11086         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
11087         before the pattern.
11088
11089 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
11090
11091         PR middle-end/42946
11092         * df-core.c (df_finish_pass): Change type of saved_flags to int.
11093
11094 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
11095
11096         PR middle-end/42988
11097         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
11098         to unknown_dependence.
11099         (graphite_legal_transform_dr): Handle the unknown_dependence.
11100         (graphite_carried_dependence_level_k): Same.
11101
11102 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
11103
11104         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
11105
11106 2010-02-07  Richard Guenther  <rguenther@suse.de>
11107
11108         PR middle-end/42991
11109         * expr.c (get_inner_reference): Always initialize *pbitsize.
11110
11111 2010-02-07  Richard Guenther  <rguenther@suse.de>
11112
11113         PR middle-end/42956
11114         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
11115         new ARRAY_REFs on variable size element or minimal index arrays.
11116         Complete.
11117         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
11118         gimple_fold_indirect_ref.
11119
11120 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
11121
11122         PR target/42957
11123         * arm.c (arm_override_options): Just return if the user has specified
11124         an invalid fpu name.
11125
11126 2010-02-03  Jason Merrill  <jason@redhat.com>
11127
11128         PR c++/42870
11129         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
11130         i386_pe_maybe_record_exported_symbol.
11131
11132 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
11133
11134         PR target/42924
11135         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
11136         (pa_delegitimize_address): New function.
11137
11138 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
11139
11140         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
11141         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
11142
11143 2010-02-05  Richard Guenther  <rguenther@suse.de>
11144
11145         PR lto/42762
11146         * lto-streamer-in.c (get_resolution): Deal with references
11147         to undefined functions.
11148
11149 2010-02-05  Richard Guenther  <rguenther@suse.de>
11150
11151         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
11152         (fold_const_aggregate_ref): Likewise.
11153         (ccp_fold_stmt): Substitute loads.
11154         (maybe_fold_reference): Verify types before substituting.
11155         Unshare properly.
11156         (fold_gimple_assign): Unshare properly.
11157         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
11158
11159 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
11160
11161         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
11162         for rs6000_gen_cell_microcode.
11163
11164 2010-02-04  Richard Guenther  <rguenther@suse.de>
11165
11166         PR rtl-optimization/42952
11167         * dse.c (const_or_frame_p): Remove MEM handling.
11168
11169 2010-02-04  Nick Clifton  <nickc@redhat.com>
11170
11171         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
11172         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11173         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
11174         (mn10300_asm_output_mi_thunk): New function.
11175         (mn10300_can_output_mu_thunk): New function.
11176         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
11177         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
11178         (FUNCTION_ARG): Delete incorrect comment.
11179
11180 2010-02-03  Jason Merrill  <jason@redhat.com>
11181
11182         PR c++/40138
11183         * fold-const.c (operand_equal_p): Handle erroneous types.
11184
11185 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
11186
11187         * config/h8300/h8300.md (can_delay): Fix attibute condition.
11188
11189 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
11190
11191         PR rtl-optimization/42941
11192         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
11193         of xmalloc.
11194
11195 2010-02-03  Jason Merrill  <jason@redhat.com>
11196
11197         PR c++/35652
11198         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
11199
11200 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
11201
11202         PR debug/42896
11203         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
11204         (cselib_reset_table): Renamed from...
11205         (cselib_reset_table_with_next_value): ... this.
11206         (cselib_get_next_uid): Renamed from...
11207         (cselib_get_next_unknown_value): ... this.
11208         * cselib.c (next_uid): Renamed from...
11209         (next_unknown_value): ... this.
11210         (cselib_clear_table): Adjust.
11211         (cselib_reset_table): Adjust.  Renamed from...
11212         (cselib_reset_table_with_next_value): ... this.
11213         (cselib_get_next_uid): Adjust.  Renamed from...
11214         (cselib_get_next_unknown_value): ... this.
11215         (get_value_hash): Use hash.
11216         (cselib_hash_rtx): Likewise.
11217         (new_cselib_val): Adjust.  Set and dump uid.
11218         (cselib_lookup_mem): Pass next_uid as hash.
11219         (cselib_subst_to_values): Likewise.
11220         (cselib_log_lookup): Dump uid.
11221         (cselib_lookup): Pass next_uid as hash.  Adjust.
11222         (cselib_process_insn): Adjust.
11223         (cselib_init): Initialize next_uid.
11224         (cselib_finish): Adjust.
11225         (dump_cselib_table): Likewise.
11226         * dse.c (canon_address): Dump value uid.
11227         * print-rtl.c (print_rtx): Print value uid.
11228         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
11229         (dvuid): New type.
11230         (dv_uid): New function, sort of renamed from...
11231         (dv_htab_hash): ... this, reimplemented in terms of it and...
11232         (dv_uid2hash): ... this.  New.
11233         (variable_htab_eq): Drop excess assertions.
11234         (tie_break_pointers): Removed.
11235         (canon_value_cmp): Compare uids.
11236         (variable_post_merge_New_vals): Print uids.
11237         (vt_add_function_parameters): Adjust.
11238         (vt_initialize): Reset table.  Adjust.
11239
11240 2010-02-03  Richard Guenther  <rguenther@suse.de>
11241
11242         PR tree-optimization/42944
11243         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
11244         (call_may_clobber_ref_p_1): Likewise.  Properly handle
11245         malloc and calloc clobbering errno.
11246
11247 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
11248
11249         * doc/invoke.texi: Fix name of sched1 dump.
11250
11251         * opts.c (decode_options): Set flag_tree_switch_conversion
11252         only conditionally on optimize >= 2.
11253
11254         * gcse.c: Assorted comment fixes in pass description.
11255
11256 2010-02-03  Anthony Green  <green@moxielogic.com>
11257
11258         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
11259         nop padding in order to maintain alignment of storage location of
11260         target function address.
11261         (moxie_trampoline_init): Store target function address at newly
11262         aligned location.
11263         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
11264         to 32.
11265         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
11266
11267 2010-02-03  Richard Guenther  <rguenther@suse.de>
11268
11269         PR middle-end/42927
11270         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
11271
11272 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11273
11274         * config.gcc: Reenable check for obsolete targets.
11275         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
11276         mips-sgi-irix6.[0-4]*.
11277
11278 2010-02-02  Nick Clifton  <nickc@redhat.com>
11279
11280         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
11281         constant size of 4 as being the same as 0.
11282         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
11283         can take values in the range 0..4.
11284
11285 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
11286
11287         PR java/41991
11288         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
11289         as _darwin10_Unwind_FindEnclosingFunction().
11290         * libgcc-libsystem.ver: New.
11291
11292 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
11293
11294         PR target/41399
11295         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
11296         implicitly set registers.
11297
11298 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
11299
11300         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
11301         (arm_override_options): Allow automatic selection of the thread
11302         pointer register if thumb2.
11303         (legitimize_pic_address): Improve code sequences for Thumb2.
11304         (arm_call_tls_get_addr): Likewise.
11305         (legitimize_tls_address): Likewise.
11306         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
11307         (pic_load_addr_32bit): ... this.  New named pattern.
11308         * thumb2.md (pic_load_addr_thumb2): Delete.
11309         (pic_load_dot_plus_four): Delete.
11310         (tls_load_dot_plus_four): New named pattern.
11311
11312 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11313
11314         PR libgomp/29986
11315         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
11316         Document fix for TLS bug.
11317
11318 2010-01-31  Richard Guenther  <rguenther@suse.de>
11319
11320         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
11321         conservatively correct.
11322
11323 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11324
11325         PR target/42850
11326         Revert:
11327         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11328
11329         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11330
11331 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11332
11333         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
11334
11335 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
11336
11337         * config.gcc: Adjust order of makefile fragments for mingw targets.
11338
11339 2010-01-31  Richard Guenther  <rguenther@suse.de>
11340
11341         PR middle-end/42898
11342         * gimplify.c (gimplify_init_constructor): For volatile LHS
11343         initialize a temporary.
11344
11345 2010-01-31  Matthias Klose  <doko@ubuntu.com>
11346
11347         * configure.ac: Fix __stack_chk_fail check for cross builds configured
11348         --with-headers
11349         * configure: Regenerate.
11350
11351 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
11352
11353         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
11354         the same alias set and their sizes different constantness.
11355         (aliasing_component_refs_p): Revert 2009-10-24 change.
11356
11357 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11358
11359         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
11360         unused.
11361
11362 2010-01-29  Richard Guenther  <rguenther@suse.de>
11363
11364         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
11365         Assert we successfully updated the call.
11366
11367 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
11368
11369         PR rtl-optimization/42889
11370         * df.h (df_set_bb_dirty_nonlr): New prototype.
11371         * df-core.c (df_set_bb_dirty_nonlr): New function.
11372         * df-scan.c (df_insn_rescan): Call it instead of
11373         df_set_bb_dirty for DEBUG_INSNs.
11374
11375 2010-01-29  Richard Guenther  <rguenther@suse.de>
11376
11377         PR middle-end/37448
11378         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
11379         quadratic behavior in most cases.
11380
11381 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
11382
11383         PR target/42891
11384         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
11385         in the call to gen_x86_movsicc_0_m1.
11386
11387 2010-01-28  Richard Guenther  <rguenther@suse.de>
11388
11389         PR tree-optimization/42871
11390         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
11391
11392 2010-01-28  Richard Guenther  <rguenther@suse.de>
11393
11394         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
11395         into call arguments.
11396
11397 2010-01-28  Richard Guenther  <rguenther@suse.de>
11398
11399         PR middle-end/42883
11400         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
11401         the forwarder if the destination is an EH landing pad.
11402
11403 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
11404
11405         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
11406         block list passed to gimple_duplicate_sese_tail.
11407         (parallelize_loops): Avoid parallelization when the function
11408         has_nonlocal_label.
11409         Avoid parallelization when the preheader is IRREDUCIBLE.
11410         Try to optimize when estimated_loop_iterations_int is unresolved.
11411         Add the loop's location to the dump file.
11412         * tree-cfg.c (add_phi_args_after_redirect): Remove.
11413         (gimple_duplicate_sese_tail): Remove the check for the latch.
11414         Redirect nexits to the exit block.
11415         Remove handling of the incoming edges to the latch.
11416         Redirect the backedge from the copied latch to the exit bb.
11417
11418 2010-01-28  Michael Matz  <matz@suse.de>
11419
11420         PR target/42881
11421         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
11422         Wrap force_reg into a sequence, emit it before user.
11423
11424 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
11425
11426         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
11427         (arm_rev): New.
11428         (arm_legacy_rev): Likewise.
11429         (thumb_legacy_rev): Likewise.
11430
11431 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
11432
11433         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
11434         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
11435         on MEM's address failed, try avoid_constant_pool_reference and
11436         recurse if it returned something different.
11437         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
11438         address, try avoid_constant_pool_reference and recurse if it
11439         returned something different.
11440         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
11441         address and avoid_constant_pool_reference returned something
11442         different, don't set have_address.
11443
11444 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
11445
11446         PR debug/42861
11447         * var-tracking.c (val_store): Add modified argument, obey it.
11448         Adjust callers.
11449         (count_uses): Move down logging of main.
11450         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
11451         don't need resolution.
11452         (emit_notes_in_bb): Likewise.
11453
11454 2010-01-27  Richard Guenther  <rguenther@suse.de>
11455
11456         PR middle-end/42878
11457         * tree-inline.c (remap_decl): Delay remapping of SSA name
11458         default definitions until we need them.
11459
11460 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
11461
11462         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
11463         (rs6000_delegitimize_address): New function.
11464
11465         * config/s390/s390.c (s390_delegitimize_address): Call
11466         delegitimize_mem_from_attrs.
11467
11468         PR middle-end/42874
11469         * tree-inline.c (cannot_copy_type_1): Removed.
11470         (copy_forbidden): Don't forbid copying of functions containing
11471         records/unions with variable length fields.
11472
11473 2010-01-27  Christian Bruel  <christian.bruel@st.com>
11474
11475         Revert:
11476         PR target/42841
11477         * config/sh/sh.c (find_barrier): Increase length for non delayed
11478         conditional branches.
11479
11480 2010-01-27  Matthias Klose  <doko@ubuntu.com>
11481
11482         * configure.ac (gnu-unique-object): Fix ldd version check.
11483         * configure: Regenerate.
11484
11485 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11486
11487         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
11488         HAVE_GNU_AS value.
11489         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
11490         Test for HAVE_GNU_AS value.
11491
11492 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11493
11494         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
11495         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
11496         INT64_TYPE): Define.
11497         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
11498         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11499         INT_LEAST64_TYPE): Define.
11500         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
11501         UINT_LEAST64_TYPE): Define.
11502         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
11503         INT_FAST64_TYPE): Define.
11504         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11505         UINT_FAST64_TYPE): Define.
11506         (INTMAX_TYPE, UINTMAX_TYPE): Define.
11507         (INTPTR_TYPE, UINTPTR_TYPE): Define.
11508         (SIG_ATOMIC_TYPE): Define.
11509
11510 2010-01-26  Richard Guenther  <rguenther@suse.de>
11511
11512         * df-scan.c (df_scan_set_bb_info): Remove assert.
11513         (df_insn_rescan_debug_internal): Merge asserts.
11514         (df_install_ref): Likewise.
11515         (df_mark_reg): Use bitmap_set_range.
11516         (df_hard_reg_used_p): Remove assert.
11517         (df_hard_reg_used_count): Likewise.
11518
11519 2010-01-26  Richard Guenther  <rguenther@suse.de>
11520
11521         PR rtl-optimization/42685
11522         * web.c (web_main): Ignore DEBUG_INSNs.
11523
11524 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
11525
11526         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
11527
11528         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
11529         Fix types of fndecl and arglist parameters.
11530
11531 2010-01-26  Richard Guenther  <rguenther@suse.de>
11532
11533         PR middle-end/42806
11534         * tree-eh.c (unsplit_eh): Skip debug insns.
11535
11536 2010-01-26  Richard Guenther  <rguenther@suse.de>
11537
11538         PR tree-optimization/42250
11539         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
11540
11541 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
11542
11543         PR fortran/42866
11544         * omp-low.c (expand_omp_sections): Only use single_pred if
11545         l2_bb is single_pred_p.
11546
11547 2010-01-25  Christian Bruel  <christian.bruel@st.com>
11548
11549         PR target/42841
11550         * config/sh/sh.c (find_barrier): Increase length for non delayed
11551         conditional branches.
11552         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
11553
11554 2010-01-24  David S. Miller  <davem@davemloft.net>
11555
11556         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
11557         define if not using GAS.
11558         * config/sparc/sparc.c (sparc_elf_asm_named_section):
11559         Likewise.  Delete SECTION_MERGE code, which is only applicable
11560         when using GAS.
11561
11562 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
11563
11564         PR c++/42748
11565         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
11566         mangling of va_list in system headers.
11567
11568 2010-01-23  Toon Moene  <toon@moene.org>
11569
11570         * tree-predcom.c (combine_chains): Return NULL, not false.
11571
11572 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
11573
11574         * tree-loop-distribution.c (distribute_loop): Fix declaration and
11575         initialization of variable res to agree with return type.
11576
11577 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
11578
11579         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
11580         * tree-sra.c: Add include of expr.h.
11581
11582 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
11583
11584         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
11585         insert the debug stmt on the single non-EH edge from the stmt.
11586
11587 2010-01-22  Richard Henderson  <rth@redhat.com>
11588
11589         PR tree-opt/42833
11590         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
11591         the RHS until after generate_subtree_copies has insertted its
11592         code before the current statement.
11593
11594 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
11595
11596         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
11597
11598         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
11599
11600 2010-01-21  Martin Jambor  <mjambor@suse.cz>
11601
11602         PR tree-optimization/42585
11603         * tree-sra.c (struct access): New field grp_total_scalarization.
11604         (dump_access): Dump the new field.
11605         (should_scalarize_away_bitmap): New variable.
11606         (cannot_scalarize_away_bitmap): Likewise.
11607         (sra_initialize): Allocate new bitmaps.
11608         (sra_deinitialize): Free new bitmaps.
11609         (create_access_1): New function.
11610         (create_access): Parts moved to create_access_1.
11611         (type_consists_of_records_p): New function.
11612         (completely_scalarize_record): Likewise.
11613         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
11614         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
11615         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
11616         access.
11617         (analyze_all_variable_accesses): Completely scalarize small eligible
11618         records.
11619
11620 2010-01-21  Martin Jambor  <mjambor@suse.cz>
11621
11622         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
11623
11624 2010-01-21  Andrew Haley  <aph@redhat.com>
11625
11626         * gcc.c (process_command): Move lang_specific_driver before
11627         setting cc_libexec_prefix.
11628
11629 2010-01-21  Richard Guenther  <rguenther@suse.de>
11630
11631         PR middle-end/19988
11632         * fold-const.c (negate_expr_p): Pretend only negative
11633         real constants are easily negatable.
11634
11635 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
11636             Jason Merrill  <jason@redhat.com>
11637
11638         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
11639         (TYPE_TRANSPARENT_AGGR): this, for union and record.
11640         * calls.c (initialize argument_information): Handle it.
11641         * c-common.c (handle_transparent_union_attribute): Use new name.
11642         * c-decl.c (finish_struct): Ditto.
11643         * c-typeck.c (type_lists_compatible_p): Ditto.
11644         (convert_for_assignment): Use new name and also handle record.
11645         * function.c (aggregate_value_p): Handle it.
11646         (pass_by_reference): Ditto.
11647         (assign_parm_data_types): Ditto.
11648         * print-tree.c (print_node): Ditto.
11649         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
11650         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
11651         * tree.c (first_field): New fn.
11652
11653 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
11654
11655         PR target/42818
11656         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
11657         even when linking statically, for now.
11658
11659 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
11660
11661         PR debug/42715
11662         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
11663         without a cselib val.
11664         (count_uses): Accept MO_VAL_SET with no val on stores.
11665         (add_stores): Likewise.
11666
11667 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
11668
11669         * var-tracking.c (check_value_val): Add a compile time assertion.
11670         (dv_is_decl_p): Simplify.
11671         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
11672         gcc_assert if ENABLE_CHECKING.
11673
11674 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
11675
11676         PR debug/42782
11677         * var-tracking.c: Include tree-flow.h.
11678         (mem_dies_at_call): New.
11679         (dataflow_set_preserve_mem_locs): Use it.
11680         (dataflow_set_remove_mem_locs): Likewise.
11681         (dump_var): Renamed from dump_variable.  Adjust all callers.
11682         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
11683         * Makefile.in (var-tracking.o): Adjust deps.
11684
11685 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
11686
11687         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
11688
11689 2010-01-20  Richard Guenther  <rguenther@suse.de>
11690
11691         PR tree-optimization/42717
11692         * tree-ssa-dce.c (get_live_post_dom): Remove.
11693         (forward_edge_to_pdom): Take an arbitrary edge to copy
11694         degenerate PHI args from.
11695         (remove_dead_stmt): Use the first post-dominator even if it
11696         does not contain live statements as redirection destination.
11697
11698 2010-01-20  Richard Guenther  <rguenther@suse.de>
11699
11700         * tree-inline.c (estimate_num_insns): Handle EH builtins.
11701
11702 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
11703
11704         * sel-sched.c (create_speculation_check): Remove set but not used
11705         variable twin.
11706         (try_transformation_cache): Remove set but not used variable ds.
11707         (calculate_privileged_insns): Remove set but not used variables
11708         cur_insn and min_spec_insn.
11709         (find_best_expr): Remove set but not used variable avail_n.
11710         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
11711         variable e.
11712         * cgraphunit.c (assemble_thunk): Remove set but not used variable
11713         false_label.
11714         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
11715         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
11716         new_scop_exit_edge.
11717
11718 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
11719
11720         PR bootstrap/42786
11721         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
11722         cpu types.  Add support for *-sse3 cpu types.
11723         (x86_64-*-*): Ditto.
11724
11725 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
11726
11727         PR middle-end/42803
11728         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
11729         argument, call initializer_constant_valid_p_1 instead of
11730         initializer_constant_valid_p, pass CACHE to it, return NULL
11731         immediately if first call returns NULL.
11732         (initializer_constant_valid_p_1): New function.
11733         (initializer_constant_valid_p): Use it.
11734
11735 2010-01-20  Thomas Quinot  <quinot@adacore.com>
11736
11737         * tree.def (PLACEHOLDER_EXPR): Fix comment.
11738
11739 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
11740
11741         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
11742         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
11743         (loc_list_from_tree): Don't handle unsigned division.  Handle
11744         signed modulo using DW_OP_{over,over,div,mul,minus}.
11745         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
11746         modulo instead of signed.
11747
11748 2010-01-20  DJ Delorie  <dj@redhat.com>
11749
11750         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
11751         (Fpa): Pass it
11752         (h8300_emit_stack_adjustment): Propogate it.
11753         (push): Pass it.
11754         (h8300_expand_prologue): Likewise.
11755         (h8300_expand_epilogue): Likewise.
11756
11757 2010-01-19  Michael Matz  <matz@suse.de>
11758
11759         PR tree-optimization/41783
11760         * tree-data-ref.c (toplevel): Include flags.h.
11761         (dump_data_dependence_relation):  Also dump the inputs if the
11762         result will be unknown.
11763         (split_constant_offset_1): Look through some conversions.
11764         * tree-predcom.c (determine_roots_comp): Restart a new chain if
11765         the offset from last element is too large.
11766         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
11767         (reassociate_to_the_same_stmt): Handle vector registers.
11768         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
11769         (e.g. conversions).
11770         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
11771         wide_prolog_niters argument, emit widening instructions.
11772         (vect_do_peeling_for_alignment): Adjust caller, use widened
11773         variant of the iteration cound.
11774         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
11775
11776 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11777
11778         PR target/38697
11779         * config/arm/neon-testgen.m (emit_automatics): New parameter
11780         features. Adjust for Fixed_return_reg feature.
11781         (test_intrinsic): Call emit_automatics with new feature.
11782         * config/arm/neon.ml: Update copyright years.
11783         (features): New Fixed_return_reg feature.
11784         (ops): Update feature for Vget_low.
11785
11786 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
11787
11788         PR tree-optimization/42719
11789         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
11790         stmt uses.
11791
11792         PR debug/42728
11793         * fwprop.c (all_uses_available_at): Return false if def_set dest
11794         is a REG that is used in def_insn.
11795
11796 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
11797
11798         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
11799
11800         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
11801         Add argument names.
11802
11803         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
11804
11805         * target.h (struct gcc_target) <secondary_reload>: Change type
11806         of last argument to secondary_reload_info *.
11807
11808 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
11809
11810         PR target/42774
11811         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
11812         memory references with unaligned offsets.  Remove CQImode handling.
11813         (unaligned_memory_operand): Return 1 for memory references with
11814         unaligned offsets.  Remove CQImode handling.
11815
11816 2010-01-18  Richard Guenther  <rguenther@suse.de>
11817
11818         PR middle-end/39954
11819         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
11820         builtin calls.
11821
11822 2010-01-18  Richard Guenther  <rguenther@suse.de>
11823
11824         PR tree-optimization/42781
11825         * tree-ssa-structalias.c (find_what_var_points_to): Skip
11826         restrict processing only if the original variable was artificial.
11827
11828 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
11829
11830         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
11831         find number of popped argument bytes.
11832
11833         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
11834         Fix the text that describes the return value for invalid insns.
11835
11836         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
11837
11838         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
11839         Clarify what 'cost of the -dependence' is.  Fix quoting.
11840
11841         * toplev.c (default_get_pch_validity): Rename argument to "sz".
11842         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
11843
11844 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
11845
11846         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
11847         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
11848
11849 2010-01-17  Richard Guenther  <rguenther@suse.de>
11850
11851         PR middle-end/42248
11852         * function.c (split_complex_args): Take a VEC to modify.
11853         (assign_parms_augmented_arg_list): Build a VEC instead of
11854         a chain of PARM_DECLs.
11855         (assign_parms_unsplit_complex): Take a VEC of arguments.
11856         Do not fixup unmodified parms.
11857         (assign_parms): Deal with the VEC.
11858         (gimplify_parameters): Likewise.
11859
11860 2010-01-17  Richard Guenther  <rguenther@suse.de>
11861
11862         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
11863         node existence check.
11864         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
11865         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
11866         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
11867         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
11868         (gimple_execute_on_growing_pred): Likewise.
11869
11870 2010-01-17  Richard Guenther  <rguenther@suse.de>
11871
11872         PR tree-optimization/42773
11873         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
11874         (compute_antic_aux): Likewise.
11875         (compute_partial_antic_aux): Likewise.
11876
11877 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
11878
11879         PR debug/42767
11880         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
11881         and US_TRUNCATE.
11882
11883 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
11884
11885         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
11886         appearance.
11887
11888         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
11889         Fix markup for strict argument.
11890
11891         (TARGET_SCHED_REORDER2): Fix argument types.
11892
11893         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
11894         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
11895
11896         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
11897         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
11898
11899         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
11900         Add argument name.
11901
11902         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
11903         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
11904         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
11905         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
11906         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
11907
11908         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
11909
11910         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
11911
11912         (TARGET_ASM_RELOC_RW_MASK): Add return type.
11913         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
11914
11915         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
11916
11917         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
11918         Use prototype.
11919
11920         (TARGET_ASM_NAMED_SECTION): Fix argument list.
11921
11922         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
11923         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
11924
11925         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
11926
11927         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
11928
11929         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
11930         referring to it.  Fix language.
11931
11932         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
11933
11934         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
11935
11936         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
11937
11938         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
11939
11940         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
11941         '@var{stream}.  Remove stray 'and'.
11942
11943         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
11944
11945         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
11946
11947         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
11948
11949         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
11950         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
11951
11952         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
11953         Fix description of return value.
11954         Rename argument "sz" to "len."
11955
11956         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
11957         Clarify meaning of 'true' return value.
11958
11959         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
11960
11961         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
11962         rep_mode versus mode_rep.
11963
11964         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
11965
11966         (TARGET_BUILTIN_DECL): Fix name.
11967
11968         (TARGET_COMMUTATIVE_P): Fix type of first argument.
11969
11970         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
11971
11972         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
11973
11974         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
11975
11976         (TARGET_RELAXED_ORDERING): Use @deftypevr.
11977
11978         (TARGET_GET_DRAP_RTX): Note that this is a hook.
11979         Clarify language.
11980
11981         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
11982         Rename argument tm_fn to md_fn.
11983
11984         (TARGET_OPTION_PRINT): Fix argument list.
11985
11986 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
11987
11988         PR target/42664
11989         * config/i386/i386.c (ix86_fixup_binary_operands):
11990         Revert FMA4 fixup of operands.
11991
11992 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11993
11994         PR gcc/42525
11995         * Makefile.in (write_entries_to_file, install-plugin):
11996         Use \012 instead of \n with tr.
11997
11998 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
11999
12000         * configure.ac (HAVE_AS_REF): New C macro.
12001         * configure: Regenerate.
12002         * config.in: Likewise.
12003         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
12004         if HAVE_AS_REF.
12005         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
12006         if HAVE_AS_REF.
12007
12008 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
12009
12010         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
12011
12012         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
12013
12014         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
12015
12016         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
12017
12018         (TARGET_IN_SMALL_DATA_P): Fix argument type.
12019
12020         (TARGET_BINDS_LOCAL_P): Fix argument type.
12021
12022         (TARGET_ASM_FILE_END): Use prototype.
12023
12024         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
12025
12026         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
12027
12028         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
12029
12030         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
12031
12032         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
12033         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
12034
12035         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
12036         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
12037
12038         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
12039         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
12040         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
12041         (TARGET_ADDR_SPACE_CONVERT): Likewise.
12042
12043         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
12044
12045         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
12046
12047         (TARGET_INIT_BUILTINS): Use prototype.
12048
12049         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
12050         Put 'const char *' in braces.  Fix parameter types.
12051         (TARGET_INVALID_CONVERSION): Fix parameter types.
12052         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
12053         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
12054
12055         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
12056         Fix argument type.
12057
12058         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
12059
12060         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
12061
12062 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
12063
12064         * doc/tm.texi (TARGET_HELP): Fix return type.
12065
12066         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
12067         in braces.  Fix argument types.
12068
12069         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
12070
12071         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
12072
12073         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
12074
12075         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
12076         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
12077
12078         (TARGET_MANGLE_TYPE): Fix argument types.
12079
12080         (TARGET_IRA_COVER_CLASSES): Use prototype.
12081
12082         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
12083
12084         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
12085
12086         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
12087
12088         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
12089
12090         (TARGET_CALLEE_COPIES): Fix argument types.
12091
12092         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
12093
12094         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
12095
12096         (TARGET_FUNCTION_VALUE): Fix argument types.
12097
12098         (TARGET_RETURN_IN_MSB): Fix argument type.
12099
12100         (TARGET_RETURN_IN_MEMORY): Fix argument types.
12101
12102         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
12103
12104         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
12105
12106         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
12107         agree with return type.
12108
12109         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
12110
12111 2010-01-15  Jing Yu  <jingyu@google.com>
12112
12113         PR rtl-optimization/42691
12114         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
12115         a pseudo to a constant and are merged, and adjust comments.
12116
12117 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
12118
12119         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
12120
12121 2010-01-15  Richard Guenther  <rguenther@suse.de>
12122
12123         PR middle-end/42739
12124         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
12125         labels of computed or non-local gotos to the destination.
12126         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
12127         landing pad label is the first label.
12128
12129 2010-01-15  Richard Guenther  <rguenther@suse.de>
12130
12131         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
12132
12133 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12134
12135         PR target/42747
12136         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
12137         to allow generation of the xssqrtdp instruction on power7.
12138         (sqrtdf2_fpr): Ditto.
12139
12140 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
12141
12142         PR middle-end/42674
12143         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
12144         functions with noreturn attribute.
12145
12146         PR c++/42608
12147         * varasm.c (declare_weak): Add weak attribute to decl if it
12148         doesn't have one already.
12149         (assemble_external): Only add decls to weak_decls if they also
12150         have weak attribute.
12151
12152 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
12153
12154         * var-tracking.c (var_reg_delete): Don't delete the association
12155         between REGs and values or one-part variables if the register
12156         isn't clobbered.
12157
12158 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
12159
12160         PR debug/42657
12161         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
12162         because its first operand is a non-localized variable.
12163
12164 2010-01-14  Martin Jambor  <mjambor@suse.cz>
12165
12166         PR tree-optimization/42706
12167         * tree-sra.c (encountered_recursive_call): New variable.
12168         (encountered_unchangable_recursive_call): Likewise.
12169         (sra_initialize): Initialize both new variables.
12170         (callsite_has_enough_arguments_p): New function.
12171         (scan_function): Call decl and flags check only for IPA-SRA, check
12172         whether there is a recursive call and whether it has enough arguments.
12173         (all_callers_have_enough_arguments_p): New function.
12174         (convert_callers): Look for recursive calls only when
12175         encountered_recursive_call is set.
12176         (ipa_early_sra): Bail out either if
12177         !all_callers_have_enough_arguments_p or
12178         encountered_unchangable_recursive_call.
12179
12180 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12181
12182         * sel-sched.c: Add 2010 to copyright years.
12183         * sel-sched-ir.c: Likewise.
12184         * sel-sched-ir.h: Likewise.
12185
12186 2010-01-14  Martin Jambor  <mjambor@suse.cz>
12187
12188         PR tree-optimization/42714
12189         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
12190         constructors specially.
12191
12192 2010-01-14  Andi Kleen  <ak@linux.intel.com>
12193
12194         * config/i386/drivers-i386.c (detect_caches_intel):
12195         Add l2sizekb parameter and fill in.
12196         (host_detect_local_cpu): Add l2sizekb, fill in.
12197         Add Atom small cache heuristic.
12198
12199 2010-01-14  Andi Kleen  <ak@linux.intel.com>
12200
12201         * config/i386/drivers-i386.c (detect_caches_cpuid4):
12202         Add level3 parameter and fill in.
12203         (detect_caches_intel): Handle level3 cache.
12204
12205 2010-01-14  Andi Kleen  <ak@linux.intel.com>
12206
12207         * config/i386/drivers-i386.c (host_detect_local_cpu):
12208         Fix core duo detection.
12209
12210 2010-01-14  Andi Kleen  <ak@linux.intel.com>
12211
12212         * config/i386/drivers-i386.c (host_detect_local_cpu):
12213         Fix Atom detection.
12214
12215 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12216
12217         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
12218         (rs6000_variable_issue_1): this.  Use...
12219         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
12220
12221 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12222
12223         * sel-sched-ir.c (sel_restore_other_notes): Rename to
12224         sel_restore_notes.  Update all callers.  Call reemit_notes
12225         for all insns.
12226
12227 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
12228
12229         PR rtl-optimization/42246
12230         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
12231         loops.
12232
12233 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
12234
12235         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
12236         all successors is the same as number of successors in current region.
12237
12238 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12239
12240         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
12241         to rename is not separable.  Otherwise check that its LHS is not NULL.
12242
12243 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12244
12245         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
12246
12247 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12248
12249         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
12250         available registers when failed to discover LHS register class.
12251         Fix indentation.  Update comment.
12252
12253 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
12254             Alexander Monakov  <amonakov@ispras.ru>
12255
12256         PR rtl-optimization/42389
12257         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
12258         to can_issue_more.
12259         (advance_state_on_fence): Likewise.
12260         (sel_target_adjust_priority): Print debug output only when
12261         sched_verbose >= 4, not 2.
12262         (get_expr_cost): Do not issue all unique insns on the next cycle.
12263         (fill_insns): Initialize can_issue_more from the value saved
12264         with the fence.
12265         * sel-sched-ir.c (flist_add): New parameter issue_more.
12266         Init FENCE_ISSUE_MORE with it.
12267         (merge_fences): Likewise.
12268         (init_fences): Update call to flist_add.
12269         (add_to_fences, add_clean_fence_to_fences)
12270         (add_dirty_fence_to_fences): Likewise.
12271         (move_fence_to_fences): Update call to merge_fences.
12272         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
12273         sched groups.
12274         * sel-sched-ir.h (struct _fence): New field issue_more.
12275         (FENCE_ISSUE_MORE): New accessor macro.
12276
12277 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
12278
12279         PR rtl-optimization/42388
12280         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
12281         that have no predecessors nor successors.  Do not call move_bb_info
12282         for empty blocks outside of current region.
12283
12284 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12285
12286         PR rtl-optimization/42294
12287         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
12288         * sel-sched.c (move_exprs_to_boundary): Transitively add all
12289         originators' originators.
12290
12291 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12292
12293         PR rtl-optimization/39453
12294         PR rtl-optimization/42246
12295         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
12296         for pipelining_p.
12297         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
12298
12299 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
12300             Alexander Monakov  <amonakov@ispras.ru>
12301
12302         PR middle-end/42245
12303         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
12304         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
12305         argument.  Update all callers.
12306         (tidy_control_flow): ... and here.  Recompute topological order
12307         of basic blocks in region if necessary.
12308         (sel_redirect_edge_and_branch): Change return type.  Return true
12309         if topological order might have been invalidated.
12310         (purge_empty_blocks): Export and move from...
12311         * sel-sched.c (purge_empty_blocks): ... here.
12312         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
12313         (maybe_tidy_empty_bb): Delete prototype.
12314         (purge_empty_blocks): Declare.
12315
12316 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
12317
12318         PR rtl-optimization/42249
12319         * sel-sched.c (try_replace_dest_reg): When chosen register
12320         and original register is the same, do not bail out early, but
12321         still check all original insns for validity of replacing destination
12322         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
12323         in this case.
12324
12325 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
12326
12327         PR c/42721
12328         Port from no-undefined-overflow branch:
12329         2009-03-09  Richard Guenther  <rguenther@suse.de>
12330
12331         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
12332
12333 2010-01-14  Richard Guenther  <rguenther@suse.de>
12334
12335         PR lto/42665
12336         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
12337
12338 2010-01-14  Ira Rosen  <irar@il.ibm.com>
12339
12340         PR tree-optimization/42709
12341         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
12342         as scalar type in creation of constant vector operand.
12343
12344 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12345
12346         PR testsuite/42414
12347         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
12348         (check-parallel-%): Match `testsuite' directory component only
12349         at the end.
12350
12351 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
12352
12353         PR translation/39521
12354         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
12355         strings with _().
12356
12357 2010-01-13  Richard Guenther  <rguenther@suse.de>
12358
12359         PR tree-optimization/42730
12360         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
12361         offset zero.
12362
12363 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
12364
12365         PR target/pr42542
12366         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
12367         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
12368         them signed.
12369
12370 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
12371
12372         * config/bfin/libgcc-bfin.ver: Regenerate based on current
12373         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
12374         ___umulsi3_highpart.
12375
12376         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
12377         rather than schedule_insns if the pass is enabled.
12378
12379 2010-01-13  Martin Jambor  <mjambor@suse.cz>
12380
12381         PR tree-optimization/42704
12382         * tree-sra.c (sra_modify_assign): Do not delete assignments to
12383         SSA_NAMEs.
12384
12385 2010-01-13  Martin Jambor  <mjambor@suse.cz>
12386
12387         PR tree-optimization/42703
12388         * tree-sra.c (analyze_access_subtree): Check that we can build a
12389         reference to the original data within the aggregate.
12390
12391 2010-01-13  Richard Guenther  <rguenther@suse.de>
12392
12393         PR tree-optimization/42705
12394         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
12395
12396 2010-01-13  Richard Guenther  <rguenther@suse.de>
12397
12398         PR middle-end/42716
12399         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
12400
12401 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
12402
12403         PR debug/41371
12404         * var-tracking.c (values_to_unmark): New variable.
12405         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
12406         values_to_unmark vector.  Moved body to...
12407         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
12408         instead queue it into values_to_unmark vector.
12409         (vt_find_locations): Free values_to_unmark vector.
12410
12411 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
12412
12413         * config/s390/s390.c (override_options): Set
12414         default of max-pending-list-length to 256
12415
12416 2010-01-13  Richard Guenther  <rguenther@suse.de>
12417
12418         PR lto/42678
12419         * tree-pass.h (PROP_gimple_lcx): New.
12420         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
12421         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
12422         before the final cleanup_eh.
12423         (dump_properties): Dump PROP_gimple_lcx.
12424         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
12425         (tree_lower_complex_O0): Remove.
12426         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
12427         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
12428         tree_lower_complex, schedule TODO_update_ssa.
12429         * lto-streamer-out.c (output_function): Stream the functions
12430         properties.
12431         * lto-streamer-in.c (input_function): Likewise.
12432         (lto_read_body): Do not override them here.
12433
12434 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
12435
12436         PR c/42708
12437         * c-typeck.c (build_c_cast): Fold value cast to union type before
12438         wrapping it in a CONSTRUCTOR.
12439
12440 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
12441
12442         PR rtl-optimization/42699
12443         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
12444         involved.
12445
12446 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12447
12448         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
12449         SUBTARGET_WARN_UNUSED_SPEC): Move ...
12450         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
12451         SUBTARGET_WARN_UNUSED_SPEC): ... here
12452         * config/mips/iris5.h (LIBGCC_SPEC): Define.
12453
12454 2010-01-12  Julian Brown  <julian@codesourcery.com>
12455
12456         * config/arm/neon-schedgen.ml (Utils): Don't try to
12457         open missing module.
12458         (find_with_result): New.
12459
12460 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
12461
12462         PR debug/42662
12463         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
12464         sharing when canonicalizing ({lt,ge}u (plus a b) b).
12465
12466         PR tree-optimization/42645
12467         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
12468         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
12469         decl_map, set processing_debug_stmt to -1 and return name without
12470         any remapping.
12471
12472 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
12473
12474         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
12475         binutils version, and reword target configuration description.
12476
12477 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
12478
12479         * config/avr/avr.h (LINKER_NAME): Remove.
12480
12481 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
12482
12483         PR target/42416
12484         * config/rs6000/rs6000.c (rs6000_override_options): On targets
12485         that support VSX, warn for -mno-altivec if vsx is not disabled,
12486         and disable vsx.
12487
12488 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
12489             Shujing Zhao  <pearly.zhao@oracle.com>
12490
12491         PR translation/42469
12492         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
12493         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
12494         character between option name and help text.
12495         * c.opt (imultilib): Likewise.
12496
12497 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
12498
12499         * lto-streamer-out.c (output_unreferenced_globals): Output static
12500         variables.
12501
12502 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
12503
12504         PR rtl-optimization/42621
12505         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
12506         optimizing for size.
12507         (duplicate_computed_gotos): Remove now-redundant check.
12508
12509 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
12510
12511         PR target/37454
12512         * configure.ac: Save and restore LDFLAGS and LIBS
12513         * configure: Regenerate.
12514
12515 2010-01-10  Richard Guenther  <rguenther@suse.de>
12516
12517         PR middle-end/42667
12518         * builtins.c (fold_builtin_strlen): Add type argument and
12519         convert the resulting length to it.
12520         (fold_builtin_1): Adjust.
12521
12522 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
12523
12524         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
12525         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
12526         1 insn.
12527         (num_insns_constant_wide): Adjust for that change.
12528
12529 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12530
12531         PR debug/42631
12532         * web.c (union_defs): Add used argument, to combine uses of
12533         uninitialized regs.
12534         (entry_register): Adjust type and tests of used argument.
12535         (web_main): Widen used for new use.  Pass it to union_defs.
12536         * df.h (union_defs): Adjust prototype.
12537
12538 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12539
12540         PR debug/42630
12541         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
12542         uses in new incoming argument.  Free body.
12543         (reset_debug_uses_in_loop): New.
12544         (analyze_insn_to_expand_var): Call the latter if the former found
12545         anything.  Fix whitespace.  Reject invalid dest overlaps before
12546         going through all insns in the loop.
12547
12548 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12549
12550         PR debug/42629
12551         * haifa-sched.c (dying_use_p): Debug insns don't count.
12552
12553 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12554
12555         PR middle-end/42363
12556         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
12557         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
12558         (verify_gimple_call): Reject LHS in noreturn calls.
12559
12560 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12561
12562         PR debug/42604
12563         PR debug/42395
12564         * tree-vect-loop-manip.c (adjust_info): New type.
12565         (adjust_vec): New pointer to vector.
12566         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
12567         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
12568         (slpeel_update_phis_for_duplicate_loop): Use them.
12569         (slpeel_update_phi_nodes_for_guard1): Likewise.
12570         (slpeel_update_phi_nodes_for_guard2): Likewise.
12571         (slpeel_tree_peel_loop_to_edge): Likewise.
12572         (vect_update_ivs_after_vectorizer): Likewise.
12573
12574 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12575
12576         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
12577         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
12578
12579 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
12580
12581         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
12582         bogus uninitialized warning.
12583
12584 2010-01-09  Richard Guenther  <rguenther@suse.de>
12585
12586         PR middle-end/42512
12587         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
12588         the evolution is compatible with the initial condition.
12589
12590 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
12591
12592         * gcc.c (process_command): Update copyright notice dates.
12593         * gcov.c (print_version): Likewise.
12594         * gcov-dump.c (print_version): Likewise.
12595         * mips-tfile.c (main): Likewise.
12596         * mips-tdump.c (main): Likewise.
12597
12598 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
12599
12600         PR target/41885
12601         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
12602         (rotlhi3): Delete.
12603         (rotlhi3_8): Delete.
12604         (rotlsi3): Delete.
12605         (rotlsi3_8): Delete.
12606         (rotlsi3_16): Delete.
12607         (rotlsi3_24): Delete.
12608         (rotl<mode>3): New.
12609         (*rotw<mode>3): New.
12610         (*rotb<mode>3): New.
12611         * config/avr/avr.c (avr_rotate_bytes): New function.
12612         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
12613
12614 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
12615
12616         PR target/37454
12617         * configure.ac: Modify -rdynamic check.
12618         * configure: Regenerate.
12619
12620 2010-01-08  DJ Delorie  <dj@redhat.com>
12621
12622         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
12623         register popping order.
12624
12625 2010-01-08  Richard Guenther  <rguenther@suse.de>
12626
12627         PR lto/42528
12628         * c.opt (fsigned-char): Also let LTO handle this option.
12629         (funsigned-char): Likewise.
12630
12631 2010-01-07  Richard Guenther  <rguenther@suse.de>
12632
12633         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
12634         (gimple_op): Likewise.
12635         (gimple_op_ptr): Likewise.
12636         (gimple_assign_set_lhs): Remove gcc_assert.
12637         (gimple_assign_set_rhs1): Likewise.
12638         (gimple_assign_set_rhs2): Likewise.
12639         (gimple_call_set_lhs): Likewise.
12640         (gimple_call_set_fn): Likewise.
12641         (gimple_call_set_fndecl): Likewise.
12642         (gimple_call_fndecl): Likewise.
12643         (gimple_call_return_type): Likewise.
12644         (gimple_call_set_chain): Likewise.
12645         (gimple_call_num_args): Likewise.
12646         (gimple_call_set_arg): Likewise.
12647         (gimple_cond_set_code): Likewise.
12648         (gimple_cond_set_lhs): Likewise.
12649         (gimple_cond_set_rhs): Likewise.
12650         (gimple_cond_set_true_label): Likewise.
12651         (gimple_cond_set_false_label): Likewise.
12652         (gimple_label_set_label): Likewise.
12653         (gimple_goto_set_dest): Likewise.
12654         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
12655         (gimple_debug_bind_get_value): Likewise.
12656         (gimple_debug_bind_get_value_ptr): Likewise.
12657         (gimple_debug_bind_set_var): Likewise.
12658         (gimple_debug_bind_set_value): Likewise.
12659         (gimple_debug_bind_reset_value): Likewise.
12660         (gimple_debug_bind_has_value_p): Likewise.
12661         (gimple_return_retval_ptr): Remove gcc_assert.
12662         (gimple_return_retval): Likewise.
12663         (gimple_return_set_retval): Likewise.
12664         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
12665         (safe_referenced_var_iterator): Remove.
12666         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
12667         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
12668         (fill_referenced_var_vec): Remove.
12669         (first_readonly_imm_use): Remove redundant gcc_assert.
12670         (phi_arg_index_from_use): Combine gcc_asserts.
12671         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
12672         (first_imm_use_stmt): Remove redundant gcc_assert.
12673         * tree-cfg.c (verify_gimple_call): Verify function and chain
12674         operands.  Verify arguments.
12675         (verify_types_in_gimple_stmt): Verify condition code and labels.
12676
12677 2010-01-07  Richard Guenther  <rguenther@suse.de>
12678
12679         PR tree-optimization/42641
12680         * sese.c (rename_map_elt_info): Use the SSA name version, do
12681         not hash pointers.
12682
12683 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
12684
12685         PR tree-optimization/42625
12686         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
12687         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
12688
12689 2010-01-07  Duncan Sands  <baldrick@free.fr>
12690
12691         * Makefile.in (PLUGIN_HEADERS): Add version.h.
12692
12693 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
12694
12695         PR target/42511
12696         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
12697         note itself is not function_invariant_p.
12698
12699 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
12700
12701         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
12702         Do not add the DF_NOTE problem.
12703         * store-motion.c (execute_rtl_store_motion): Likewise.
12704
12705 2010-01-07  Martin Jambor  <mjambor@suse.cz>
12706
12707         PR tree-optimization/42157
12708         * tree-sra.c (compare_access_positions): Stabilize sort if both
12709         accesses have integer types, return zero immediately if they are the
12710         same.
12711
12712 2010-01-06  Richard Henderson  <rth@redhat.com>
12713
12714         PR middle-end/41883
12715         * haifa-sched.c (add_to_note_list): Merge into ...
12716         (concat_note_lists): ... here, and ...
12717         (unlink_other_notes, rm_other_notes): Merge into...
12718         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
12719         NOTE_INSN_EPILOGUE_BEG.
12720
12721 2010-01-06  Richard Guenther  <rguenther@suse.de>
12722
12723         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
12724         not inline regular functions into always-inline functions.
12725
12726 2010-01-06  Nick Clifton  <nickc@redhat.com>
12727
12728         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
12729         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
12730         used together.
12731         (OVERRIDE_OPTIONS): Delete.
12732         (OPTIMIZATION_OPTIONS): Define.
12733         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
12734         * config/rx/rx.c (rx_handle_option): Issue an error message if
12735         -mcpu=rx200 and -fpu are used together.
12736         (rx_set_optimization_options): New function.  Issue an error
12737         message if an optimization attribute attempts to reset the FPU/
12738         math optimization pairing.
12739         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
12740         * config/rx/rx.opt: Set the default to 32-bit doubles.
12741         * config/rx/t-rx: Add multilibs for -nofpu option.
12742         * doc/invoke.texi: Update documentation of RX options.
12743
12744 2010-01-06  Richard Guenther  <rguenther@suse.de>
12745
12746         * tree-ssa-pre.c (name_to_id): New global.
12747         (alloc_expression_id): Simplify SSA name handling.
12748         (lookup_expression_id): Likewise.
12749         (init_pre): Zero name_to_id.
12750         (fini_pre): Free it.
12751
12752 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
12753
12754         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
12755
12756 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12757
12758         PR target/42542
12759         * config/i386/sse.md (smaxv2di3): New.
12760         (umaxv2di3): Likewise.
12761         (sminv2di3): Likewise.
12762         (uminv2di3): Likewise.
12763
12764 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
12765
12766         PR target/42564
12767         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
12768         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
12769         (legitimize_tls_address): Likewise.
12770         (sparc_tls_referenced_p): Likewise.
12771         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
12772         and adjust calls to legitimize_pic_address.
12773         (legitimate_constant_p) Use sparc_tls_referenced_p.
12774         (legitimate_pic_operand_p): Likewise.
12775         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
12776         (sparc_tls_symbol_ref_1): Delete.
12777         (sparc_tls_referenced_p): Make static, recognize specific patterns.
12778         (legitimize_tls_address): Make static, handle CONST patterns.
12779         (legitimize_pic_address): Make static, remove unused parameter and
12780         adjust recursive calls.
12781         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
12782         and adjust call to legitimize_pic_address.
12783         (sparc_output_mi_thunk): Likewise.
12784
12785 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
12786             H.J. Lu  <hongjiu.lu@intel.com>
12787
12788         PR target/42542
12789         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
12790         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
12791         operands to make them signed.
12792
12793         Revert:
12794         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
12795
12796         PR target/42542
12797         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
12798         GTU to GT for V4SI and V2DI.
12799
12800         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
12801         (umin<mode>3): Removed.
12802         (uminv8hi3): New.
12803         (uminv4si3): Likewise.
12804
12805 2010-01-05  Martin Jambor  <mjambor@suse.cz>
12806
12807         PR tree-optimization/42462
12808         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
12809         current_function_decl to helper functions and macros.
12810
12811 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12812
12813         PR bootstrap/41771
12814         * flags.h: Don't include real.h.
12815         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
12816         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
12817         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
12818         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
12819         * dominance.c: Update copyright.
12820         * gimple.c (walk_gimple_op): Remove inline.
12821         * tree-ssa-reassoc.c: Include real.h.
12822         * Makefile.in (FLAGS_H): Remove $(REAL_H).
12823         (tree-ssa-reassoc.o): Depend on $(REAL_H).
12824
12825 2010-01-05  Nick Clifton  <nickc@redhat.com>
12826
12827         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
12828         register to push into the stack frame when the accumulator has to
12829         be saved during interrupts.
12830
12831 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
12832
12833         * doc/invoke.texi: Remove the documentation about option
12834         -Wunreachable-code.
12835         * common.opt (Wunreachable-code):  Preserved for backward
12836         compatibility.
12837         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
12838         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
12839         the backward compatibility flag section.
12840
12841 2010-01-05  Richard Guenther  <rguenther@suse.de>
12842
12843         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
12844
12845 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
12846
12847         PR other/42611
12848         * cfgexpand.c (expand_one_var): Diagnose too large variables.
12849
12850         PR tree-optimization/42508
12851         * tree-sra.c (convert_callers): Check for recursive call
12852         by comparing cgraph nodes instead of decls.
12853         (modify_function): Call ipa_modify_formal_parameters also
12854         on all same_body aliases.
12855
12856         * cgraphunit.c (cgraph_materialize_all_clones): Compare
12857         cgraph nodes when checking for same_body aliases.
12858
12859 2010-01-05  Richard Guenther  <rguenther@suse.de>
12860
12861         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
12862         allocation and lookup.
12863         (get_or_alloc_expr_for_constant): Likewise.
12864         (phi_translate): Sink allocation.
12865
12866 2010-01-04  Richard Guenther  <rguenther@suse.de>
12867
12868         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
12869         a new entry only if needed.
12870         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
12871         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
12872         hashtable lookup.
12873         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
12874         the result array.
12875         (phi_translate): Handle CONSTANTs early.
12876
12877 2010-01-04  Martin Jambor  <mjambor@suse.cz>
12878
12879         PR tree-optimization/42398
12880         * tree-sra.c (struct access): Removed flag grp_different_types.
12881         (dump_access): Do not dump the removed flag.
12882         (sort_and_splice_var_accesses): Do not set the removed flag.
12883         (sra_modify_expr): Check for type compatibility directly.
12884
12885 2010-01-04  Martin Jambor  <mjambor@suse.cz>
12886
12887         PR tree-optimization/42366
12888         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
12889         edges with variable number of parameters.
12890         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
12891         flag instead of asserting it.
12892         (ipa_read_node_info): Read uses_analysis_done flag.
12893
12894 2010-01-04  Richard Guenther  <rguenther@suse.de>
12895
12896         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
12897         iterative_hash_* as intended.
12898         (vn_reference_compute_hash): Likewise.  Simplify hashing
12899         SSA names.
12900         (vn_reference_lookup_2): Likewise.
12901         (vn_nary_op_compute_hash): Likewise.
12902         (vn_phi_compute_hash): Likewise.
12903         (expressions_equal_p): Remove strange code.
12904         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
12905         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
12906         (bitmap_insert_into_set_1): Take value-id as parameter.
12907         (add_to_value): Pass it.
12908         (bitmap_insert_into_set): Likewise.
12909         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
12910
12911 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
12912
12913         PR driver/42442
12914         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
12915         (do_self_spec): For switches with SWITCH_IGNORE set set also
12916         SWITCH_IGNORE_PERMANENTLY.
12917         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
12918         of SWITCH_IGNORE.
12919
12920 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
12921
12922         * lto-streamer-out.c (output_unreferenced_globals): Output the full
12923         tree of an unreferenced global var.
12924
12925 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
12926
12927         PR target/42542
12928         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
12929         GTU to GT for V4SI and V2DI.
12930
12931         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
12932         (umin<mode>3): Removed.
12933         (uminv8hi3): New.
12934         (uminv4si3): Likewise.
12935
12936 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
12937
12938         PR lto/42581
12939         * collect2.c (main): Turn on trace in collect2 if -v is passed
12940         to gcc with LTO.
12941
12942 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
12943
12944         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
12945         description of expression operand.
12946
12947 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
12948
12949         * configure.ac: Add install-html to target_list for Make-hooks.
12950         * configure: Regenerate.
12951         * fortran/Make-lang.in (F95_HTMLFILES): New.
12952         (fortran.html): Use it.
12953         (fortran.install-html): New.
12954         * Makefile.in (install-html): Add lang.install-html.
12955         * java/Make-lang.in (JAVA_HTMLFILES): New.
12956         (java.html): Use it.
12957         (java.install-html): New.
12958         * objc/Make-lang.in (objc.install-html): New.
12959         * objcp/Make-lang.in (obj-c++.install-html): New.
12960         * cp/Make-lang.in (c++.install-html): New.
12961         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
12962         * lto/Make-lang.in (lto.install-html): New.
12963
12964 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
12965
12966         PR lto/42520
12967         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
12968
12969 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
12970
12971         PR rtl-optimization/41862
12972         * store-motion.c (store_killed_in_insn, compute_store_table,
12973         remove_reachable_equiv_notes, replace_store_insn,
12974         build_store_vectors): Ignore all DEBUG_INSNs.
12975
12976 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
12977
12978         PR lto/41564
12979         * common.opt: Add dumpdir.
12980
12981         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
12982         isn't specified.
12983         (option_map): Add --dumpdir.
12984
12985         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
12986
12987         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
12988
12989         * opts.c (decode_options): Try dump_dir_name first if
12990         dump_base_name isn't an absolute path.
12991         (common_handle_option): Handle OPT_dumpdir.
12992
12993         * toplev.c (dump_dir_name): New.
12994         (print_switch_values): Also ignore -dumpdir.
12995
12996         * toplev.h (dump_dir_name): New.
12997
12998 2010-01-03  Richard Guenther  <rguenther@suse.de>
12999
13000         PR tree-optimization/42589
13001         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
13002         double-word expansion of bswap32.
13003
13004 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
13005
13006         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
13007         with BLOCK_FOR_INSN.
13008         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
13009         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
13010         noce_process_if_block): Likewise.
13011         * gcse.c (compute_local_properties, insert_expr_in_table,
13012         insert_set_in_table, canon_list_insert, find_avail_set,
13013         pre_insert_copy_insn): Likewise.
13014
13015         * basic-block.h (BLOCK_NUM): Move from here...
13016         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
13017
13018 2010-01-03  Richard Guenther  <rguenther@suse.de>
13019
13020         PR tree-optimization/42438
13021         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
13022         contains_may_not_return_call flag.
13023         (BB_MAY_NOTRETURN): New.
13024         (valid_in_sets): Trapping nary operations are not valid
13025         in blocks that may not return.
13026         (insert_into_preds_of_block): Remove check for trapping expressions.
13027         (compute_avail): Compute also BB_MAY_NOTRETURN.
13028
13029 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
13030
13031         * doc/invoke.texi: Add 2010 to copyright years.
13032
13033 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
13034
13035         * config/sparc/sparc.c: Fix formatting nits.
13036
13037 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
13038             Alexander Monakov  <amonakov@ispras.ru>
13039
13040         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
13041
13042 2010-01-02  Richard Guenther  <rguenther@suse.de>
13043
13044         PR middle-end/42577
13045         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
13046         (simplify_switch_using_ranges): Mark to be removed edges
13047         as non-executable.
13048
13049 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13050
13051         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
13052
13053         * collect2.c (scan_libraries): Add missing argument in call to
13054         scan_prog_file.
13055
13056 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
13057
13058         PR target/42448
13059         * config/alpha/predicates.md (aligned_memory_operand): Return false
13060         for CQImode.
13061         (unaligned_memory_operand): Return true for CQImode.
13062         * config/alpha/alpha.c (get_aligned_mem): Assert that location
13063         doesn not cross aligned SImode word boundary.
13064
13065 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
13066
13067         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
13068         Remove.
13069         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
13070         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
13071
13072 2010-01-02  Richard Guenther  <rguenther@suse.de>
13073
13074         PR lto/41597
13075         * toplev.c (compile_file): Emit LTO marker properly.  Change
13076         it to __gnu_lto_v1.
13077         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
13078
13079 2010-01-01  Richard Guenther  <rguenther@suse.de>
13080
13081         PR debug/42455
13082         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
13083
13084 2010-01-01  Richard Guenther  <rguenther@suse.de>
13085
13086         PR c/42570
13087         * c-decl.c (grokdeclarator): For zero-size arrays force
13088         structural equality checks as layout_type does.
13089
13090 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
13091
13092         * builtins.c: Update copyright to 2010.
13093
13094 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
13095
13096         PR lto/42531
13097         * lto-streamer-out.c (produce_asm): Revert the last change.
13098         (copy_function): Likewise.
13099
13100         * lto-streamer.c (lto_get_section_name): Skip any leading
13101         asterisk in name.
13102
13103 2010-01-01  Richard Guenther  <rguenther@suse.de>
13104
13105         PR middle-end/42559
13106         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
13107         for LABEL_DECLs.
13108
13109 \f
13110 Copyright (C) 2010 Free Software Foundation, Inc.
13111
13112 Copying and distribution of this file, with or without modification,
13113 are permitted in any medium without royalty provided the copyright
13114 notice and this notice are preserved.