OSDN Git Service

* coverage.c: Include tree-pass.h.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
2
3         * coverage.c: Include tree-pass.h.
4         (coverage_counter_alloc): Print da_file_name to the dump file.
5
6 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
7
8         * sbitmap.c (sbitmap_range_empty_p): New function.
9         * sbitmap.h (sbitmap_range_empty_p): New function.
10         * bitmap.h: Now includes obstack.h.
11
12 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
13             Kenneth Zadeck <zadeck@naturalbridge.com>
14
15         * dbgcnt.def (ra_byte_scan): Added.
16         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
17         when the last hit happens for a counter.  
18         * timevar.def (TV_DF_BYTE_LR): New variable.
19         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
20         * passes.c (pass_fast_rtl_byte_dce): New pass.
21         * fwprop.c (update_df): Added mode to call df_ref_create.
22         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
23         DF_REF_EXTRACT_OFFSET.
24         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
25         DF_BYTE_LR_OUT, df_byte_lr): New macro.
26         (df_mm): New enum.
27         (df_ref_extract): Added mode field.
28         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
29         DF_REF_EXTRACT_OFFSET.
30         (DF_REF_EXTRACT_MODE): New macro.
31         (df_byte_lr_bb_info): New structure.
32         (df_print_byte_regset, df_compute_accessed_bytes, 
33         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
34         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
35         df_byte_lr_simulate_uses,
36         df_byte_lr_simulate_artificial_refs_at_top,
37         df_byte_lr_simulate_artificial_refs_at_end,
38         df_compute_accessed_bytes): New function.
39         (df_ref_create): Add parameter.
40         (df_byte_lr_get_bb_info): New inline function.
41         * df-scan.c (df_ref_record, df_uses_record,
42         df_ref_create_structure): Added mode parameter.
43         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
44         df_defs_record, df_uses_record, df_get_conditional_uses,
45         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
46         df_entry_block_defs_collect, df_exit_block_uses_collect):
47         Added mode parameter to calls to df_ref_record, df_uses_record,
48         df_ref_create_structure.
49         (df_ref_equal_p, df_ref_compare): Added test for modes.
50         (df_ref_create_structure): Added code to set mode.  Renamed
51         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
52         DF_REF_EXTRACT_OFFSET.
53         * df-core.c (df_print_byte_regset): New function.
54         * df-byte-scan.c: New file.
55         * df-problems.c (df_rd_transfer_function): Removed unnecessary
56         calls to BITMAP_FREE.  
57         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
58         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
59         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
60         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
61         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
62         df_byte_lr_local_compute, df_byte_lr_init,
63         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
64         df_byte_lr_transfer_function, df_byte_lr_free, 
65         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
66         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
67         df_byte_lr_simulate_uses,
68         df_byte_lr_simulate_artificial_refs_at_top,
69         df_byte_lr_simulate_artificial_refs_at_end): New function.
70         * dce.c (byte_dce_process_block): New function.
71         (dce_process_block): au is now passed in rather than computed
72         locally.  Changed loops that look at artificial defs to not look
73         for conditional or partial ones, because there never are any.  
74         (fast_dce): Now is able to drive byte_dce_process_block or 
75         dce_process_block depending on the kind of dce being done.
76         (rest_of_handle_fast_dce): Add parameter to fast_dce.
77         (rest_of_handle_fast_byte_dce): New function.
78         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
79         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
80
81 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
82
83         PR fortran/35019
84         * gcc.h: Added fortran options that take arguments to
85         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
86         macros.
87
88 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
89
90         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
91         scalarization if on the LHS and not a full access.
92
93 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
94
95         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
96
97 2008-04-18  Rafael Espindola  <espindola@google.com>
98
99         * tree-vrp.c (find_case_label_index): Fix the binary search.
100         (find_case_label_range): New.
101         (vrp_visit_switch_stmt): Use find_case_label_range.
102         (simplify_switch_using_ranges): Use find_case_label_range.
103
104 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
105
106         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
107         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
108
109 2008-04-18  Tom Tromey  <tromey@redhat.com>
110
111         PR libcpp/15500:
112         * doc/cpp.texi (Implementation-defined behavior): Mention
113         -finput-charset.
114
115 2008-04-18  Ian Lance Taylor  <iant@google.com>
116
117         * fold-const.c (pointer_may_wrap_p): New static function.
118         (fold_comparison): Add another test for pointer overflow.  Use
119         pointer_may_wrap_p to disable some false positives.
120
121 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
122           
123         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
124         (fname_as_string): Match updated cpp_interpret_string prototype.
125         (fix_string_type): Support char16_t* and char32_t*.
126         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
127         derivative) nodes.  Register as builtin if C++0x.
128         (c_parse_error): Support CPP_CHAR{16,32}.
129         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
130         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
131         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
132         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
133         CTI_CHAR32_ARRAY_TYPE>: New elements.
134         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
135         char32_type_node, signed_char32_type_node, char16_array_type_node,
136         char32_array_type_node): New defines.
137         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
138         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
139         (lex_string): Support CPP_STRING{16,32}, match updated
140         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
141         (lex_charconst): Support CPP_CHAR{16,32}.
142         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
143         and CPP_STRING{16,32}.
144
145 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
146
147         PR bootstrap/35457
148         * aclocal.m4: Regenerate.
149         * configure: Regenerate.
150
151 2008-04-18  Jan Hubicka  <jh@suse.cz>
152
153         * except.c (dw2_size_of_call_site_table,
154         sjlj_size_of_call_site_table): Use vector API for call_site_record.
155
156         * cgraphbuild.c (build_cgraph_edges): Update.
157         * tree-pass.h: Update comment.
158         * final.c (leaf_function_p): Update.
159         (leaf_renumber_regs): Update.
160         (rest_of_clean_state): Update.
161         * omp-low.c (expand_omp_parallel): Update.
162         * ipa-reference.c (analyze_function): Update.
163         * reorg.c (find_end_label): Update.
164         (optimize_skip): Update.
165         (fill_simple_delay_slots): Update.
166         (fill_simple_delay_slots): Update.
167         (make_return_insns): Update.
168         (dbr_schedule): Update.
169         * gimple-low.c (record_vars_into): Update.
170         * cfgbuild.c (make_edges): Update.
171         * function.c (assign_stack_local): Update.
172         (assign_parm_adjust_stack_rtl): Update.
173         (locate_and_pad_parm): Update.
174         (allocate_struct_function): Do not initialize stack_alignment_needed
175         and preferred_stack_boundary here.
176         (stack_protect_prologue): Update.
177         (stack_protect_epilogue): Update.
178         (expand_function_start): Initialize stack_alignment_needed,
179         preferred_stack_boundary and max_jumptable_ents.
180         (expand_function_end): Update.
181         (free_after_compilation): Do not NULLify epilogue_delay_list.
182         * function.h (struct rtl_data): Add stack_protect_guard,
183         stack_alignment_needed,
184         preferred_stack_boundary, epilogue_delay_list.
185         (struct function): Remove value_histograms, stack_alignment_needed,
186         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
187         last_label_uid,
188         unexpanded_var_list, stack_protect_guard.
189         (current_function_epilogue_delay_list): Remove.
190         * ipa-type-escape.c (analyze_function): Update.
191         * gimplify.c (pop_gimplify_context): Update comment.
192         * calls.c (expand_call): Update.
193         (emit_library_call_value_1): Update.
194         * except.c (set_nothrow_function_flags): Update.
195         * cfgexpand.c (get_decl_align_unit): Update.
196         (create_stack_guard): Update.
197         (estimated_stack_frame_size): Update.
198         (expand_used_vars): Update.
199         (tree_expand_cfg): Free histogram earliers, init expansion variables.
200         * explow.c (allocate_dynamic_stack_space): Update.
201         * tree-ssa-live.c (remove_unused_locals): Update.
202         * varasm.c (mark_constant_pool): Update.
203         * tree-inline.c (remap_decls): Update.
204         (initialize_cfun): Update.
205         (declare_return_variable): Update.
206         (inline_forbidden_p): Update.
207         (expand_call_inline): Update.
208         (declare_inline_vars): Update.
209         (tree_function_versioning): Update.
210         * tree-flow.h (value_histograms): New.
211         (VALUE_HISTOGRAMS): New macro.
212         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
213         last_label_uid.
214         * tree-cfg.c (set_bb_for_stmt): Update.
215         (replace_by_duplicate_decl): Update.
216         (move_block_to_fn): Update.
217         (new_label_mapper): Update.
218         (dump_function_to_file): Update.
219         * ipa-struct-reorg.c (build_data_structure): Update.
220         * cfgrtl.c (print_rtl_with_bb): Update.
221         * reload1.c (reload): Update.
222         (reload): Update.
223         * config/i386/i386.c (setup_incoming_varargs_64,
224         ix86_compute_frame_layout): Update.
225         * config/arc/arc.c (arc_output_function_epilogue): Update.
226
227 2008-04-18  Marius Strobl <marius@FreeBSD.org>
228
229         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
230         for FreeBSD as well.
231         * gthr-posix95.h: Likewise.
232
233 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
234
235         PR rtl-optimization/35838
236         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
237         out the byte offset of the first subreg.
238
239 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
240
241         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
242         to split_ti instead of three separate calls with single member arrays.
243         (subti3 splitter): Ditto.
244         (adddi3 splitter): Ditto with split_di.
245         (subdi3 splitter): Ditto.
246         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
247         two separate calls with single member arrays.  Swap match_dup
248         operands 1 and 2 to better fit into the array.
249         (negdi2 splitter): Ditto with split_di.
250         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
251         two separate calls with single member arrays.  Swap match_dup operands
252         6 and 7 to better fit into the array.
253
254 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
255
256         * config/i386/i386.c (sse_builtin_type): New.
257         (bdesc_sse_args): Likewise.
258         (bdesc_sse_3arg): Removed.
259         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
260         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
261         IX86_BUILTIN_ROUNDPS.
262         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
263         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
264         IX86_BUILTIN_ROUNDPS.
265         (ix86_expand_sse_4_operands_builtin): Removed.
266         (ix86_expand_sse_operands_builtin): New.
267         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
268         and CODE_FOR_sse4_1_roundps.
269         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
270         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
271
272 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
273
274         PR target/35907
275         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
276         regs before frame pop when needed.  If use_backchain_to_restore_sp
277         then load backchain into a temp reg to restore vr and vrsave.  Add
278         code to restore vr after frame pop if possible.
279
280 2008-04-17  Richard Guenther  <rguenther@suse.de>
281
282         * tree-vn.c (expressions_equal_p): Do not check type
283         equality or compatibility before calling operand_equal_p.
284         * fold-const.c (operand_equal_p): Check equivalence of
285         integer constants before bailing out due to signedness or
286         precision differences.
287         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
288         spurious differences in type qualification.  Ignore types
289         for COMPONENT_REFs at all.
290
291 2008-04-17  Christian Bruel  <christian.bruel@st.com>
292
293         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
294         msw_skip comparison.
295         
296 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
297
298         PR c/35739
299         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
300         reg type.
301
302         PR tree-optimization/35899
303         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
304         rather than TREE_OPERAND.
305
306 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
307
308         PR target/35944
309         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
310         temporary registers.  Change operand predicate to general_operand.
311         (remainderxf3): Ditto.
312
313 2008-04-16  Richard Guenther  <rguenther@suse.de>
314
315         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
316         * tree-affine.c (aff_combination_expand): Look through some
317         conversions.
318
319 2008-04-15  Doug Kwan  <dougkwan@google.com>
320
321         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
322         for hex printing.
323         * tree-pretty-print.c (dump_generic_node): Ditto.
324         * final.c (output_addr_const): Ditto.
325         * dwarf2out.c (output_cfi): Ditto.
326         * c-pretty-print.c (pp_c_integer_constant): Ditto.
327         * print-rtl.c (print_rtx): Ditto.
328         * print-tree.c (print_node_brief, print_node): Ditto.
329         * c-common.c (match_case_to_enum_1): Ditto.
330         * sched-vis.c (print_value): Ditto.
331         * config/i386/i386.c (print_operand): Cast to long unsigned int
332         for hex printing.
333
334 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
335         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
336         MS Windows VirtualProtect function.
337
338 2008-04-15  Jan Hubicka  <jh@suse.cz>
339
340         * gengtype.c (write_root): Param_is argument is OK.
341         * expr.c (expand_expr_real_1): Update call of get_exception_*.
342         * function.h: Include varray.h
343         (rtl_eh): New stucture based on except.c one.
344         (call_site_record): New forward declaration and vector type.
345         * calls.c (emit_call_1): Do not call
346         note_current_region_may_contain_throw.
347         * except.c (eh_status): Remove cur_region, try_region since they are
348         unused.
349         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
350         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
351         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
352         Remove call_site_data_used, call_site_data_size.
353         Turn call_site_record into vector in function.h.
354         (note_current_region_may_contain_throw): Remove.
355         (get_exception_pointer, get_exception_filter): Do not take struct
356         function argument; update.
357         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
358         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
359         build_post_landing_pads, dw2_build_landing_pads,
360         sjlj_assign_call_site_values, sjlj_mark_call_sites,
361         sjlj_emit_function_enter, sjlj_emit_function_enter, 
362         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
363         sjlj_build_landing_pads, finish_eh_generation,
364         remove_exception_handler_label, remove_eh_handler,
365         maybe_remove_eh_handler, add_reachable_handler,
366         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
367         add_action_record, collect_one_action_chain, add_call_site,
368         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
369         sjlj_output_call_site_table, output_function_exception_table,
370         * except.h (note_current_region_may_contain_throw): Remove
371         (get_exception_pointer, get_exception_filter): Do not take struct
372         function argument.
373         * Makefile.in (GTFILES): Put varargs before struct function.
374
375 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
376
377         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
378         punt for STRING_CST.
379         (get_constraint_for): Deal with STRING_CST here instead.
380
381 2008-04-15  Richard Guenther  <rguenther@suse.de>
382
383         * tree-ssa-propagate.c (substitute_and_fold): Substitute
384         statements in a basic-block with a backward walk.  Do not
385         substitute into dead statements but instead remove those.
386
387 2008-04-15  Richard Guenther  <rguenther@suse.de>
388
389         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
390         to zero, thus disable creation of SFTs.
391
392 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
393
394         * tree-predcom.c (suitable_reference_p): Return false if the
395         reference can throw.
396
397 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
398
399         PR c/35751
400         * c-decl.c (finish_decl): If extern or static var has variable
401         size, set TREE_TYPE (decl) to error_mark_node.
402
403 2008-04-15  Rafael Espindola  <espindola@google.com>
404
405         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
406         variable arg1.
407
408 2008-04-15  Richard Guenther  <rguenther@suse.de>
409
410         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
411         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
412         (visit_reference_op_load): Do walk vuse-vdef chains on
413         vn_reference_lookup.
414         (visit_reference_op_store): But do not here.
415         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
416         vn_reference_lookup.
417         (vn_lookup_with_vuses): But do so here.
418
419 2008-04-14  Ian Lance Taylor  <iant@google.com>
420
421         * fold-const.c (fold_overflow_warning): Remove assertion.
422
423 2008-04-15  Ben Elliston  <bje@au.ibm.com>
424
425         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
426         temp1 local variables.
427
428 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
429
430         PR target/35661
431         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
432         ".text.unlikely" section as executable.
433
434 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
435
436         * config/ia64/ia64.c (rtx_needs_barrier): Handle
437         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
438         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
439         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
440         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
441         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
442         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
443
444 2008-04-14  Ian Lance Taylor  <iant@google.com>
445
446         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
447         * fold-const.c (fold_comparison): If appropriate, test
448         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
449         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
450         reassociating a pointer type.
451         * doc/invoke.texi (Optimize Options): Document that
452         -fstrict-overflow applies to pointer wraparound.
453
454 2008-04-13  Jan Hubicka  <jh@suse.cz>
455
456         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
457
458 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
459
460         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
461         we are going to "save the world".
462
463 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
464
465         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
466         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
467         operand 0 constraint, not "=".
468
469 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
470
471         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
472
473 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
474
475         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
476         of size of positions_needed * CHAR_BIT.
477
478 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
479
480         PR middle-end/35897
481         * dse.c (store_info): Change positions_needed to unsigned
482         HOST_WIDE_INT.
483         (lowpart_bitmask): New.
484         (record_store): Cast to unsigned HOST_WIDE_INT for
485         positions_needed.  Assert width <= size of positions_needed *
486         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
487         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
488         lowpart_bitmask to set mask.
489
490 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
491
492         * config/bfin/constraints.md: New file.
493         * config/bfin/bfin.md: Include it.
494         (adddi3): Use satisfies_constraint functions instead of the old macros.
495         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
496         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
497         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
498         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
499         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
500         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
501         EXTRA_CONSTRAINT): Delete.
502         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
503         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
504         of the old macros.
505         * config/bfin/bfin.c: Include "tm-constrs.h".
506         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
507         Use satisfies_constraint functions instead of the old macros.
508         * doc/md.texi (Blackfin Constraints): Update file name reference.
509
510 2008-04-11  Richard Guenther  <rguenther@suse.de>
511
512         PR tree-optimization/35869
513         * tree-vrp.c (execute_vrp): Move switch statement update after
514         jump threading.  Schedule another cfg cleanup run.
515
516 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
517
518         PR c/35744
519         * attribs.c (decl_attributes): Return early on errorneous node.
520
521 2008-04-10  Oleg Ryjkov  <olegr@google.com>
522
523         * tree.h (struct tree_base): Added a new flag default_def_flag.
524         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
525
526 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
527
528         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
529
530 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
531
532         PR target/35768
533         * pa.md: Define mode iterator P.  Define mode attribute dwc.
534         (dcacheflush): Update pattern to use iterator P and attribute dwc.
535         (icacheflush): Likewise.
536         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
537         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
538
539 2008-04-11  Ben Elliston  <bje@au.ibm.com>
540
541         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
542
543 2008-04-10  Rafael Espindola  <espindola@google.com>
544
545         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
546         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
547         (extract_range_from_expr): The same.
548
549 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
550
551         * config/mips/mips.md (GPR2): New mode iterator.
552         (seq): Add comment.
553         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
554         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
555         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
556         Rewrite these to take two modes, the mode of comparison and the
557         mode of the destination.
558         * config/mips/mips.c (mips_expand_scc): Instead of having
559         paradoxical subreg as destination, expand "narrowing" scc if mode
560         of comparison is SI and target is requested in DI mode.
561         (mips_emit_int_order_test): Update comment.  Make mode of
562         comparison match CMP0 rather than TARGET.  When creating inverse
563         target use mode of TARGET.
564
565 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
566
567         * gcov-dump.c (tag_summary): Only print summaries for the first
568         GCOV_COUNTERS_SUMMABLE counters.
569
570 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
571
572         * config/i386/i386.md (absneg): New code iterator.
573         (absnegprefix): New code attribute.
574         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
575         patterns using absneg code iterator.
576         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
577         using absneg code iterator.
578         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
579         *neg<mode>2 patterns using absneg code iterator.
580         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
581         *negextendsfdf2 patterns using absneg code iterator.
582         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
583         *negextendsfxf2 patterns using absneg code iterator.
584         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
585         *negextendsfdf2 patterns using absneg code iterator.
586         * config/i386/sse.md (<code><mode>2): Macroize expander from
587         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
588
589 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
590
591         * config/s390/s390.h: Remove the remains of the recent search
592         & replace action of current_function_outgoing_args_size.
593
594 2008-04-10  Ira Rosen  <irar@il.ibm.com>
595
596         PR tree-optimization/35821
597         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
598         NEW_STMT_LIST is not NULL.
599
600 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
601
602         PR libstdc++/35597
603         * toplev.c (process_options): Remove -ffunction-sections debugging
604         warning.
605
606 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
607
608         PR middle-end/PR28690
609         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
610         than gen_rtx_fmt_ee to perform more canonicalizations.
611
612 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
613
614         PR driver/35665
615         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
616
617 2008-04-09  Richard Guenther  <rguenther@suse.de>
618
619         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
620         (dump_function_to_file): Dump function arguments with types.
621
622 2008-04-08  Richard Guenther  <rguenther@suse.de>
623
624         * fold-const.c (fold_widened_comparison): Do not allow
625         sign-changes that change the result.
626
627 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
628
629         PR target/35839
630         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
631         kinds of indirect references.
632
633 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
634
635         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
636         GNU Fortran language string.
637
638 2008-04-08  Rafael Espindola  <espindola@google.com>
639
640         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
641         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
642         * tree.h (tree_call_nonnegative_warnv_p): New.
643
644 2008-04-08  Jan Hubicka  <jh@suse.cz>
645
646         * function.c (free_after_compilation): Clear out regno_reg_rtx
647         pointer.
648
649 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
650
651         Revert
652         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
653
654         PR middle-end/PR28690
655         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
656         same precedence as REG_POINTER and MEM_POINTER operands.
657
658 2008-04-08  Richard Guenther  <rguenther@suse.de>
659
660         PR middle-end/35834
661         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
662         for adding index to base.
663
664 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
665
666         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
667         (MINGW_ENABLE_EXECUTE_STACK): New.
668         (IN_LIBGCC2): For libgcc include windows.h file for
669         function declarations.
670
671 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
672
673         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
674         and tem2 if tem1 is not a REG or MULT.
675
676 2008-04-08  Jan Hubicka  <jh@suse.cz>
677
678         * function.h (incomming_args): Break out of struct function.
679         (function_subsections): Break out of struct function.
680         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
681         return_rtx and hard_reg_initial_vals from struct function.
682         Kill inl_max_label_num.
683         (current_function_pops_args, current_function_args_info,
684         current_function_args_size, current_function_args_size,
685         current_function_pretend_args_size,
686         current_function_outgoing_args_size,
687         current_function_internal_arg_pointer, current_function_return_rtx):
688         Kill compatibility accestor macros.
689         * builtins.c (expand_builtin_apply_args_1): Update.
690         (expand_builtin_next_arg): Update.
691         * df-scan.c (df_get_call_refs): Update.
692         * dbxout.c (dbxout_function_end): Update.
693         * dwarf2out.c (dwarf2out_switch_text_section): Update.
694         (output_line_info): Update.
695         (secname_for_decl): Update.
696         (dwarf2out_var_location): Update.
697         * function.c (free_after_compilation): Update.
698         (assign_parm_find_stack_rtl): Update.
699         (assign_parms): Update.
700         (expand_dummy_function_end): Update.
701         (expand_function_end): Update.
702         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
703         (expand_call): Update.
704         (emit_library_call_value_1): Update.
705         (store_one_arg): Update.
706         * varasm.c (initialize_cold_section_name): Update.
707         (unlikely_text_section): Update.
708         (unlikely_text_section_p): Update.
709         (assemble_start_function): Update.
710         (assemble_end_function): Update.
711         (default_section_type_flags): Update.
712         (switch_to_section): Update.
713         * integrate.c (set_decl_abstract_flags): Update.
714         (get_hard_reg_initial_val): Update.
715         (has_hard_reg_initial_val): Update.
716         (allocate_initial_values): Update.
717         * resource.c (init_resource_info): Update.
718         * config/alpha/alpha.c (NUM_ARGS): Update.
719         (direct_return): Update.
720         (alpha_va_start): Update.
721         (alpha_sa_size): Update.
722         (alpha_initial_elimination_offset): Update.
723         (alpha_expand_prologue): Update.
724         (alpha_start_function): Update.
725         (alpha_expand_epilogue): Update.
726         (unicosmk_initial_elimination_offset):
727         * config/alpha/alpha.md (call expander): Update.
728         * config/s390/s390.c (s390_register_info): Update.
729         (s390_register_info): Update.
730         (s390_frame_info): Update.
731         (s390_initial_elimination_offset): Update.
732         (s390_build_builtin_va_list): Update.
733         (s390_va_start): Update.
734         * config/spu/spu.c (direct_return): Update.
735         (spu_expand_prologue): Update.
736         (spu_initial_elimination_offset): Update.
737         (spu_build_builtin_va_list): Update.
738         (spu_va_start): Update.
739         * config/sparc/sparc.c (sparc_init_modes): Update.
740         (sparc_compute_frame_size): Update.
741         (function_value): Update.
742         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
743         * config/i386/i386.md (return expander): Update.
744         * config/i386/i386.c (ix86_va_start): Update.
745         (ix86_can_use_return_insn_p): Update.
746         (ix86_compute_frame_layout): Update.
747         (ix86_expand_epilogue): Update.
748         * config/sh/sh.c (output_stack_adjust): Update.
749         (calc_live_regs): Update.
750         (sh_expand_prologue): Update.
751         (sh_builtin_saveregs): Update.
752         (sh_va_start): Update.
753         (initial_elimination_offset): Update.
754         (sh_allocate_initial_value): Update.
755         (sh_function_ok_for_sibcall): Update.
756         (sh_get_pr_initial_val): Update.
757         * config/sh/sh.md (return expander): Update.
758         * config/avr/avr.c (frame_pointer_required_p): UPdate.
759         * config/crx/crx.c (crx_compute_frame): UPdate.
760         (crx_initial_elimination_offset): UPdate.
761         * config/xtensa/xtensa.c (compute_frame_size): Update
762         (xtensa_builtin_saveregs): Update.
763         (xtensa_va_start): Update.
764         (order_regs_for_local_alloc): Update.
765         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
766         (xstormy16_expand_builtin_va_start): Update.
767         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
768         * config/m68hc11/m68hc11.md (return expanders): Update.
769         * config/m68hc11/m68hc11.c (expand_prologue): Update.
770         (expand_epilogue): Update.
771         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
772         (cris_simple_epilogue): Update.
773         (cris_expand_prologue): Update.
774         (cris_expand_epilogue): Update.
775         * config/iq2000/iq2000.c (iq2000_va_start): Update.
776         (compute_frame_size): Update.
777         * config/mt/mt.c (mt_compute_frame_size): Update.
778         * config/mn10300/mn10300.c (expand_prologue): Update.
779         (expand_epilogue): Update.
780         (initial_offset): Update.
781         (mn10300_builtin_saveregs):
782         * config/mn10300/mn10300.md (return expander): Update.
783         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
784         (ia64_initial_elimination_offset): Update.
785         (ia64_initial_elimination_offset): Update.
786         (ia64_expand_prologue): Update.
787         * config/m68k/m68k.md (return expander): Update.
788         * config/rs6000/rs6000.c (rs6000_va_start): Update.
789         (rs6000_stack_info): Update.
790         * config/mcore/mcore.c (layout_mcore_frame): Update.
791         (mcore_expand_prolog): Update.
792         * config/arc/arc.c (arc_compute_frame_size): Update.
793         * config/score/score3.c (score3_compute_frame_size): Update.
794         * config/score/score7.c (score7_compute_frame_size): Update.
795         * config/arm/arm.c (use_return_insn): Update.
796         (thumb_find_work_register): Update.
797         (arm_compute_save_reg_mask): Update.
798         (arm_output_function_prologue): Update.
799         (arm_output_epilogue): Update.
800         (arm_size_return_regs): Update.
801         (arm_get_frame_offsets): Update.
802         (arm_expand_prologue): Update.
803         (thumb_exit): Update.
804         (thumb_unexpanded_epilogue): Update.
805         (thumb1_output_function_prologue): Update.
806         * config/pa/pa.md (return expander): Update.
807         * config/pa/pa.c (compute_frame_size): Update.
808         (hppa_builtin_saveregs): Update.
809         * config/mips/mips.c (mips_va_start): Update.
810         (mips16_build_function_stub): Update.
811         (mips_compute_frame_info): Update.
812         (mips_restore_gp): Update.
813         (mips_output_function_prologue): Update.
814         (mips_expand_prologue): Update.
815         * config/v850/v850.c (compute_frame_size): Update.
816         (expand_prologue): * config/mmix/mmix.c (along): update.
817         (mmix_initial_elimination_offset): update.
818         (mmix_reorg): update.
819         (mmix_use_simple_return): update.
820         (mmix_expand_prologue): update.
821         (mmix_expand_epilogue): Update.
822         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
823         (emit_link_insn): Update.
824
825 2008-04-08  Anatoly Sokolov <aesok@post.ru>
826
827         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
828         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
829         instructions.
830         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
831         atmega103 device.
832
833 2008-04-07  Jan Hubicka  <jh@suse.cz>
834
835         * function.h (rtl): Rename to x_rtl.
836         (crtl): New define.
837         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
838         frame_offset, stack_check_probe_note, arg_pointer_save_area,
839         used_temp_slots avail_temp_slots, temp_slot_level,
840         nonlocal_goto_handler_labels): Update accesstors.
841         (rtl): New global variable.
842         (struct function): Move some fileds to rtl_data.
843         (get_arg_pointer_save_area): Update prototype.
844         * builtins.c (expand_builtin_setjmp_receiver): Update call of
845         get_arg_pointer_save_area.
846         * expr.c (init_expr): Update
847         * function.c (get_frame_size): Update
848         (assign_stack_local): Update
849         (expand_function_end): Update.
850         (get_art_pointer_save_area): Update
851         * function.h 
852         * emit-rtl.c (rtl): Declare.
853         (regno_reg_rtx): Declare.
854         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
855         Update.
856         (gen_reg_rtx): Update.
857         * varasm.c (n_deferred_constatns): Update accestor.
858         (init_varasm_status): Do not allocate varasm_status.
859         (force_const_mem, get_pool_size, output_constant_pool): Update.
860         * stmt.c (force_label_rtx): Do not use x_ prefixes.
861         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
862         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
863         * sparc/sparc.h (INIT_EXPANDERS): Update.
864         * ia64/ia64.h (INIT_EXPANDERS): Update.
865
866 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
867
868         * reload.c (push_secondary_reload): Add missing break to for loop.
869
870 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
871
872         PR middle-end/PR28690
873         * rtlanal.c: Update copyright years.
874         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
875         as REG_POINTER and MEM_POINTER operands.
876         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
877         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
878         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
879         * gcse.c: Update copyright years.
880         (pre_delete): Call gen_reg_rtx_and_attrs.
881         (hoist_code): Likewise.
882         (build_store_vectors): Likewise.
883         (delete_store): Likewise.
884         * loop-invariant.c (move_invariant_reg): Likewise.
885         Update copyright years.
886
887 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
888
889         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
890         control string instead of quoted.
891
892 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
893
894         * doc/rtl.texi: Rewrite of subreg section.
895
896 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
897
898         PR/35842
899         * config/i386/i386.c (legitimize_pic_address): Add treating
900         of dllimport SYM_REF's.
901         (legitimize_dllimport_symbol): Add prototype.
902
903 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
904
905         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
906         reference in constructor with non self-referential type.
907
908 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
909
910         Removal of Return with Depressed Stack Pointer support
911         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
912         (ECF_SP_DEPRESSED): Likewise.
913         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
914         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
915         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
916         (expand_call): Do not test ECF_SP_DEPRESSED.
917         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
918         * function.c (keep_stack_depressed): Delete.
919         (handle_epilogue_set): Likewise.
920         (update_epilogue_consts): Likewise.
921         (emit_equiv_load): Likewise.
922         (thread_prologue_and_epilogue_insns): Remove support for Return with
923         Depressed Stack Pointer.
924         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
925
926 2008-04-06  Richard Guenther  <rguenther@suse.de>
927
928         PR tree-optimization/35400
929         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
930         information from SSA_NAMEs.
931
932 2008-04-06  Anatoly Sokolov <aesok@post.ru>
933
934         * config/avr/avr.h (avr_mega_p): Remove declaration.
935         (AVR_MEGA): Remove macro.
936         * config/avr/avr.c (avr_mega_p): Remove variable.
937         (avr_override_options): Remove inicializion of avr_mega_p.
938         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
939         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
940         (avr_jump_mode): (Ditto.).
941         (avr_output_progmem_section_asm_op): (Ditto.).
942         (avr_asm_init_sections): (Ditto.).
943         (avr_asm_init_sections): (Ditto.).
944         (avr_rtx_costs): (Ditto.).
945         * config/avr/avr.md: (Ditto.).
946         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
947         '__AVR_MEGA__'.
948
949 2008-04-06  Richard Guenther  <rguenther@suse.de>
950
951         PR tree-optimization/35842
952         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
953         is_gimple_invariant_address.
954
955 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
956
957         * gcc.c (default_compilers): Sync Fortran extensions list with
958         that in fortran/lang-specs.h.
959         * doc/invoke.texi: Likewise.
960         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
961         * dwarf2out.c (gen_compile_unit_die): Likewise.
962
963 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
964
965         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
966
967 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
968
969         PR target/12329
970         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
971         attribute is used for nested functions.
972
973 2008-04-05  Jan Hubicka  <jh@suse.cz>
974
975         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
976
977         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
978         letter argument.
979         (dump_files): Update.
980         (enable_rtl_dump_file): Do not accept letter argument.
981         * tree-pass.h (dump_file_info): Remove letter argument.
982         * toplev.c (decode_d_option): Update -da handling.
983         * toplev.h (enable_rtl_dump_file): Update prototype.
984         * passes.c (register_one_dump_file): Do not accept IPA argument; work
985         it out based on pass type.
986         (register_dump_files_1): Likewise.
987         (init_optimization_passes): Update register_one_dump_file calls.
988         (execute_one_pass): Sanity check that IPA passes are called at IPA
989         level and RTL passes at RTL level.
990         (execute_pass_list): IPA pass can not be after or subpass of
991         GIMPLE/RTL pass.
992         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
993         disallov RTL subpasses of IPA subpasses.
994
995 2008-04-05  Ben Elliston  <bje@au.ibm.com>
996
997         * tree-cfg.c (need_fake_edge_p): Return false for calls to
998         builtins that return exactly once and do not throw. Cache call to
999         call_expr_flags.
1000
1001 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1002
1003         PR rtl-optimization/34916
1004         PR middle-end/35519
1005         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1006         between instruction pairs.
1007
1008 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1009
1010         * doc/invoke.texi: Document -mbitops for SH.
1011         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1012         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1013         * config/sh/sh.c (print_operand): Add %t operand code.
1014         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1015         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1016         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1017         (extendqihi2): Likewise.
1018         (movqi_i): Likewise.
1019         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1020         (extv): Use bld instruction for SH2A if possible.
1021         (extzv): Likewise.
1022         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1023         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1024         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1025         (bset.b, bclr.b): Define peepholes.
1026         * config/sh/sh.opt (mbitops): New option.
1027
1028 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1029
1030         PR target/35620
1031         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1032         and view convert expression.
1033
1034 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1035
1036         PR target/35364
1037         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1038
1039 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1040
1041         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1042
1043         * config/i386/cpuid.h (bit_AES): New.
1044         (bit_PCLMUL): Likewise.
1045
1046         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1047         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1048         SSE2 if AES or PCLMUL is enabled.
1049         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1050         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1051         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1052         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1053         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1054         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1055         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1056         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1057         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1058         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1059         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1060         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1061         __builtin_ia32_aeskeygenassist128 and
1062         __builtin_ia32_pclmulqdq128.
1063         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1064         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1065         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1066
1067         * config/i386/i386.h (TARGET_AES): New.
1068         (TARGET_PCLMUL): Likewise.
1069         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1070
1071         * config/i386/i386.md (UNSPEC_AESENC): New.
1072         (UNSPEC_AESENCLAST): Likewise.
1073         (UNSPEC_AESDEC): Likewise.
1074         (UNSPEC_AESDECLAST): Likewise.
1075         (UNSPEC_AESIMC): Likewise.
1076         (UNSPEC_AESKEYGENASSIST): Likewise.
1077         (UNSPEC_PCLMUL): Likewise.
1078
1079         * config/i386/i386.opt (maes): New.
1080         (mpclmul): Likewise.
1081
1082         * config/i386/sse.md (aesenc): New pattern.
1083         (aesenclast): Likewise.
1084         (aesdec): Likewise.
1085         (aesdeclast): Likewise.
1086         (aesimc): Likewise.
1087         (aeskeygenassist): Likewise.
1088         (pclmulqdq): Likewise.
1089
1090         * config/i386/wmmintrin.h: New.
1091
1092         * doc/extend.texi: Document AES and PCLMUL built-in function.
1093
1094         * doc/invoke.texi: Document -maes and -mpclmul.
1095
1096 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1097
1098         * function.c (free_after_parsing): Replace with
1099         cxx_push_function_context from C++ front-end.
1100         (allocate_struct_function): Don't call langhook.
1101         * langhooks.h (struct lang_hooks_for_functions): Delete.
1102         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1103         member "function".
1104         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1105         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1106         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1107         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1108         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1109         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1110         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1111
1112         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1113         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1114         
1115 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1116
1117         PR c/35440
1118         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1119         for all types.
1120
1121 2008-04-04  Richard Guenther  <rguenther@suse.de>
1122
1123         PR middle-end/35823
1124         * fold-const.c (optimize_minmax_comparison): Use the correct
1125         type for the constant in the simplified comparison.
1126
1127 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1128
1129         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1130         Pass L2 size as "--param l2-cache-size" to the compiler.
1131         (decode_l2_cache): New function to decode L2 cache parameters using
1132         0x8000006 extended cpuid function.
1133         (detect_caches_amd): Determine parameters of L2 cache using
1134         decode_l2_caches function.
1135         (decode_caches_intel): Decode L2 cache parameters.
1136         (detect_caches_intel): Determine L2 cache parameters using
1137         decode_caches_intel and decode_l2_caches functions.
1138
1139 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1140
1141         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1142         secondary input reload for subword loads from the constant pool.
1143
1144 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1145
1146         PR target/35713
1147         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1148           constants of the appropriate size for runtime calculations.
1149
1150         PR c/35712
1151         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1152           decimal-float literal constant zero.
1153
1154 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1155
1156         PR c/35738
1157         * c-parser.c (c_parser_omp_atomic): Call
1158         default_function_array_conversion on the RHS.
1159
1160         PR middle-end/35818
1161         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1162         call is_variable_sized if decl has incomplete type.
1163
1164 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1165
1166         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1167
1168 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1169
1170         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1171         iterators.
1172         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1173         (sgt<u>): Merge sgt and sgtu into new expander.
1174         (sgt, sgtu): Remove expanders.
1175         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1176         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1177         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1178         *sgtu_<mode>_mips16 into new pattern.
1179         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1180         (sge<u>): Merge sge and sgeu into new expander.
1181         (sge, sgeu): Remove expanders.
1182         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1183         new pattern.
1184         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1185         (slt<u>): Merge slt and sltu into new expander.
1186         (slt, sltu): Remove expanders.
1187         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1188         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1189         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1190         *sltu_<mode>_mips16 into new pattern.
1191         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1192         (sle<u>): Merge sle and sleu into new expander.
1193         (sle, sleu): Remove expanders.
1194         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1195         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1196         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1197         *sleu_<mode>_mips16 into new pattern.
1198         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1199
1200 2008-04-03  Jan Hubicka  <jh@suse.cz>
1201
1202         PR tree-optimization/35795
1203         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1204         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1205         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1206         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1207         * score/score3.c (score3_output_mi_thunk): Likewise.
1208         * score/score7.c (score7_output_mi_thunk): Likewise.
1209         * mips/mips.c (mips_output_mi_thunk): Likewise.
1210
1211 2008-04-03  Richard Guenther  <rguenther@suse.de>
1212
1213         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1214         conversions.  Simplify code.
1215
1216 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1217
1218         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1219
1220 2008-04-03  Tom Tromey  <tromey@redhat.com>
1221             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1222
1223         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1224         * config/bfin/t-bfin-linux (generated_files): Add
1225         linux-sysroot-suffix.h.
1226         * doc/install.texi (Prerequisites): Require make 3.80.
1227         * doc/sourcebuild.texi (Front End Directory): Document new
1228         variable.
1229         * Makefile.in (generated_files): New variable.
1230         (ALL_HOST_OBJS): New variable.
1231         ($(ALL_HOST_OBJS)): New target.
1232
1233 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1234
1235         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1236         (remap_block): Call id->transform_lang_insert_block instead
1237         of langhook.
1238         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1239         Set id.transform_lang_insert_block to NULL.
1240         (clone_body): Move to cp/optimize.c
1241         * tree-inline.h (struct copy_body_data): Change
1242         transform_lang_insert_block to function pointer.
1243         (copy_generic_body, copy_decl_no_change): Export.
1244         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1245         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1246         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1247
1248         * c-tree.h (insert_block): Kill.
1249         * c-decl.c (insert_block): Kill.
1250
1251 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1252
1253         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1254         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1255         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1256         argument.
1257         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1258         argument, call {push,pop}_function_context from here.
1259         * c-parser.c: Use c_{push,pop}_function_context.
1260
1261         * function.c (push_function_context_to): Move meat ...
1262         (push_function_context): ... here.  Simplify.
1263         * function.c (pop_function_context_from): Move meat ...
1264         (pop_function_context): ... here.  Simplify.
1265         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1266         leave_nested).
1267         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1268         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1269         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1270         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1271
1272 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1273
1274         * expmed.c (extract_force_align_mem_bit_field): Remove.
1275
1276 2008-04-03  Richard Guenther  <rguenther@suse.de>
1277
1278         PR middle-end/35800
1279         * expr.h (try_casesi): Adjust prototype.
1280         * expr.c (try_casesi): Take fallback label as extra parameter.
1281         Use that for gen_casesi if default_label is NULL.
1282         * stmt.c (expand_case): Pass fallback label to try_casesi,
1283         make sure to fill gaps with a fallback label if default_label
1284         is not present.
1285
1286 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1287
1288         PR target/35801
1289         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1290
1291 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1292
1293         * expmed.c (extract_split_bit_field): Remove if (0) code.
1294         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1295         (do_ds_constraint): Likewise.
1296
1297 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1298
1299         * doc/cppopts.texi (-dU): Document.
1300         * c-common.h (flag_dump_macros): Update comment.
1301         * c-opts.c (handle_OPT_d): Handle -dU.
1302         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1303         dump_queued_macros, cb_used_define, cb_used_undef): New.
1304         (init_pp_output): Handle -dU.
1305         (cb_line_change): Call dump_queued_macros.
1306         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1307
1308 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1309
1310         * config/avr/predicates.md (io_address_operand): New predicate. 
1311         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1312         * config/avr/avr.c (avr_io_address_p): Remove function.
1313         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1314         'avr_io_address_p' function.
1315         (out_movhi_r_mr): (Ditto.).
1316         (out_movqi_mr_r): (Ditto.).
1317         (out_movhi_mr_r): (Ditto.).
1318         (avr_address_cost): (Ditto.).
1319
1320 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1321
1322         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1323         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1324         in 32bit mode when XMM registers are available to avoid store
1325         forwarding stalls.
1326         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1327         corresponding post-reload splitters.
1328
1329 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1330
1331         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1332         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1333         __builtin_ia32_roundss.
1334         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1335         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1336         __builtin_ia32_roundss.
1337         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1338         IX86_BUILTIN_SHUFPD here.
1339
1340 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1341
1342         * config/i386/i386.md (plogic): New.
1343         (plogicprefix): Likewise.
1344
1345         * config/i386/mmx.md (mmx_<code><mode>3): New.
1346         (mmx_and<mode>3): Removed.
1347         (mmx_ior<mode>3): Likewise.
1348         (mmx_xor<mode>3): Likewise.
1349
1350         * config/i386/sse.md (<code><mode>3): New.
1351         (*<code><mode>3): Likewise.
1352         (*<code><mode>3): Likewise.
1353         (<code><mode>3): Likewise.
1354         (*sse_<code><mode>3): Likewise.
1355         (*sse2_<code><mode>3): Likewise.
1356         (<code>tf3): Likewise.
1357         (*<code>tf3): Likewise.
1358         (and<mode>3): Likewise.
1359         (*and<mode>3): Likewise.
1360         (ior<mode>3): Removed.
1361         (*ior<mode>3): Likewise.
1362         (xor<mode>3): Likewise.
1363         (*xor<mode>3): Likewise.
1364         (*and<mode>3): Likewise.
1365         (*ior<mode>3): Likewise.
1366         (*xor<mode>3): Likewise.
1367         (and<mode>3): Likewise.
1368         (*sse_and<mode>3): Likewise.
1369         (*sse2_and<mode>3): Likewise.
1370         (andtf3): Likewise.
1371         (*andtf3): Likewise.
1372         (ior<mode>3): Likewise.
1373         (*sse_ior<mode>3): Likewise.
1374         (*sse2_ior<mode>3): Likewise.
1375         (iortf3): Likewise.
1376         (*iortf3): Likewise.
1377         (xor<mode>3): Likewise.
1378         (*sse_xor<mode>3): Likewise.
1379         (*sse2_xor<mode>3): Likewise.
1380         (xortf3): Likewise.
1381         (*xortf3): Likewise.
1382
1383 2008-04-02  Richard Guenther  <rguenther@suse.de>
1384
1385         PR tree-optimization/14495
1386         PR tree-optimization/34793
1387         * tree-vrp.c (struct switch_update): New structure.
1388         (to_remove_edges, to_update_switch_stmts): New VECs.
1389         (simplify_switch_using_ranges): New function.  Remove not taken
1390         case labels and edges.
1391         (simplify_stmt_using_ranges): Call it.
1392         (identify_jump_threads): Mark edges we have queued for removal
1393         so we don't thread them.
1394         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
1395         case label vector.
1396         * tree-cfg.c (group_case_labels): Deal with missing default label.
1397         (tree_verify_flow_info): Allow missing default label.
1398         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
1399         (emit_case_nodes): Likewise.
1400         (expand_case): Do not rely on the default label to be present.
1401         * expr.c (try_casesi): Deal with NULL default_label.
1402         (do_tablejump): Likewise.
1403
1404 2008-04-02  Richard Guenther  <rguenther@suse.de>
1405
1406         PR tree-optimization/14495
1407         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
1408         SWITCH_EXPR here ...
1409         (vrp_visit_switch_stmt): ... but here (new function).
1410         (find_case_label_index): New helper function.
1411         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
1412
1413 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1414
1415         * fwprop.c: Fix ISO-C99ism.
1416
1417 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1418
1419         PR bootstrap/35752
1420         * Makefile.in (objdir): Set it here.
1421         * configure.ac: Not here.  Find dynamic linker characteristics.
1422         * exec-tool.in: Use them.
1423         * aclocal.m4: Regenerate.
1424         * configure: Regenerate.
1425
1426 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1427
1428         * expr.c (expand_var): Delete it.
1429         * expr.h (expand_var): Delete prototype.
1430         * function.c (expand_function_start): Use expand_decl instead.
1431         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
1432         langhook.
1433
1434 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
1435
1436         PR rtl-optimization/35542
1437         * fwprop.c (forward_propagate_and_simplify): Replace
1438         loc_reg_mentioned_in_p with reg_mentioned_p.
1439
1440 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1441
1442         PR rtl-optimization/35281
1443         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
1444         (propagate_rtx_1): Handle PR_HANDLE_MEM.
1445         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
1446         (varying_mem_p): Move above propagate_rtx.
1447         (all_uses_available_at): Do not check MEMs.
1448
1449 2008-04-02  Rafael Espindola  <espindola@google.com>
1450
1451         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
1452         (register_edge_assert_for_2): Split the cond argument.
1453         (register_edge_assert_for_1): Adjust for the change in
1454         register_edge_assert_for_2.
1455         (register_edge_assert_for): Split the cond argument.
1456         (find_switch_asserts): Adjust for the change in
1457         register_edge_assert_for.
1458
1459 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
1460
1461         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1462         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
1463         offsets for 64-bit mingw.
1464         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
1465         abi for x86_64-pc-mingw.
1466
1467 2008-04-02  Richard Guenther  <rguenther@suse.de>
1468
1469         * tree-vrp.c (extract_range_from_assert): Make sure to not
1470         produce range min/max with TREE_OVERFOW set.
1471         If merging a anti-range and a range keep the anti-range if
1472         the range covers all values of the type.
1473         (register_edge_assert_for_2): Only allow sign-changing
1474         conversions in detecting canonical range checks.  Also
1475         register an assert for the unsigned name if useful.
1476
1477         PR tree-optimization/35787
1478         * tree-vrp.c (vrp_val_max): New function.
1479         (vrp_val_min): Likewise.
1480         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
1481         (vrp_val_is_min): Likewise.
1482         (supports_overflow_infinity): Use vrp_val_{min,max}.
1483         (negative_overflow_infinity): Likewise.
1484         (positive_overflow_infinity): Likewise.
1485         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
1486         (is_positive_overflow_infinity): Likewise.
1487         (is_overflow_infinity): Likewise.
1488         (avoid_overflow_infinity): Use vrp_val_{min,max} and
1489         vrp_val_is_{min,max}.
1490         (set_and_canonicalize_value_range): Canonicalize anti-ranges
1491         to ranges if possible.  Avoid empty ranges.
1492
1493 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1494
1495         PR middle-end/35705
1496         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
1497         the expression is a function address.
1498
1499 2008-04-01  George Helffrich  <george@gcc.gnu.org>
1500
1501         PR fortran/PR35154, fortran/PR23057
1502         * fortran/trans-common.c (create_common):  Add decl to function
1503         chain to preserve identifier scope in debug output.
1504
1505         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
1506         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
1507         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
1508         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
1509         in common.
1510         (dbxout_syms): Check for COMMON-based symbol and wrap in
1511         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
1512         in bracket for efficiency.
1513
1514         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
1515         using DW_TAG_common_block + member offset.
1516         (add_pubname_string): New function.
1517         (dw_expand_expr): New function to find block name and offset for
1518         COMMON var.
1519         (common_check): New function to check whether symbol in Fortran COMMON.
1520         (gen_variable_die): If COMMON, use DW_TAG_common_block.
1521
1522         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
1523         use of common is unchanged.
1524
1525         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
1526         with all combinations of debug options available on target.
1527         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
1528         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
1529         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
1530         .stabs functionality.
1531         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
1532         DWARF functionality.
1533
1534 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
1535
1536         PR c/35436
1537         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
1538
1539 2008-04-02  Ben Elliston  <bje@au.ibm.com>
1540
1541         * config/v850/v850.md (casesi): Remove if (0) code.
1542         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1543         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1544
1545 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
1546
1547         * config/i386/i386.md (rex64suffix): New mode attribute.
1548         (floathi<mode>2): Disable expander for SSE math.
1549         (*floathi<mode>2_1): New insn insn_and_split pattern.
1550         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
1551         corresponding post-reload splitters.
1552         (*floathi<mode>2_i387): New macroized insn pattern.
1553         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
1554         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
1555         insn_and_split pattern.
1556         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
1557         New macroized instruction patterns and corresponding post-reload
1558         splitters.
1559         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
1560         and corresponding post-reload splitters.
1561         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
1562         New macroized instruction patterns.
1563         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
1564         macroized instruction patterns and corresponding post-reload splitters.
1565         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
1566         corresponding post-reload splitters.
1567         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
1568         New macroized instruction patterns.
1569         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
1570         corresponding post-reload splitters.
1571         (*floatsi<mode>2_i387): New macroized instruction patterns.
1572
1573 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1574
1575         * config/i386/i386.md (smaxmin): New.
1576         (umaxmin): Likewise.
1577         (maxminiprefix): Likewise.
1578         (maxminfprefix): Likewise.
1579         (<code><mode>3): Likewise.
1580         (smin<mode>3): Removed.
1581         (smax<mode>3): Likewise.
1582
1583         * config/i386/mmx.md (mmx_<code>v2sf3): New.
1584         (mmx_<code>v4hi3): Likewise.
1585         (mmx_<code>v8qi3): Likewise.
1586         (mmx_smaxv2sf3): Removed.
1587         (mmx_sminv2sf3): Likewise.
1588         (mmx_umaxv8qi3): Likewise.
1589         (mmx_smaxv4hi3): Likewise.
1590         (mmx_uminv8qi3): Likewise.
1591         (mmx_sminv4hi3): Likewise.
1592
1593         * config/i386/sse.md (<addsub><mode>3): New.
1594         (*<addsub><mode>3): Likewise.
1595         (<sse>_vm<addsub><mode>3): Likewise.
1596         (<maxmin><mode>3): Likewise.
1597         (*<maxmin><mode>3_finite): Likewise.
1598         (*<maxmin><mode>3): Likewise.
1599         (<sse>_vm<maxmin><mode>3): Likewise.
1600         (sse3_h<addsub>v4sf3): Likewise.
1601         (sse3_h<addsub>v2df3): Likewise.
1602         (<maxmin>v16qi3): Likewise.
1603         (*<maxmin>v16qi3): Likewise.
1604         (<maxmin>v8hi3): Likewise.
1605         (*<maxmin>v8hi3): Likewise.
1606         (*sse4_1_<maxmin><mode>3): Likewise.
1607         (*sse4_1_<maxmin><mode>3): Likewise.
1608         (add<mode>3): Removed.
1609         (*add<mode>3): Likewise.
1610         (<sse>_vmadd<mode>3): Likewise.
1611         (sub<mode>3): Likewise.
1612         (*sub<mode>3): Likewise.
1613         (<sse>_vmsub<mode>3): Likewise.
1614         (smin<mode>3): Likewise.
1615         (*smin<mode>3_finite): Likewise.
1616         (*smin<mode>3): Likewise.
1617         (<sse>_vmsmin<mode>3): Likewise.
1618         (smax<mode>3): Likewise.
1619         (*smax<mode>3_finite): Likewise.
1620         (*smax<mode>3): Likewise.
1621         (<sse>_vmsmax<mode>3): Likewise.
1622         (sse3_haddv4sf3): Likewise.
1623         (sse3_haddv2df3): Likewise.
1624         (sse3_hsubv4sf3): Likewise.
1625         (sse3_hsubv2df3): Likewise.
1626         (umaxv16qi3): Likewise.
1627         (*umaxv16qi3): Likewise.
1628         (smaxv8hi3): Likewise.
1629         (*smaxv8hi3): Likewise.
1630         (*sse4_1_smax<mode>3): Likewise.
1631         (*sse4_1_umax<mode>3): Likewise.
1632         (uminv16qi3): Likewise.
1633         (*uminv16qi3): Likewise.
1634         (sminv8hi3): Likewise.
1635         (*sminv8hi3): Likewise.
1636         (*sse4_1_smin<mode>3): Likewise.
1637         (*sse4_1_umin<mode>3): Likewise.
1638
1639 2008-04-01  Rafael Espindola  <espindola@google.com>
1640
1641         * tree-cfg.c (verify_expr): remove in_phi.
1642         (verify_stmt): Don't call walk_tree with verify_expr. Use
1643         is_gimple_min_invariant instead of is_gimple_val.
1644
1645 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1646
1647         * doc/include/gpl_v3.texi: Update for manpage generation.
1648         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1649         gpl.texi.
1650         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1651         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1652         gpl_v3.texi instead of gpl.texi.
1653         (gpl.pod): New.
1654
1655 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1656
1657         PR pch/13675
1658         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1659
1660 2008-04-01  Rafael Espindola  <espindola@google.com>
1661
1662         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1663         (extract_code_and_val_from_cond): Use
1664         extract_code_and_val_from_cond_with_ops.
1665
1666 2008-04-01  Jan Hubicka  <jh@suse.cz>
1667
1668         * function.c (free_after_compilation): Free epilogue_delay_list.
1669         (prepare_function_start): Assert that previous compilation was freed.
1670
1671 2008-04-01  Jan Hubicka  <jh@suse.cz>
1672             Jim Wilson  <wilson@tuliptree.org>
1673             Andreas Tobler <andreast@gcc.gnu.org>
1674
1675         PR middle-end/35781
1676         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1677         rtl.emit instead cfun->emit.
1678         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1679         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1680
1681 2008-04-01  Ben Elliston  <bje@au.ibm.com>
1682
1683         * doc/c-tree.texi (Function Basics): Fix grammatical error.
1684
1685 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
1686
1687         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1688         New options
1689         (fprofile-use): Add var flag_profile_use
1690         * coverage.c (coverage_begin_output): Do not open a gcno file for
1691         output only if -ftest-coverage is set.
1692         Do not add getpwd() to gcda file path.
1693         (build_gcov_info): Check the new flag
1694         flag_profile_datafile_relative_path.
1695         (coverage_init): Use profile_data_prefix.
1696         Read profile counter only if flag_profile_use is set.
1697         * opts.c (common_handle_option): New option fprofile-use=,
1698         fprofile-dir=, fprofile-generate=.
1699         * toplev.c (profile_data_prefix): New variable definition.
1700         * toplev.h (profile_data_prefix): New declaration.
1701         * doc/invoke.tex (Option Summary, Optimization Options):
1702         Add new options.
1703
1704 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
1705
1706         * varasm.c (output_constant_pool_1): In LABEL_REF check,
1707         use tmp consistently.
1708
1709         PR target/35695
1710         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
1711         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1712         UNSPEC_FR_RECIP_APPROX_RES.
1713         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
1714
1715 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
1716
1717         PR c/35750
1718         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
1719
1720 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1721
1722         PR middle-end/30186
1723         * fold-const.c (fold_indirect_ref_1): Support accessing non first
1724         element of the vector via a pointer.
1725
1726 2008-03-31  Ian Lance Taylor  <iant@google.com>
1727
1728         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
1729
1730 2008-03-31  Jan Hubicka  <jh@suse.cz>
1731
1732         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1733         get_arg_pointer_save_area.
1734         * expr.c (init_expr): Just clear out rtl.expr.
1735         * function.c (free_after_compilation): Clear out whole RTL structure.
1736         (get_func_frame_size): Merge into ...
1737         (get_frame_size): ... this one.
1738         (assign_stack_local_1): Merge into ...
1739         (assign_stack_local): ... this one.
1740         (expand_function_end): Update call of get_arg_pointer_save_area.
1741         (get_art_pointer_save_area): Remove cfun argument.
1742         * function.h (emit_status): regno_pointer_align does not need length
1743         attribute. Move x_regno_reg_rtx to ...
1744         (regno_reg_rtx): ... new global array.
1745         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
1746         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
1747         apply_args_value, forced_labels, stack_pointer_delta):
1748         Update accestors.
1749         (struct varasm_status): Move here from varasm.c
1750         (struct rtl_data): New. Move here some fields from struct function.
1751         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1752         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1753         used_temp_slots avail_temp_slots, temp_slot_level,
1754         nonlocal_goto_handler_labels): Update accesstors.
1755         (rtl): New global variable.
1756         (struct function): Move some fileds to rtl_data.
1757         (get_arg_pointer_save_area): Update prototype.
1758         * emit-rtl.c (rtl): Declare.
1759         (regno_reg_rtx): Declare.
1760         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1761         Update.
1762         (gen_reg_rtx): Update.
1763         (init_virtual_regs): Do not tate emit_status argument.
1764         (init_emit): Do not allocate emit.
1765         * varasm.c (varasm_statuc): Move to function.h.
1766         (n_deferred_constatns): Update accestor.
1767         (init_varasm_status): Do not allocate varasm_status.
1768         (force_const_mem, get_pool_size, output_constant_pool): Update.
1769         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1770         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1771
1772 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
1773
1774         PR rtl-optimization/35729
1775         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
1776         references.
1777
1778 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR target/32000
1781         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
1782         load/store if memory is unaligned.
1783         (*movti_rex64): Likewise.
1784
1785         * config/i386/predicates.md (misaligned_operand): New.
1786
1787 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
1788
1789         PR tree-opt/35431
1790         * tree-ssa-phiopt.c (conditional_replacement): Return early for
1791         complex types.
1792
1793 2008-03-31  Jan Beulich  <jbeulich@novell.com>
1794
1795         * config/ia64/constraints.md: Add 'j' constraint.
1796         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
1797         (movdi_internal): Likewise.
1798
1799 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
1800
1801         PR c/35748
1802         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
1803
1804 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1805
1806         PR target/35757
1807         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
1808         proper error message for the third argument on blendpd and
1809         blendps.
1810
1811         * config/i386/sse.md (blendbits): New.
1812         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
1813
1814 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1815
1816         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
1817
1818 2008-03-30  Richard Guenther  <rguenther@suse.de>
1819
1820         PR middle-end/31023
1821         * fold-const.c (fold_sign_changed_comparison): Do leave
1822         conversions to base-types alone.
1823
1824 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1825
1826         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
1827         the link register if one altivec register is be saved.
1828
1829 2008-03-30  Ben Elliston  <bje@au.ibm.com>
1830
1831         * final.c (final_scan_insn): Remove if (0) code.
1832
1833 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
1834
1835         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
1836
1837 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1838
1839         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
1840         of V4SFmode to ix86_binary_operator_ok.
1841
1842 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
1843
1844         * config/i386/i386.c (override_options): Initialize
1845         ix86_veclib_handler to ix86_veclibabi_svml when
1846         -mveclibabi=svml is used.
1847         (ix86_veclibabi_svml): New function for SVML ABI style
1848         vectorization support.
1849         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
1850
1851 2008-03-28  Rafael Espindola  <espindola@google.com>
1852
1853         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
1854         (tree_binary_nonnegative_warnv_p): Make it public.
1855         (tree_single_nonnegative_warnv_p): Make it public.
1856         (tree_invalid_nonnegative_warnv_p): Make it public.
1857         (tree_unary_nonzero_warnv_p): Make it public.
1858         (tree_binary_nonzero_warnv_p): Make it public
1859         (tree_single_nonzero_warnv_p): Make it public.
1860         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
1861         (extract_range_from_binary_expr): Split the expr argument.
1862         (extract_range_from_unary_expr): Split the expr argument.
1863         (extract_range_from_comparison): Split the expr argument.
1864         (extract_range_from_expr): Use the new aux functions.
1865         (vrp_evaluate_conditional_warnv): Use
1866         vrp_evaluate_conditional_warnv_with_ops.
1867         * tree.h (tree_unary_nonzero_warnv_p): Declare.
1868         (tree_binary_nonzero_warnv_p): Declare.
1869         (tree_single_nonzero_warnv_p): Declare.
1870         (tree_expr_nonzero_warnv_p): Declare.
1871         (tree_unary_nonnegative_warnv_p): Declare.
1872         (tree_binary_nonnegative_warnv_p): Declare.
1873         (tree_single_nonnegative_warnv_p): Declare.
1874         (tree_invalid_nonnegative_warnv_p): Declare.
1875
1876 2008-03-28  Richard Guenther  <rguenther@suse.de>
1877
1878         PR tree-optimization/30317
1879         PR tree-optimization/30911
1880         PR tree-optimization/34793
1881         * tree-vrp.c (set_and_canonicalize_value_range): New function.
1882         (struct assert_locus_d): New member EXPR.
1883         (register_new_assert_for): Add EXPR parameter to support
1884         ASSERT_EXPR <name, expr OP limit>.
1885         (register_edge_assert_for_1): Adjust callers.
1886         (find_assert_locations): Likewise.
1887         (process_assert_insertions_for): Build condition from expression.
1888         (extract_range_from_assert): Handle ASSERT_EXPRs
1889         of the form ASSERT_EXPR <name, expr OP limit>.
1890         (register_edge_assert_for_2): New helper registering
1891         asserts for comparisons.  Recognize range tests of the form
1892         (unsigned)i - CST1 OP CST2.
1893         (register_edge_assert_for_1): Use it.
1894         (register_edge_assert_for): Likewise.
1895         (needs_overflow_infinity): Integer sub-types
1896         do not need overflow infinities.
1897         (vrp_val_is_max): The extreme values of integer sub-types
1898         are those of the base type.
1899         (vrp_val_is_min): Likewise.
1900         * tree.def (ASSERT_EXPR): Document extra allowed conditional
1901         expressions.
1902
1903 2008-03-28  Nick Clifton  <nickc@redhat.com>
1904
1905         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1906         Return GENERAL_REGS for stack adjustment reloads.
1907
1908 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1909
1910         PR target/31334
1911         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
1912         const_vector when all the vectors are constant.
1913
1914 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
1915
1916         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
1917         comparisons.
1918         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
1919         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
1920         (scc_sf): New.
1921         (s<code>_sf): Use new scc_sf attribute for opcode names.
1922
1923 2008-03-27  Tom Tromey  <tromey@redhat.com>
1924
1925         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
1926         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
1927         config/spu/t-spu-elf, config/i386/t-interix,
1928         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
1929         config/i386/x-darwin, config/i386/x-mingw32,
1930         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
1931         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
1932         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
1933         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
1934         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
1935         config/rs6000/x-darwin, config/rs6000/t-rs6000,
1936         config/score/t-score-elf, config/arm/t-strongarm-pe,
1937         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
1938         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
1939         Revert automatic dependency patch.
1940
1941 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1942
1943         PR target/35657
1944         * config/i386/i386.c (ix86_function_arg_boundary): Align
1945         decimal floating point to its natural boundary.
1946
1947 2008-03-27  Richard Guenther  <rguenther@suse.de>
1948
1949         PR middle-end/35716
1950         * fold-const.c (fold_comparison): Restrict distinct decl
1951         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
1952         solely rely on operand_equal_p.
1953
1954 2008-03-27  Richard Guenther  <rguenther@suse.de>
1955
1956         PR c/32511
1957         * c-common.c (handle_weak_attribute): Reject combination of
1958         weak and inline.
1959
1960 2008-03-27  Richard Guenther  <rguenther@suse.de>
1961
1962         PR tree-optimization/32810
1963         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
1964         conversions from DECL_INITIAL.
1965         (fold_const_aggregate_ref): Likewise from constructor elements.
1966
1967 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
1968
1969         * tree-affine.h (aff_combination_expand): Declare.
1970         (get_inner_reference_aff): Likewise.
1971         * tree-affine.c (aff_combination_expand): Split out from
1972         tree_to_aff_combination_expand.
1973         (get_inner_reference_aff): New function.
1974         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
1975         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
1976         (struct lim_aux_data): sm_done field removed.
1977         (mem_ref_loc_p, mem_ref_locs_p): New types.
1978         (struct mem_ref): Added id, stored, accesses_in_loop,
1979         indep_loop, dep_loop, indep_ref, dep_ref fields.
1980         Removed is_stored, locs and next fields.
1981         (memory_accesses): New variable.
1982         (movement_possibility): Do not allow moving statements
1983         that store to memory.
1984         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
1985         New functions.
1986         (determine_max_movement): For statements with memory references,
1987         find the outermost loop in that the reference is independent.
1988         (move_computations_stmt): Mark the virtual operands for renaming.
1989         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
1990         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
1991         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
1992         add_vop_ref_mapping, create_vop_ref_mapping_loop,
1993         create_vop_ref_mapping, analyze_memory_references,
1994         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
1995         get_all_locs_in_loop, ref_always_accessed_p,
1996         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
1997         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
1998         store_motion_loop, store_motion): New functions.
1999         (struct vop_to_refs_elt): New type.
2000         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2001         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2002         (schedule_sm): Replaced by...
2003         (execute_sm): ... this.
2004         (determine_lsm_ref, hoist_memory_references,
2005         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2006         find_more_ref_vops, free_mem_ref, free_mem_refs,
2007         determine_lsm_loop, determine_lsm): Removed.
2008         (tree_ssa_lim_finalize): Free data structures used by store motion.
2009         (tree_ssa_lim): Call analyze_memory_references.  Use
2010         store_motion instead of determine_lsm.
2011
2012 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2013
2014         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2015         rename tmake_file to m68hc11/t-m68hc11.
2016         (mcore): Set inhibit_libc to true.
2017         * config.host (alpha*-dec-*vms*): Set extra_programs.
2018         (interix3*): Don't use host_xmake_file.
2019         * configure.ac: Let config.gcc override inhibit_libc.
2020         * configure: Regenerate.
2021
2022         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2023         * config/t-openbsd-thread: Remove commented out lines.
2024         
2025         * config/x-interix: Remove.
2026
2027         * config/m68hc11/t-m68hc11-gas: Rename to...
2028         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2029
2030         * config/mcore/t-mcore: Remove T_CFLAGS.
2031         * config/mcore/t-mcore-pe: Likewise.
2032
2033 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2034
2035         * configure.ac: Replace custom __GNU_SOURCE test with
2036         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2037         * aclocal.m4: Regenerate.
2038         * configure: Regenerate.
2039         * config.in: Regenerate.
2040
2041 2008-03-27  Richard Guenther  <rguenther@suse.de>
2042
2043         * fold-const.c (target.h): Include.
2044         (fold_comparison): Fold comparison of addresses of decls
2045         that bind locally or of constants.  Consolidate address folding code.
2046         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2047         results from fold_binary_to_constant.
2048         (compare_values_warnv): Likewise.
2049
2050 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2051
2052         PR middle-end/35429
2053         * fold-const.c (fold_truthop): Check for integeral types when folding
2054         a == 0 && b == 0 and a != 0 || b != 0 .
2055
2056 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2057
2058         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2059
2060 2008-03-26  Andreas Schwab  <schwab@suse.de>
2061
2062         * doc/invoke.texi: Fix use of @item vs. @itemx.
2063
2064 2008-03-26  Tom Tromey  <tromey@redhat.com>
2065
2066         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2067         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2068         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2069         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2070         build/genconstants.o, build/genemit.o, build/genextract.o,
2071         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2072         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2073         options.h.
2074
2075 2008-03-26  Richard Guenther  <rguenther@suse.de>
2076
2077         Revert
2078         2008-03-26  Richard Guenther  <rguenther@suse.de>
2079
2080         * fold-const.c (target.h): Include.
2081         (fold_comparison): Fold comparison of addresses of two decls
2082         that bind locally.  Consolidate address folding code.
2083
2084 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2085
2086         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2087         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2088         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2089         dconstsqrt2, dconstthird, dconste and/or dconst10.
2090         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2091         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2092         dconstsqrt2, dconste): Delete.
2093         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2094         Constify variable.
2095         * real.c (get_real_const): New.
2096         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2097         dconstsqrt2, dconste): Delete.
2098         (real_value_const, get_real_const): New.
2099
2100 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2101
2102         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2103
2104         * config/i386/i386.c (ix86_function_arg_boundary): Check
2105         BIGGEST_ALIGNMENT instead of 128.
2106         (setup_incoming_varargs_64): Likewise.
2107
2108 2008-03-26  Tom Tromey  <tromey@redhat.com>
2109
2110         * Makefile.in (DEPFILES): Add missing '/'.
2111
2112 2008-03-26  Richard Guenther  <rguenther@suse.de>
2113
2114         * fold-const.c (target.h): Include.
2115         (fold_comparison): Fold comparison of addresses of two decls
2116         that bind locally.  Consolidate address folding code.
2117
2118 2008-03-26  Nick Clifton  <nickc@redhat.com>
2119
2120         PR target/31232
2121         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2122         not allow INT+INT as a legitimate addressing mode.
2123
2124 2008-03-26  Richard Guenther  <rguenther@suse.de>
2125
2126         * tree-flow.h (widen_bitfield): Remove declaration.
2127         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2128         (widen_bitfield): Remove function.
2129         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2130         code.
2131
2132 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2133
2134         PR target/31558
2135         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2136         error_mark_node's.
2137
2138 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2139
2140         PR rtl-optimization/35232
2141         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2142         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2143         reg_reloaded_call_part_clobbered here.
2144         (reload_regs_reach_end_p): New function.
2145         (reload_reg_rtx_for_input): New variable.
2146         (reload_reg_rtx_for_output): Likewise.
2147         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2148         when reassigning a pseudo register.  Load reloadreg from 
2149         reload_reg_rtx_for_input, moving the mode and register
2150         calculation to...
2151         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2152         instead of the original when deciding whether an input reload
2153         would be a no-op or whether an output reload can be deleted.
2154         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2155         when setting up new_spill_reg_store.  Load it from
2156         reload_reg_rtx_for_output, moving the mode and register
2157         calculation to...
2158         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2159         instead of the original when deciding whether an output reload
2160         would be a no-op.  Do the same when modifying insn notes.
2161         Use rtx_equal_p instead of == to compare the registers.
2162         (inherit_piecemeal_p): Take a mode and two register numbers
2163         as argument.
2164         (emit_reload_insns): Clear new_spill_reg_store for every hard
2165         register in the reload register.  Remove spill registers
2166         from reg_reloaded_valid before considering whether to record
2167         inheritance information for them.  Use reload_reg_rtx_for_output
2168         instead of reg_rtx when recording output reloads.  Use
2169         reload_reg_rtx_for_input instead of reg_rtx when recording
2170         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2171         at the same time as setting reg_reloaded_valid.
2172         (delete_output_reload): Add a new_reload_reg parameter and use it
2173         instead of rld[j].reg_rtx.
2174         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2175         calls accordingly.
2176
2177 2008-03-25  Tom Tromey  <tromey@redhat.com>
2178
2179         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2180         (build/genattr.o): Likewise.
2181         (build/genattrtab.o): Likewise.
2182         (build/gencodes.o): Likewise.
2183         (build/genconfig.o): Likewise.
2184         (build/genconstants.o): Likewise.
2185         (build/genemit.o): Likewise.
2186         (build/genextract.o): Likewise.
2187         (build/genflags.o): Likewise.
2188
2189 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2190         
2191         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2192         instead of size_int for integer types.
2193         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2194         to match type of MINUS_EXPR.
2195         
2196 2008-03-25  Tom Tromey  <tromey@redhat.com>
2197
2198         * configure: Rebuilt.
2199         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2200         Makefile.
2201
2202 2008-03-25  Tom Tromey  <tromey@redhat.com>
2203
2204         * config/x-solaris (host-solaris.o): Update.
2205         * config/x-linux (host-linux.o): Update.
2206         * config/x-hpux (host-hpux.o): Update.
2207         * config/x-darwin (host-darwin.o): Update.
2208         * config/v850/t-v850e (v850-c.o): Update.
2209         * config/v850/t-v850 (v850-c.o): Update.
2210         * config/t-vxworks (vxworks.o): Update.
2211         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2212         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2213         * config/spu/t-spu-elf (spu-c.o): Update.
2214         (spu.o): Remove.
2215         * config/sh/t-symbian (sh-c.o): Update.
2216         (symbian.o): Update.
2217         * config/sh/t-sh (sh-c.o): Update.
2218         * config/score/t-score-elf (score7.o, score3.o): Update.
2219         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2220         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2221         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2222         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2223         (rs6000.o): Remove.
2224         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2225         * config/m32c/t-m32c (m32c-pragma.o): Update.
2226         * config/ia64/t-ia64 (ia64-c.o): Update.
2227         * config/i386/x-mingw32 (host-mingw32.o): Update.
2228         * config/i386/x-i386 (driver-i386.o): Update.
2229         * config/i386/x-darwin (host-i386-darwin.o): Update.
2230         * config/i386/x-cygwin (host-cygwin.o): Update.
2231         * config/i386/t-nwld (nwld.o): Update.
2232         * config/i386/t-netware (netware.o): Update.
2233         * config/i386/t-interix (winnt.o): Update.
2234         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2235         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2236         msformat-c.o): Update.
2237         * config/bfin/t-bfin-linux (generated_files): Add
2238         linux-sysroot-suffix.h.
2239         * config/arm/t-wince-pe (pe.o): Update.
2240         * config/arm/t-strongarm-pe (pe.o): Update.
2241         * config/arm/t-pe (pe.o): Update.
2242         * config/arm/t-arm (arm-c.o): Update.
2243         * doc/install.texi (Prerequisites): Require make 3.80.
2244         * Makefile.in: Remove .o targets.
2245         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2246         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2247         (simple_generated_h, simple_generated_c): Move earlier.
2248         (generated_files): New variable.
2249         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2250         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2251         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2252         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2253         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2254         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2255         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2256         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2257         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2258         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2259         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2260         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2261         (.c.o): Remove.
2262         (COMPILE.base, COMPILE): New variables.
2263         (%.o): New pattern rule.
2264         (ALL_HOST_OBJS): New variable.
2265         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2266         (dummy-checksum.o, cc1-checksum.o): Remove.
2267         (DRIVER_SHLIB): New variable.
2268         (DRIVER_DEFINES): Use it.
2269         (gencondmd.c): Move out of build/.
2270         (s-conditions): Update.
2271         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2272         (ALL_BUILD_OBJS): Likewise.
2273         (build/%.o): Use BUILDCOMPILE.
2274         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2275         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2276         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2277         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2278         build/genconfig.o, build/genconstants.o, build/genemit.o,
2279         build/genextract.o, build/genflags.o, build/genmddeps.o,
2280         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2281         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2282         build/gen-protos.o, build/scan.o, build/fix-header.o,
2283         build/scan-decls.o): Simplify.
2284         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2285         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2286         prefix.o, toplev.o): Reduce to variable setting.
2287         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2288         ($(out_object_file), gcc-options.o): New targets.
2289         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2290         * configure: Rebuilt.
2291         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2292         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2293
2294 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2295
2296         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2297         complain when we hit an error, return ERROR_MARK_NODE.
2298
2299 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2300
2301         * config/sh/constraints.md (Pso, Psz): New constraints.
2302         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2303         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2304
2305 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2306
2307         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2308         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2309
2310 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2311
2312         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2313         (prefetch_sh2a): New.   
2314
2315 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2316             Naveen.H.S  <naveen.hs@kpitcummins.com>
2317
2318         * config/sh/constraints.md (I28): New constraint.
2319         * config/sh/sh.c (broken_move): Add support for movi20s.
2320         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2321
2322 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2323             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2324             Naveen.H.S  <naveen.hs@kpitcummins.com>
2325
2326         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2327         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2328         (print_operand): Handle resbank in %@ operand code.
2329         (sh_encode_section_info): New.
2330         (push_regs): Add conditions for resbank.
2331         (sh_expand_epilogue): Likewise.
2332         (sh_insert_attributes): Likewise.
2333         (sh_attribute_table): Likewise.
2334         (sh_handle_resbank_handler_attribute): New.
2335         (sh2a_handle_function_vector_handler_attribute): New.
2336         (sh2a_is_function_vector_call): New.
2337         (sh2a_get_function_vector_number): New.
2338         (sh2a_function_vector_p): New.
2339         (sh_cfun_resbank_handler_p): New.
2340         * config/sh/sh.md (calli): Emit jsr/n if possible.
2341         (calli_tbr_rel): New.
2342         (calli_pcrel): Emit jsr/n if possible.
2343         (return_i): Emit rts/n if possible.
2344         (call_valuei_tbr_rel): New.
2345         (call_valuei_pcrel): Add condition for SH2A target.
2346         (call_value): Likewise.
2347         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2348         (sh2a_get_function_vector_number): Likewise.
2349         (sh2a_is_function_vector_call): Likewise.
2350         * doc/extend.texi: Document TBR relative addressing of SH2A.
2351         (resbank): Add description for SH2A.
2352
2353 2008-03-24  Richard Guenther  <rguenther@suse.de>
2354
2355         PR c/22371
2356         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2357         pointer assignments change conversions according to middle-end rules.
2358         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2359         * configure.ac: Include type checking in yes.
2360         * configure: Regenerate.
2361
2362 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2363
2364         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2365         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2366         
2367 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2368
2369         * gthr-vxworks.h (UNUSED): Define.
2370
2371 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2372
2373         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2374
2375 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2376
2377         * doc/extend.texi (Function Attributes): Add missing comma in the
2378         example of the "alloc_size" attribute.
2379         
2380 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2381
2382         Revert:
2383         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2384
2385         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2386         32bit host.
2387
2388         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2389
2390         PR target/35496
2391         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2392         of the underlying type of a MS bitfield layout to the natural
2393         alignment of the type.
2394
2395         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2396
2397         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2398         to their natural alignment to avoid store forwarding stalls.
2399
2400 2008-03-22  Richard Guenther  <rguenther@suse.de>
2401
2402         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2403         For PHI nodes verify the address is invariant.
2404         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
2405         (get_symbol_constant_value): Use is_gimple_min_invariant.
2406         (maybe_fold_stmt_indirect): Likewise.
2407
2408 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2409
2410         PR rtl-optimization/33927
2411         * Makefile.in (dse.o): Depend on $(TM_P_H).
2412         * expr.h (extract_low_bits): Declare.
2413         * expmed.c (extract_low_bits): New function.
2414         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
2415         * dse.c: Include tm_p.h.
2416         (find_shift_sequence): Remove the read_reg argument and return the
2417         read value.  Emit the instructions instead of returning them.
2418         Iterate on new_mode rather than calculating it each time.
2419         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
2420         source to NEW_MODE and extract_low_bits to convert the shifted
2421         value to READ_MODE.
2422         (replace_read): Allow the load and store to have different mode
2423         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
2424         or extraction instructions before trying the replacement.  Update
2425         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
2426
2427 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2428
2429         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2430         to their natural alignment to avoid store forwarding stalls.
2431
2432 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2433
2434         PR target/27946
2435         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
2436         encouraging but not allowing gprs for input;
2437         change the input constraint to !f#r.
2438         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
2439         gprs for output;
2440         change the output constraint to !f#r.
2441
2442 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
2443
2444         PR target/13958
2445         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
2446         corresponding post-reload splitters.
2447         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
2448         when x87 FP math is selected.
2449         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
2450         New function prototype.
2451         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
2452         unreachable function to ease macroization of insn patterns.
2453
2454 2008-03-21  Martin Jambor  <mjambor@suse.cz>
2455
2456         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
2457         reference dumps if ddr is NULL or dependence is unknown.
2458
2459 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2460
2461         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
2462         unsigned extension into account.
2463         (ATOMIC_COMPARE_AND_SWAP): Likewise.
2464         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
2465         Do computations on a scratch register.
2466
2467 2008-03-21  Richard Guenther  <rguenther@suse.de>
2468
2469         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2470         Use is_gimple_min_invariant instead of TREE_INVARIANT.
2471         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2472         * tree-ssa-dom.c (record_equality): Likewise.
2473         * tree-inline.c (copy_body_r): Likewise.
2474         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
2475         TREE_INVARIANT.
2476
2477 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2478
2479         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
2480         as 'delete_unused' argument.
2481
2482 2008-03-20  Richard Guenther  <rguenther@suse.de>
2483
2484         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2485         special casing of constant qualifiers.
2486         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
2487         care about them in general.
2488         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
2489         regardless of their type.
2490         (fold_stmt_r): Forcefully fold *& if we end up with that.
2491
2492 2008-03-20  Paul Brook  <paul@codesourcery.com>
2493
2494         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
2495         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
2496         linker flags.
2497         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
2498         definition.
2499         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
2500         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
2501
2502 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
2503
2504         * common.opt (Wmudflap): New option.
2505         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
2506         (mx_register_decls): Likewise.
2507         (mudflap_finish_file): Likewise.
2508         * doc/invoke.texi: Document -Wno-mudflap.
2509
2510 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
2511
2512         * c-format.c (replace_format_name_to_system_name): New.
2513         (cmp_attribs): New.
2514         (convert_format_name_to_system_name): New.
2515         (decode_format_attr): Add use of convert_format_name_to_system_name.
2516         (format_types_orig): Add gnu_ prefix to names.
2517         (check_format_info_main): Special treating of \0 escaped names for
2518         supporting multi-character format specifiers as I32, I64.
2519         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
2520         (gnu_target_overrides_format_attributes): New.
2521         * c-format.h: Add structure target_ovr_attr to hold
2522         system specific formatter names.
2523         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
2524         msformat-c.o file to c_target_objs and cxx_target_objs.
2525         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2526         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
2527         (TARGET_N_FORMAT_TYPES): New.
2528         * config/i386/msformat-c.c: New.
2529         * config/i386/t-cygming: Add build rule for msformat-c.o.
2530         * doc/extend.texi: Add new format names gnu_* and ms_* and
2531         further details.
2532         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2533
2534 2008-03-20  Ira Rosen  <irar@il.ibm.com>
2535
2536         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
2537         optimizations turned on under -O3.
2538         (ftree-vectorize): Add that the flag is turned on with -O3.
2539
2540 2008-03-20  Ben Elliston  <bje@au.ibm.com>
2541
2542         * regmove.c (try_auto_increment): Fix spelling error in comment.
2543         * final.c (final_scan_insn): Likewise.
2544
2545 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
2546
2547         PR target/14552
2548         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
2549         allocator preferences for "y" and "r" class registers.
2550         ("*mov<mode>_internal"): Ditto.
2551         ("*movv2sf_internal_rex64"): Ditto.
2552         ("*movv2sf_internal"): Ditto.
2553
2554 2008-03-19  Michael Matz  <matz@suse.de>
2555
2556         PR middle-end/35616
2557         * calls.c (expand_call): Check overlap of arguments with call
2558         address for sibcalls.
2559
2560 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2561
2562         PR target/35496
2563         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2564         of the underlying type of a MS bitfield layout to the natural
2565         alignment of the type.
2566
2567 2008-03-19  Jan Hubicka  <jh@suse.cz>
2568
2569         PR other/35094
2570         * toplev.c (decode_d_option): Handle all CPP flags.
2571         * tree-vrp.c: Update tree_pass descriptors.
2572         * regrename.c: Update tree_pass descriptors.
2573         * fwprop.c: Update tree_pass descriptors.
2574         * doc/invoke.texi: Remove documentation of dropped -d? flags.
2575         * tree-into-ssa.c: Update tree_pass descriptors.
2576         * tree-dump.c: Update tree_pass descriptors.
2577         * tree-complex.c: Update tree_pass descriptors.
2578         * tree-dump.h: Update tree_pass descriptors.
2579         * see.c: Update tree_pass descriptors.
2580         * cgraphbuild.c: Update tree_pass descriptors.
2581         * tracer.c: Update tree_pass descriptors.
2582         * tree-loop-distribution.c: Update tree_pass descriptors.
2583         * cgraph.c: Update tree_pass descriptors.
2584         * postreload-gcse.c: Update tree_pass descriptors.
2585         * postreload.c: Update tree_pass descriptors.
2586         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
2587         * tree-tailcall.c: Update tree_pass descriptors.
2588         * tree-pass.h (tree_opt_pass): Rename to ...
2589         (opt_pass) ... this one; add "type" field and remove letter field.
2590         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2591         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2592         all_lowering_passes): Update declaration.
2593         * ipa-cp.c: Update tree_pass descriptors.
2594         * final.c: Update tree_pass descriptors.
2595         * omp-low.c: Update tree_pass descriptors.
2596         * tree-ssa-dse.c: Update tree_pass descriptors.
2597         * ipa-reference.c: Update tree_pass descriptors.
2598         * tree-ssa-uncprop.c: Update tree_pass descriptors.
2599         * auto-inc-dec.c: Update tree_pass descriptors.
2600         * reorg.c: Update tree_pass descriptors.
2601         * cgraphunit.c: Update tree_pass descriptors.
2602         * tree-ssa-copyrename.c: Update tree_pass descriptors.
2603         * tree-ssa-ccp.c: Update tree_pass descriptors.
2604         * df-core.c: Update tree_pass descriptors.
2605         * mode-switching.c: Update tree_pass descriptors.
2606         * tree-nomudflap.c: Update tree_pass descriptors.
2607         * modulo-sched.c: Update tree_pass descriptors.
2608         * ipa-pure-const.c: Update tree_pass descriptors.
2609         * cse.c: Update tree_pass descriptors.
2610         * web.c: Update tree_pass descriptors.
2611         * tree-stdarg.c: Update tree_pass descriptors.
2612         * tree-ssa-math-opts.c: Update tree_pass descriptors.
2613         * tree-ssa-dom.c: Update tree_pass descriptors.
2614         * tree-nrv.c: Update tree_pass descriptors.
2615         * tree-ssa-alias.c: Update tree_pass descriptors.
2616         * loop-init.c: Update tree_pass descriptors.
2617         * gimple-low.c: Update tree_pass descriptors.
2618         * ipa-inline.c: Update tree_pass descriptors.
2619         * tree-ssa-sink.c: Update tree_pass descriptors.
2620         * global.c: Update tree_pass descriptors.
2621         * ifcvt.c: Update tree_pass descriptors.
2622         * jump.c: Update tree_pass descriptors.
2623         * predict.c: Update tree_pass descriptors.
2624         * tree-ssa-loop.c: Update tree_pass descriptors.
2625         * recog.c: Update tree_pass descriptors.
2626         * dse.c: Update tree_pass descriptors.
2627         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2628         * tree-eh.c: Update tree_pass descriptors.
2629         * regmove.c: Update tree_pass descriptors.
2630         * local-alloc.c
2631         * function.c: Update tree_pass descriptors.
2632         * tree-vectorizer.c: Update tree_pass descriptors.
2633         * gcse.c: Update tree_pass descriptors.
2634         * ipa-type-escape.c: Update tree_pass descriptors.
2635         * tree-if-conv.c: Update tree_pass descriptors.
2636         * init-regs.c: Update tree_pass descriptors.
2637         * ipa.c: Update tree_pass descriptors.
2638         * tree-ssa-phiopt.c: Update tree_pass descriptors.
2639         * rtl-factoring.c: Update tree_pass descriptors.
2640         * lower-subreg.c: Update tree_pass descriptors.
2641         * bt-load.c: Update tree_pass descriptors.
2642         * tree-dfa.c: Update tree_pass descriptors.
2643         * except.c: Update tree_pass descriptors.
2644         * emit-rtl.c: Update tree_pass descriptors.
2645         * cfgexpand.c: Update tree_pass descriptors.
2646         * tree-cfgcleanup.c: Update tree_pass descriptors.
2647         * cfgcleanup.c: Update tree_pass descriptors.
2648         * tree-ssa-pre.c: Update tree_pass descriptors.
2649         * tree-sra.c: Update tree_pass descriptors.
2650         * tree-mudflap.c: Update tree_pass descriptors.
2651         * tree-ssa-copy.c: Update tree_pass descriptors.
2652         * cfglayout.c: Update tree_pass descriptors.
2653         * tree-ssa-forwprop.c: Update tree_pass descriptors.
2654         * tree-ssa-dce.c: Update tree_pass descriptors.
2655         * tree-ssa.c: Update tree_pass descriptors.
2656         * regclass.c: Update tree_pass descriptors.
2657         * integrate.c: Update tree_pass descriptors.
2658         * tree-optimize.c: Update tree_pass descriptors.
2659         * tree-ssa-phiprop.c: Update tree_pass descriptors.
2660         * tree-object-size.c: Update tree_pass descriptors.
2661         * combine.c: Update tree_pass descriptors.
2662         * tree-outof-ssa.c: Update tree_pass descriptors.
2663         * bb-reorder.c: Update tree_pass descriptors.
2664         * stack-ptr-mod.c: Update tree_pass descriptors.
2665         * var-tracking.c: Update tree_pass descriptors.
2666         * tree-profile.c: Update tree_pass descriptors.
2667         * tree-vect-generic.c: Update tree_pass descriptors.
2668         * reg-stack.c: Update tree_pass descriptors.
2669         * sched-rgn.c: Update tree_pass descriptors.
2670         * tree-ssa-structalias.c: Update tree_pass descriptors.
2671         * tree-cfg.c: Update tree_pass descriptors.
2672         * passes.c (current_pass): Update declaration.
2673         (finish_optimization_passes): Update.
2674         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2675         (register_one_dump_file, register_dump_files_1, next_pass_1):
2676         Update arguments.
2677         (init_optimization_passes): Update handling of new types.
2678         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2679         * ipa-struct-reorg.c: Update tree_pass descriptors.
2680         * tree-ssa-reassoc.c: Update tree_pass descriptors.
2681         * combine-stack-adj.c: Update tree_pass descriptors.
2682         * cfgrtl.c: Update tree_pass descriptors.
2683         * dce.c: Update tree_pass descriptors.
2684         * tree-ssanames.c: Update tree_pass descriptors.
2685
2686 2008-03-19  Richard Guenther  <rguenther@suse.de>
2687
2688         PR middle-end/35609
2689         * tree-ssa.c (walk_data): New structure.
2690         (warn_uninitialized_var): If not always_executed warn with "maybe"
2691         instead of "is".
2692         (execute_early_warn_uninitialized): Compute post-dominators.
2693         Initialize always_executed before processing each basic block.
2694
2695 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
2696
2697         PR target/35504
2698         * config/i386/i386.c (x86_this_parameter): Calculate correct location
2699         of "this" pointer when "regparm = N" or "fastcall" is in effect.
2700
2701 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2702
2703         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2704
2705 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2706
2707         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
2708         is true.
2709         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
2710         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
2711         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
2712         target after ignore has been set, and move there also the commputation
2713         of subtarget and original_target.
2714         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2715         (LANG_HOOKS_INITIALIZER): Remove it.
2716         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
2717
2718 2008-03-18  Richard Guenther  <rguenther@suse.de>
2719
2720         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
2721         found an expression with constants, note that in the VN for the lhs.
2722         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
2723         fold them to constants if possible.  Run cleanup_cfg if done so.
2724         (execute_pre): Return todo.
2725         (do_pre): Likewise.
2726         (execute_fre): Likewise.
2727         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
2728         of constants.
2729         (get_prop_source_stmt): Look through pointer conversions.
2730
2731 2008-03-18  Jan Hubicka  <jh@suse.cz>
2732
2733         * tree-pretty-print.c: Include predict.h.
2734         (dump_generic_node): Dump predictor.
2735         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
2736         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
2737         * gimple-low.c (lower_stmt): Likewise.
2738         * expr.c (expand_expr_real): Likewise.
2739         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
2740         them.
2741         (build_predict_expr, build_predict_expr): New.
2742         * predict.h (predictor_name, build_predict_expr): Update.
2743         * c-typeck.c (c_finish_bc_stmt): Add prediction.
2744         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
2745         * predict.def (PRED_CONTINUE): Update hitrate.
2746         * tree.def (PREDICT_EXPR): Define.
2747         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
2748         do not handle BIND_EXPR.
2749         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
2750         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
2751         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
2752         operands.
2753
2754 2008-03-18  Michael Matz  <matz@suse.de>
2755
2756         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
2757
2758 2008-03-18  Richard Guenther  <rguenther@suse.de>
2759
2760         * tree-gimple.h (is_gimple_invariant_address): Declare.
2761         (is_gimple_constant): Likewise.
2762         * tree-gimple.c (is_gimple_constant): New function.
2763         (is_gimple_invariant_address): Likewise.
2764         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
2765         and is_gimple_invariant_address.
2766         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
2767         previous change.
2768         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
2769         an addressable base.
2770
2771 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2772
2773         PR middle-end/35611
2774         * gimplify.c (gimplify_expr): Gimplify second operand of
2775         OMP_ATOMIC_LOAD.
2776
2777 2008-03-17  Richard Guenther  <rguenther@suse.de>
2778
2779         PR tree-optimization/19637
2780         * fold-const.c (fold_unary): Remove restrictions of removing
2781         intermediate pointer-conversions (P2)(P1)P0.
2782         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
2783         conversion to void pointer.
2784         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
2785
2786 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
2787
2788         PR debug/31510
2789         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
2790         emulated thread local variables.
2791
2792 2008-03-16  Richard Guenther  <rguenther@suse.de>
2793
2794         PR middle-end/35607
2795         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2796         expand TREE_INVARIANT operations that are not gimple invariant.
2797
2798 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
2799
2800         * doc/extend.texi (Alignment): Say that the ABI controls
2801         the __alignof__ for non-strict-alignment targets rather
2802         than being a recommendation.
2803
2804 2008-03-15  Paul Brook  <paul@codesourcery.com>
2805
2806         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
2807         annotations.
2808         (arm_output_fn_unwind): Mark functions that can not be unwound.
2809
2810 2008-03-15  Paul Brook  <paul@codesourcery.com>
2811
2812         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
2813         extension instructions.
2814
2815 2008-03-15  Richard Guenther  <rguenther@suse.de>
2816
2817         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
2818         and fold constant aggregate refs.
2819         (fold_const_aggregate_ref): Handle string constants
2820         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
2821         (evaluate_stmt): Simplify now that ccp_fold folds constant
2822         aggregate refs.
2823
2824 2008-03-15  Paul Brook  <paul@codesourcery.com>
2825
2826         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
2827         (extzv): Use gen_extzv_t2.
2828         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
2829
2830 2008-03-15  Richard Guenther  <rguenther@suse.de>
2831
2832         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
2833         (fold_const_aggregate_ref): Likewise.
2834         (get_value): Return NULL if we don't have any values.
2835         (ccp_finalize): Set const_val to NULL after freeing it.
2836         * tree-flow.h (get_symbol_constant_value): Declare.
2837         (fold_const_aggregate_ref): Likewise.
2838         * tree-ssa-sccvn.c (try_to_simplify): Use them.
2839
2840 2008-03-15  Richard Guenther  <rguenther@suse.de>
2841
2842         PR middle-end/35593
2843         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
2844         to not produce negative array indices if not allowed.  Add
2845         parameter to indicate that.
2846         (maybe_fold_offset_to_component_ref): Allow negative array
2847         indices only for the first member of a structure.
2848         (maybe_fold_offset_to_reference): Allow negative array indices.
2849         (maybe_fold_stmt_addition): Likewise.
2850
2851 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
2852             Anatoly Sokolov <aesok@post.ru>
2853
2854         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
2855         (avr_arch): Add ARCH_AVR6.
2856         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
2857         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
2858         instead of fixed value 2.
2859         (print_operand_address): Use gs() asm specifier instead of pm().
2860         (avr_assemble_integer): (Ditto.).
2861         (avr_output_addr_vec_elt): (Ditto.).
2862         (print_operand): Handle "!" code.
2863         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
2864         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
2865         (AVR_HAVE_EIJMP_EICALL): Define.
2866         (AVR_3_BYTE_PC): Redefine.
2867         (AVR_2_BYTE_PC): (Ditto.).
2868         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
2869         (LINK_SPEC): Add atmega2560 and atmega2561.
2870         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
2871         (crtm2561.o).
2872         * config/avr/avr.md (call_insn): Use eicall instead of icall 
2873         for 3 byte PC devices.
2874         (call_value_insn): (Ditto.).
2875         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
2876         (indirect_jump): Use only for for 2 byte PC devices.
2877         (*tablejump): (Ditto.).
2878         (*indirect_jump_avr6): Add insn.
2879         (*tablejump_rjmp): Don't use for 3 byte PC devices.
2880         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
2881         instead of ijmp for 3 byte PC devices.
2882         (__tablejump2__): (Ditto.).
2883         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
2884         (MULITLIB_DIRNAMES): (Ditto.). 
2885         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
2886
2887 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
2888
2889         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
2890         "sse2_umulsidi3".  Use V1DI mode for operand 0.
2891         ("mmx_psadbw"): Use V1DI mode for operand 0.
2892         * config/i386/i386-modes.def (V1SI): New vector mode.
2893         * config/i386/i386.c (struct builtin_description)
2894         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
2895         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
2896         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
2897         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
2898         v1di_ftype_v8qi_v8qi type.
2899         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
2900
2901         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
2902         __builtin_ia32_pmuludq]: Fix the mode of return value.
2903
2904 2008-03-15  Richard Guenther  <rguenther@suse.de>
2905
2906         PR middle-end/35595
2907         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
2908         being a PHI_NODE.
2909
2910 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
2911         
2912         * doc/invoke.texi (Option Summary, Xtensa Options): Document
2913         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
2914         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
2915         unless TARGET_SERIALIZE_VOLATILE is enabled.
2916         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2917         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
2918         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
2919
2920 2008-03-14  Richard Guenther  <rguenther@suse.de>
2921
2922         PR tree-optimization/34172
2923         * tree-flow.h (refs_may_alias_p): Declare.
2924         (get_single_def_stmt): Likewise.
2925         (get_single_def_stmt_from_phi): Likewise.
2926         (get_single_def_stmt_with_phi): Likewise.
2927         * tree-dfa.c (refs_may_alias_p): New function.
2928         (get_single_def_stmt): Likewise.
2929         (get_single_def_stmt_from_phi): Likewise.
2930         (get_single_def_stmt_with_phi): Likewise.
2931         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
2932         (vn_reference_lookup_1): New helper function.
2933         (vn_reference_lookup): Walk the virtual use-def chain to
2934         continue searching for a match if the def does not alias the
2935         reference we are looking for.
2936
2937 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
2938
2939         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
2940         archive and Perzl.  Update The Written Word listing.
2941
2942 2008-03-14  Richard Guenther  <rguenther@suse.de>
2943
2944         PR tree-optimization/34043
2945         PR tree-optimization/33989
2946         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
2947         when doing FRE.
2948         (bitmap_find_leader): Use extra argument to verify dominance
2949         relationship inside a basic-block.
2950         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
2951         (find_leader_in_sets): Adjust.
2952         (create_component_ref_by_pieces): Take extra argument for
2953         dominance check, handle lookup failures.
2954         (find_or_generate_expression): Likewise.
2955         (create_expression_by_pieces): Likewise.
2956         (insert_into_preds_of_block): Adjust.
2957         (create_value_expr_from): If asked for, verify all operands
2958         are in the blocks AVAIL_OUT set.
2959         (make_values_for_stmt): Check for SSA_NAMEs that are life
2960         over an abnormal edge.
2961         (compute_avail): Remove such check.
2962         (do_SCCVN_insertion): New function.
2963         (eliminate): If we do not find a leader suitable for replacement
2964         insert a replacement expression from SCCVN if available.
2965         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
2966         (struct vn_ssa_aux): Add needs_insertion flag.
2967         * tree-ssa-sccvn.c (may_insert): New global flag.
2968         (copy_reference_ops_from_ref): Value-number union member access
2969         based on its size, not type and member if insertion is allowed.
2970         (visit_reference_op_load): For a weak match from union type
2971         punning lookup a view-converted value and insert a SSA_NAME
2972         for that value if that is not found.
2973         (visit_use): Make dumps shorter.  Do not disallow value numbering
2974         SSA_NAMEs that are life over an abnormal edge to constants.
2975         (free_scc_vn): Release inserted SSA_NAMEs.
2976         (run_scc_vn): New flag to specify whether insertion is allowed.
2977         Process SSA_NAMEs in forward order.
2978         * tree-ssa-loop-im.c (for_each_index): Handle invariant
2979         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
2980         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
2981         pointer type to/from integral types that do not change the
2982         precision to regular conversions.
2983
2984 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
2985
2986         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
2987         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
2988         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
2989         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
2990         input arguments and the mode of return value.  Built-in functions
2991         that operate on whole 64-bit MMX register now use V1DI mode.
2992
2993 2008-03-13  Alon Dayan  <alond@il.ibm.com>
2994             Olga Golovanevsky  <olga@il.ibm.com>
2995
2996         PR tree-optimization/35041
2997         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
2998         to locate the right position in a statement.
2999
3000 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3001
3002         PR target/34000
3003         PR target/35553
3004         * config/i386/xmmintrin.h:  Change all static inline functions to
3005         extern inline and add __gnu_inline__ attribute.
3006         * config/i386/bmintrin.h: Ditto.
3007         * config/i386/smmintrin.h: Ditto.
3008         * config/i386/tmmintrin.h: Ditto.
3009         * config/i386/mmintrin-common.h: Ditto.
3010         * config/i386/ammintrin.h: Ditto.
3011         * config/i386/emmintrin.h: Ditto.
3012         * config/i386/pmmintrin.h: Ditto.
3013         * config/i386/mmintrin.h: Ditto.
3014         * config/i386/mm3dnow.h: Ditto.
3015
3016 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3017
3018         PR middle-end/35185
3019         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3020         (lower_omp_2): New function.
3021         (lower_omp_1, lower_omp): Rewritten.
3022
3023 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3024
3025         PR 35054
3026         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3027         with the phrase "Microsoft Windows compilers".
3028         (Push/Pop Macro Pragmas): New subsection. Document
3029         #pragma push_macro and pragma pop_macro.
3030
3031 2008-03-12  Paul Brook  <paul@codesourcery.com>
3032
3033         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3034
3035 2008-03-12  Paul Brook  <paul@codesourcery.com>
3036
3037         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3038         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3039         (thumb2_addsi_shortim): Rename ...
3040         (thumb2_addsi_short): ... to this.  Allow register operands.
3041         (thumb2_subsi_short): New pattern.
3042         (thumb2_one_cmplsi2_short,
3043         thumb2_negsi2_short): New patterns and peepholes.
3044
3045 2008-03-12  Paul Brook  <paul@codesourcery.com>
3046
3047         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3048
3049 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3050
3051         * config/i386/i386.md (int_cond): New code iterator.
3052         (fp_cond): Ditto.
3053         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3054         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3055         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3056         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3057         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3058         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3059         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3060         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3061
3062 2008-03-12  Paul Brook  <paul@codesourcery.com>
3063
3064         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3065         instead of {arm,thumb}_compute_save_reg_mask.
3066         (output_return_instruction): Ditto.
3067         (thumb_unexpanded_epilogue): Ditto.
3068         (thumb1_expand_prologue): Ditto.
3069         (thumb1_output_function_prologue): Ditto.
3070         (arm_set_return_address): Ditto.
3071         (thumb_set_return_address): Ditto.
3072         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3073         regs to achieve stack alignment.
3074         (thumb1_compute_save_reg_mask): Fix compiler warning.
3075         (arm_output_epilogue): Use offsets->saved_regs_mask.
3076         Adjust stack pointer by poping call clobered registers.
3077         (arm_expand_prologue): Use offsets->saved_regs_mask.
3078         Adjust stack pointer by pushing extra registers.
3079         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3080
3081 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3082
3083         PR tree-opt/35422
3084         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3085         conversion to the operands of a multiplication.
3086
3087 2008-03-12  Richard Guenther  <rguenther@suse.de>
3088
3089         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3090         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3091         * timevar.def (TV_TREE_PHIPROP): Add.
3092         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3093         pass description.  Use TV_TREE_PHIPROP.
3094         * tree-ssa-forwprop.c: Remove phiprop code.
3095
3096 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3097
3098         PR middle-end/35549
3099         * omp-low.c (maybe_lookup_decl): Constify first argument.
3100         (use_pointer_for_field): Change last argument from bool to
3101         omp_context *.  Disallow shared copy-in/out in nested
3102         parallel if decl is shared in outer parallel too.
3103         (build_outer_var_ref, scan_sharing_clauses,
3104         lower_rec_input_clauses, lower_copyprivate_clauses,
3105         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3106
3107 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3108             Ira Rosen  <irar@il.ibm.com>
3109
3110         * tree-vectorizer.c (free_stmt_vec_info): New function.
3111         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3112         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3113         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3114         * tree-vect-transform.c (vectorizable_conversion): Free
3115         vec_oprnds0 if it was allocated.
3116         (vect_permute_store_chain): Remove unused VECs.
3117         (vectorizable_store): Free VECs that are allocated in the..
3118         function.
3119         (vect_transform_strided_load, vectorizable_load): Likewise.
3120         (vect_remove_stores): Simplify the code.
3121         (vect_transform_loop): Move code to vect_remove_stores().
3122         Call vect_remove_stores() and free_stmt_vec_info().
3123
3124 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3125
3126         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3127         TARGET_HPUX.  Revise comment.
3128         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3129         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3130         Use sr4 variant of `be' instruction when not generating PIC code.
3131         (attr_length_call): Adjust for above change.
3132
3133 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3134
3135         * ipa-reference.c (static_execute): Remove module_statics_const and
3136         associated setting code.
3137
3138 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3139
3140         PR target/35540
3141         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3142         predicate for operand 1.
3143         (paritysi2_cmp): Use register_operand predicate for operand 2.
3144         Use earlyclobber modifier for operand 1.  Remove support for
3145         memory operands.
3146         (paritydi2_cmp): Use register_operand predicate for operand 3.
3147         Use earlyclobber modifier for operand 1.  Remove support for
3148         memory operands.
3149
3150 2008-03-11  Paul Brook  <paul@codesourcery.com>
3151             Vladimir Prus  <vladimir@codesourcery.com>
3152
3153         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3154         (arm_compute_save_reg0_reg12_mask): Always
3155         check if register 11 must be saved.  Always safe hard frame pointer
3156         when frame_pointer_needeed.
3157         (arm_compute_save_reg_mask): Save IP and PC
3158         only with apcs frames.
3159         (arm_output_epilogue): Adjust Thumb2 codepath to
3160         be also invoked and work for ARM non-apcs frames.
3161         (arm_expand_prologue): Don't bother saving IP
3162         for non-apcs frame, since it's not clobbered by
3163         prologue code.  Implement non-apcs frame
3164         layout.
3165
3166 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3167
3168         PR rtl-optimization/35281
3169         * expr.c (convert_move): Use a new pseudo for the intermediate
3170         from_mode->word_mode result.
3171
3172 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3173
3174         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3175         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3176         * toplev.c (compile_file): Don't call it.
3177
3178 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3179
3180         PR middle-end/35526
3181         * expr.c (store_expr): Call emit_block_move if the mode
3182         of "temp" RTX is BLKmode.
3183
3184 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3185             Richard Guenther  <rguenther@suse.de>
3186
3187         PR tree-optimization/31358
3188         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3189         the step with a NULL_TREE.
3190         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3191         to sizetype if type is a pointer type.
3192         (add_candidate_1): Don't convert the base and step to
3193         the generic type if the orginal type is a pointer type.
3194         (add_iv_value_candidates): Use sizetype for the step
3195         if type is a pointer type.
3196         (cand_value_at): Likewise.
3197         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3198         for pointer types.
3199         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3200         Don't convert the tem affine to the type.
3201         (add_elt_to_tree): Use sizetype for the step if a pointer.
3202         Use POINTER_PLUS_EXPR for pointers.
3203         (aff_combination_to_tree): Use sizetype for the step if a
3204         pointer.
3205
3206 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3207
3208         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3209         Remove commutativity hint.
3210
3211 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3212
3213         PR c/35438
3214         PR c/35439
3215         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3216         errorneous type.  Check that v is a VAR_DECL.
3217
3218         PR middle-end/35099
3219         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3220
3221 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3222
3223         PR tree-optimization/35494
3224         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3225         may be overriden at link and run time.
3226
3227 2008-03-10  Richard Guenther  <rguenther@suse.de>
3228
3229         PR tree-optimization/34677
3230         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
3231         (poolify_tree): Likewise.
3232         (modify_expr_template): Likewise.
3233         (poolify_modify_stmt): Likewise.
3234         (insert_fake_stores): Handle all component-ref style stores
3235         in addition to INDIRECT_REF.  Also handle complex types.
3236         Do not poolify the inserted load.
3237         (realify_fake_stores): Do not rebuild the tree but only
3238         make it a SSA_NAME copy.
3239         (init_pre): Remove initialzation of modify_expr_template.
3240         Do not allocate modify_expr_node_pool.
3241         (fini_pre): Do not free modify_expr_node_pool.
3242
3243 2008-03-10  Paul Brook  <paul@codesourcery.com>
3244
3245         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
3246         to avoid conflicts.
3247
3248 2008-03-10  Paul Brook  <paul@codesourcery.com>
3249             Mark Shinwell  <shinwell@codesourcery.com>
3250
3251         * config/arm/cortex-r4.md: New.
3252         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
3253         insn attributes.
3254         * config/arm/arm.md: Include cortex-r4.md.
3255         (insn): Add smmls, sdiv and udiv values.
3256         (generic_sched): Don't use generic scheduling for Cortex-R4.
3257         (arm_issue_rate): New function.
3258         (TARGET_SCHED_ISSUE_RATE): Define.
3259
3260 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
3261
3262         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
3263
3264 2008-03-10  Richard Guenther  <rguenther@suse.de>
3265
3266         * tree-ssa-pre.c (get_sccvn_value): Simplify.
3267         (compute_avail): Do not add stmt uses to AVAIL_OUT.
3268
3269 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
3270
3271         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3272         Set default to true.
3273
3274 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3275
3276         * c.opt (Wsynth): Deprecate.
3277         * doc/invoke.texi (Option Summary, Warning Options): Document
3278         -Wno-format-contains-nul.
3279
3280 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
3281
3282         PR target/35496
3283         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
3284         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
3285
3286 2008-03-09  Ira Rosen  <irar@il.ibm.com>
3287
3288         * config/rs6000/rs6000.c (builtin_description): Rename vector
3289         left shift operations.
3290         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
3291         (altivec_vsl<VI_char>): Rename to ...
3292         (ashl<mode>3): ... new name.
3293         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
3294         gen_ashlv4si3.
3295         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
3296
3297 2008-03-08  Richard Guenther  <rguenther@suse.de>
3298
3299         * coverage.h (tree_coverage_counter_addr): Declare.
3300         * coverage.c (tree_coverage_counter_addr): New function.
3301         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
3302         before using again.
3303         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
3304         (tree_gen_one_value_profiler): Likewise.
3305         (tree_gen_ic_profiler): Likewise.
3306         (tree_gen_average_profiler): Likewise.
3307         (tree_gen_ior_profiler): Likewise.
3308
3309 2008-03-08  Richard Guenther  <rguenther@suse.de>
3310
3311         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
3312         (vn_binary_op_insert): Likewise.
3313         (vn_unary_op_lookup): Likewise.
3314         (vn_unary_op_insert): Likewise.
3315         (vn_nary_op_lookup): Declare.
3316         (vn_nary_op_insert): Likewise.
3317         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
3318         and binary hashes, use a single obstack for unary_op_pool
3319         and binary_op_pool.
3320         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
3321         a single struct vn_nary_op_s.  Store tree code length and
3322         a variable number of operands.
3323         (struct vn_reference_op_struct): Remove unused op2.
3324         (vn_reference_op_eq): Do not compare op2.
3325         (vn_reference_op_compute_hash): Do not compute hash of op2.
3326         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
3327         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
3328         with vn_nary_op_compute_hash.
3329         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
3330         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
3331         vn_nary_op_lookup.
3332         (vn_unary_op_insert, vn_binary_op_insert): Replace with
3333         vn_nary_op_insert.
3334         (visit_unary_op): Call nary functions.
3335         (visit_binary_op): Likewise.
3336         (process_scc): Adjust for struct vn_tables_s changes.
3337         (allocate_vn_table): Likewise.
3338         (free_vn_table): Likewise.
3339         * tree-vn.c (vn_add): Call nary functions.
3340         (vn_lookup): Likewise.
3341
3342 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
3343
3344         PR target/35498
3345         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
3346         wdst back after sync_compare_and_swapqhi_internal.
3347
3348 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
3349
3350         PR target/22152
3351         * config/i386/i386-modes.def (V1DI): New vector mode.
3352         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
3353         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
3354         (MMXMODE248): Ditto.
3355         (MMXMODE): Add V1DI mode.
3356         (mmxvecsize): Change DI mode to V1DI mode.
3357         ("mov<mode>): Use MMXMODEI8 mode iterator.
3358         ("*mov<mode>_internal_rex64"): Ditto.
3359         ("*mov<mode>_internal"): Ditto.
3360         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
3361         ("mmx_sub<mode>3"): Ditto.
3362         ("mmx_adddi3"): Remove insn pattern.
3363         ("mmx_subdi3"): Ditto.
3364         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
3365         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
3366         ("mmx_ashl<mode>3"): Ditto.
3367         ("mmx_lshrdi3"): Remove insn pattern.
3368         ("mmx_ashldi3"): Ditto.
3369         * config/i386/i386.c (classify_argument): Handle V1DImode.
3370         (function_arg_advance_32): Ditto.
3371         (function_arg_32): Ditto.
3372         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
3373         mmx_addv1di3 insn pattern.
3374         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
3375         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
3376         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
3377         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
3378         Remove definitions of built-in functions.
3379         (V1DI_type_node): New node.
3380         (v1di_ftype_v1di_int): Ditto.
3381         (v1di_ftype_v1di_v1di): Ditto.
3382         (v2si_ftype_v2si_si): Ditto.
3383         (v4hi_ftype_v4hi_di): Remove node.
3384         (v2si_ftype_v2si_di): Ditto.
3385         (ix86_init_mmx_sse_builtins): Handle V1DImode.
3386         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
3387         Redefine builtins using def_builtin_const with *_ftype_*_int node.
3388         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
3389         Add new builtins using def_builtin_const.
3390         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
3391         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
3392         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
3393         * config/i386/mmintrin.h (__v1di): New typedef.
3394         (_mm_add_si64): Cast arguments to __v1di type.
3395         (_mm_sub_si64): Ditto.
3396         (_mm_sll_pi16): Cast __count to __v4hi type.
3397         (_mm_sll_pi32): Cast __count to __v2si type.
3398         (_mm_sll_si64): Cast arguments to __v1di type.
3399         (_mm_srl_pi16): Cast __count to __v4hi type.
3400         (_mm_srl_pi32): Cast __count to __v2si type.
3401         (_mm_srl_si64): Cast arguments to __v1di type.
3402         (_mm_sra_pi16): Cast __count to __v4hi type.
3403         (_mm_sra_pi32): Cast __count to __v2si type.
3404         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
3405         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
3406         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
3407         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
3408         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
3409         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
3410         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
3411         (_mm_srai_pi32): Use __builtin_ia32_psradi.
3412         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
3413         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3414         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3415         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
3416
3417 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
3418
3419         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
3420
3421 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
3422
3423         PR target/35373
3424         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
3425         reg+const addressing for Altivec modes.  Don't generate reg+reg
3426         addressing for TFmode or TDmode quantities.
3427
3428 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
3429
3430         * c-common.c (vector_types_convertible_p): Call langhook
3431         instead of comptypes.
3432
3433 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3434
3435         PR tree-opt/35402
3436         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
3437         integral and scalar float variables which have a
3438         NULL DECL_INITIAL.
3439
3440 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
3441
3442         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
3443         dwarf_register_span hook when emitting unwind information for
3444         register-to-memory saves.
3445         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
3446         (rs6000_frame_related): Remove call to spe_synthesize_frame.
3447
3448 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
3449
3450         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
3451         for the same VAR_DECL.
3452
3453 2008-03-06  Tom Tromey  <tromey@redhat.com>
3454
3455         * treelang: Delete.
3456         * doc/standards.texi (Standards): Don't mention treelang.
3457         * doc/invoke.texi (Overall Options): Don't mention treelang.
3458         * doc/install.texi (Prerequisites): Don't mention bison or
3459         treelang.
3460         (Configuration): Don't mention treelang.
3461         (Building): Likewise.
3462         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
3463
3464 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
3465
3466         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
3467         word-extractions out of a multi-word object.
3468
3469 2008-03-06  Richard Guenther  <rguenther@suse.de>
3470
3471         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
3472         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
3473         result type and precision.
3474         * expr.c (get_inner_reference): Set unsignedp based on the result
3475         type of BIT_FIELD_REF.
3476         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
3477         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
3478         (try_instantiate_multiple_fields): Likewise.  Use the correct type
3479         for BIT_FIELD_REF.
3480         (sra_build_assignment): Likewise.
3481         (sra_build_elt_assignment): Likewise.
3482         (sra_explode_bitfield_assignment): Likewise.
3483         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
3484         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
3485         set BIT_FIELD_REF_UNSIGNED.
3486         (vectorizable_load): Likewise.
3487
3488 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3489
3490         * cse.c (cse_extended_basic_block): Invalidate artificial defs
3491         at bb start.
3492
3493 2008-03-06  Richard Guenther  <rguenther@suse.de>
3494
3495         * alias.c (struct alias_set_entry): Move has_zero_child field
3496         to pack with alias_set.
3497
3498 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
3499
3500         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
3501         32bit host.
3502
3503 2008-03-05  Ian Lance Taylor  <iant@google.com>
3504
3505         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
3506
3507 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
3508
3509         * fwprop.c (update_df): Support width and offset parameters of
3510         df_ref_create.
3511         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
3512         global_conflicts): Change DF_REF_EXTRACT to either
3513         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3514         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3515         * df-scan.c (df_ref_record, df_defs_record,
3516         df_ref_create_structure, df_def_record_1, df_uses_record,
3517         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
3518         df_bb_refs_collect, df_entry_block_defs_collect,
3519         df_exit_block_uses_collect): Support new width and offset fields.
3520         (ref_extract_pool): New storage pool.
3521         (df_free_ref): New function.
3522         (df_reg_chain_unlink, df_free_collection_rec,
3523         df_sort_and_compress_refs): Call df_free_ref.
3524         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
3525         of df_ref_extract.
3526         (df_ref_create_structure): Allocate df_ref_extract if offset and
3527         width fields are used.
3528         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
3529         (df_uses_record): Get offset and width from ZERO_EXTRACT 
3530         and SIGN_EXTRACT.
3531         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
3532         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3533         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3534         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
3535         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
3536         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
3537         (df_ref_extract): New structure.
3538         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
3539         (df_ref_create): Add width and offset parameters.
3540         
3541 2008-03-05  Richard Guenther  <rguenther@suse.de>
3542
3543         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3544         Use ranges_overlap_p.
3545         (offset_overlaps_with_access): Rename
3546         to ranges_overlap_p and move ...
3547         * tree-flow-inline.h (ranges_overlap_p): ... here.
3548
3549         * tree.h (get_inner_reference, handled_component_p): Update
3550         comments.
3551
3552         * tree.h (record_component_aliases, get_alias_set,
3553         alias_sets_conflict_p, alias_sets_must_conflict_p,
3554         objects_must_conflict_p): Move declarations ...
3555         * alias.h (record_component_aliases, get_alias_set,
3556         alias_sets_conflict_p, alias_sets_must_conflict_p,
3557         objects_must_conflict_p): ... here.
3558         Include coretypes.h.
3559         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
3560
3561 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
3562
3563         * cfg.c: Include tree-flow.h.
3564         (remove_edge_raw): Call redirect_edge_var_map_clear.
3565         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
3566         * tree-flow-inline.h (redirect_edge_var_map_def): New.
3567         (redirect_edge_var_map_result): New.
3568         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
3569         PENDING_STMT use with redirect_edge_var_map_*.
3570         * tree-ssa.c (edge_var_maps): New definition.
3571         (redirect_edge_var_map_add): New.
3572         (redirect_edge_var_map_clear): New.
3573         (redirect_edge_var_map_dup): New.
3574         (redirect_edge_var_map_vector): New.
3575         (redirect_edge_var_map_destroy): New.
3576         (ssa_redirect_edge): Replace PENDING_STMT use with
3577         redirect_edge_var_map_*.
3578         (flush_pending_stmts): Same.
3579         (delete_tree_ssa): Destroy edge var map.
3580         * tree-flow.h (struct _edge_var_map): New.
3581         Define edge_var_map vector type.
3582         Declare redirect_edge_var_map_* prototypes.
3583         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
3584         * tree-cfg.c (reinstall_phi_args): Replace
3585         PENDING_STMT use with redirect_edge_var_map_*.
3586
3587 2008-03-05  Richard Guenther  <rguenther@suse.de>
3588
3589         PR tree-optimization/35472
3590         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
3591         whose single use_stmt has a overlapping set of loaded and
3592         stored symbols as that use_stmt might be a noop assignment then.
3593
3594 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3595
3596         * gthr-rtems.h: Implement __gthread_mutex_destroy.
3597
3598 2008-03-05  Richard Guenther  <rguenther@suse.de>
3599
3600         PR c++/35336
3601         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
3602         should be constants.
3603         * tree-cfg.c (verify_expr): Verify it.
3604         * fold-const.c (fold_truthop): Remove code generating
3605         BIT_FIELD_REFs of structure bases.
3606         (fold_binary): Likewise.
3607         (fold_ternary): Position and size of BIT_FIELD_REFs are
3608         always host integers.
3609         (make_bit_field_ref): Remove.
3610         (optimize_bit_field_compare): Remove.
3611         (all_ones_mask_p): Remove.
3612
3613 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
3614
3615         PR gcc/33009
3616         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
3617         (split_block_and_df_analyze): New. Split basic block and rebuild
3618         dataflow.
3619         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
3620         SPLIT_BLOCK.
3621         (split_pattern_seq): Likewise.
3622         (erase_matching_seqs): Likewise.
3623         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
3624
3625 2008-03-04  Geoff Keating  <geoffk@apple.com>
3626
3627         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
3628         declaration and code.
3629         (tree_invalid_nonnegative_warnv_p): Likewise.
3630
3631 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
3632
3633         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
3634         examples.  Truncate option-names then causing overfull hbox.
3635
3636 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3637
3638         PR target/35222
3639         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
3640         on hpux10.
3641         * configure: Rebuilt.
3642
3643 2008-03-04  Rafael Espindola  <espindola@google.com>
3644
3645         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
3646         (tree_unary_nonnegative_warnv_p): New.
3647         (tree_binary_nonnegative_warnv_p): New.
3648         (tree_single_nonnegative_warnv_p): New.
3649         (tree_invalid_nonnegative_warnv_p): New.
3650         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
3651
3652 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3653
3654         PR 28322
3655         * opts.c (handle_option): Postpone 'unknown option' errors only for
3656         warning options.
3657
3658 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
3659
3660         PR target/35453
3661         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
3662         (_SIDD_XXX): This.
3663
3664 2008-03-04  Rafael Espindola  <espindola@google.com>
3665
3666         * fold-const.c (tree_unary_nonzero_warnv_p): New.
3667         (tree_binary_nonzero_warnv_p): New.
3668         (tree_single_nonzero_warnv_p): New.
3669         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
3670
3671 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
3672
3673         PR middle-end/35456
3674         * fold-const.c (fold_cond_expr_with_comparison): Prevent
3675         transformations for modes that have signed zeros.
3676         * ifcvt.c (noce_try_abs): Ditto.
3677
3678 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
3679
3680         * config/i386/i386.c (override_options): Force
3681         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
3682
3683 2008-03-04  Jan Hubicka  <jh@suse.cz>
3684
3685         PR c++/35262
3686         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
3687         in last commit.
3688
3689 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3690
3691         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
3692         label to probe the stack.
3693
3694 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
3695
3696         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
3697         (__gthr_win32_mutex_destroy): Declare.
3698         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
3699         __gthr_win32_mutex_destroy.
3700         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
3701
3702 2008-03-03  Jan Hubicka  <jh@suse.cz>
3703
3704         PR c++/35262
3705         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
3706         aggressive on inlining cold calls.
3707
3708 2008-03-03  Richard Guenther  <rguenther@suse.de>
3709
3710         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
3711         struct copies into the expression table.
3712         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
3713         (try_to_simplify): Likewise.
3714         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
3715         integral and pointer arguments which do not change the
3716         precision to NOP_EXPRs.
3717         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
3718         VIEW_CONVERT_EXPR case.
3719
3720 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3721
3722         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
3723         defined in a loop at depth 0 is invariant.
3724         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
3725         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
3726         be called at loop depth 0.
3727
3728 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
3729
3730         PR driver/35420
3731         * gcc.c (process_command): Update copyright notice dates.
3732         * gcov.c (print_version): Likewise.
3733         * gcov-dump.c (print_version): Likewise.
3734         * mips-tfile.c (main): Likewise.
3735         * mips-tdump.c (main): Likewise.
3736
3737 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3738
3739         PR 24924
3740         * c-common.c (flag_permissive): Delete.
3741         (constant_expression_warnings): Check flags first.
3742         (constant_expression_error): New.
3743         * c-common.h (flag_permissive): Delete.
3744         (constant_expression_error): Declare.
3745         * flags.h (flag_permissive): Declare. Update description.
3746         * diagnostic.c (pedwarn): Update.
3747         (permerror): New.
3748         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
3749         (permissive_error_kind): New.
3750         * toplev.c (flag_permissive): Define. Update description.
3751         * toplev.h (permissive_error_kind): Declare.
3752         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
3753         (pedwarn_c90): Use pedantic_warning_kind.
3754         * c-opts.c (c_common_post_options): flag_permissive does not affect
3755         flag_pedantic_errors.
3756
3757 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
3758
3759         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
3760         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
3761         __absvsi2, __absvDI2): Use unsigned arithmetic.
3762
3763 2008-03-02  Andi Kleen  <ak@suse.de>
3764             Richard Guenther  <rguenther@suse.de>
3765
3766         * struct-equiv.c: Remove file.
3767         * cfg_cleanup.c (condjump_equiv_p): Remove.
3768         * Makefile.in (OBJS-common): Remove struct-equiv.o.
3769         (struct-equiv.o): Remove rule.
3770         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
3771         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
3772         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
3773
3774 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3775
3776         * ifcvt.c (noce_process_if_block): Try to handle only the then
3777         block if the else block exists but isn't suitable.
3778
3779 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3780
3781         PR gcc/35063
3782         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
3783         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
3784         regression from previous patch.
3785
3786 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
3787
3788         PR gcc/35063
3789         * gthr.h: Add __gthread_mutex_destroy as a function that must be
3790         implemented.
3791         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
3792         * gthr-single.h (__gthread_mutex_destroy): Likewise.
3793         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
3794         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
3795         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
3796         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
3797         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
3798         (__gthread_mutex_destroy_function): Rename to
3799         __gthread_mutex_destroy.
3800         * gthr-dce.h (__gthread_mutex_destroy): Call
3801         pthread_mutex_destroy.
3802         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
3803         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
3804         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
3805
3806 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3807
3808         * df-scan.c (df_ref_chain_change_bb): Simplify.
3809         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
3810         set_block_for_insn if there's any change.
3811         * df.h ((df_insn_change_bb): Fix prototype.
3812         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
3813         df_insn_change_bb, don't call set_block_for_insn.
3814         * emit-rtl.c (reorder_insns): Likewise.
3815         * haifa-sched.c (move_insn): Likewise.
3816
3817 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3818
3819         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
3820
3821 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
3822
3823         * tree-flow-inline.h (next_readonly_imm_use): Return
3824         NULL_USE_OPERAND_P after the end.
3825
3826 2008-03-01  Richard Guenther  <rguenther@suse.de>
3827
3828         PR tree-optimization/35411
3829         * tree-sra.c (sra_build_assignment): Split conversion to
3830         final type to a separate statement if we are not assigning
3831         to a register.
3832
3833 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3834
3835         * fold-const.c (fold_convertible_p): Correct the logic to follow
3836         that in fold_convert().
3837
3838 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
3839
3840         PR c++/35315
3841         * tree-inline.c (build_duplicate_type): When we make a
3842         duplicate type, make it unique in the canonical types system.
3843
3844 2008-02-29  Tom Tromey  <tromey@redhat.com>
3845
3846         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
3847         input_file_stack_history, input_file_stack_restored): Remove.
3848         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3849         * input.h (struct file_stack): Remove.
3850         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
3851         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
3852         Likewise.
3853         * diagnostic.h (struct diagnostic_context) <last_module>: Change
3854         type.
3855         (diagnostic_last_module_changed): Add 'map' argument.
3856         (diagnostic_set_last_function): Likewise.
3857         * diagnostic.c (undiagnostic_report_current_module): Iterate using
3858         line map, not input_file_stack.
3859         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
3860
3861 2008-02-29  Paul Brook  <paul@codesourcery.com>
3862
3863         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
3864
3865 2008-02-29  Paul Brook  <paul@codesourcery.com>
3866
3867         * config/arm/ieee754-df.S (muldf3): Use RET macros.
3868
3869 2008-02-29  Richard Guenther  <rguenther@suse.de>
3870
3871         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
3872         vn_lookup_or_add.
3873         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
3874         value for comparing for a store match.
3875         (simplify_unary_expression): Do nothing for SSA_NAMEs.
3876         (try_to_simplify): Do not do a full-blown reference lookup.
3877
3878 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3879
3880         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
3881         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3882
3883         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
3884
3885 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
3886
3887         * tree-loop-linear.c (try_interchange_loops): Compare memory access
3888         strides against cache sizes.
3889
3890 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3891
3892         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
3893         constant to fpul.
3894
3895 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
3896
3897         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
3898         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
3899         is smaller than the original promoted value.
3900         (simplify_subreg): If OP is a SUBREG, try to preserve its
3901         SUBREG_PROMOTED_VAR_P information.
3902
3903 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
3904
3905         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
3906         (VN_INFO_GET): Allocate new objects on the obstack.
3907         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
3908         for rpo_numbers_temp, for consistency.
3909         (free_scc_vn): Free the obstack.
3910
3911 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
3912
3913         * doc/invoke.texi: Document -ftree-loop-distribution.
3914         * tree-loop-distribution.c: New.
3915         * tree-pass.h (pass_loop_distribution): New.
3916         * graphds.h (struct graph): Add htab_t indices.
3917         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
3918         * tree-vectorizer.c (rename_variables_in_loop): Extern.
3919         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
3920         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
3921         * tree-data-ref.c (debug_data_dependence_relations): New.
3922         (dump_data_dependence_relation): Also print data references.
3923         (free_data_ref): Extern.
3924         (same_access_functions): Moved...
3925         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
3926         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3927         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
3928         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
3929         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
3930         (stmts_from_loop): Skip LABEL_EXPR.
3931         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
3932         New.
3933         (build_rdg): Initialize rdg->indices htab.
3934         (free_rdg, stores_from_loop, ref_base_address,
3935         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
3936         have_similar_memory_accesses_1, ref_base_address_1,
3937         remove_similar_memory_refs): New.
3938         * tree-data-ref.h: Depend on tree-chrec.h.
3939         (debug_data_dependence_relations, free_data_ref): Declared.
3940         (same_access_functions): ... here.
3941         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
3942         New.
3943         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
3944         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
3945         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
3946         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
3947         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
3948         rdg_vertex_for_stmt): Declared.
3949         (struct rdg_edge): Add level.
3950         (RDGE_LEVEL): New.
3951         (free_rdg, stores_from_loop, remove_similar_memory_refs,
3952         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
3953         Declared.
3954         (rdg_has_similar_memory_accesses): New.
3955         * tree-vect-analyze.c: Remove unused static decls.
3956         * lambda.h (dependence_level): New.
3957         * common.opt (ftree-loop-distribution): New.
3958         * tree-flow.h (mark_virtual_ops_in_bb, 
3959         slpeel_tree_duplicate_loop_to_edge_cfg,
3960         rename_variables_in_loop): Declared.
3961         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
3962         (OBJS-common): Add tree-loop-distribution.o.
3963         (tree-loop-distribution.o): New rule.
3964         * tree-cfg.c (mark_virtual_ops_in_bb): New.
3965         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
3966         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
3967
3968 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
3969
3970         PR target/33963
3971         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
3972         other than structures and unions.
3973
3974 2008-02-28  Richard Guenther  <rguenther@suse.de>
3975
3976         Revert:
3977         2008-02-26  Richard Guenther  <rguenther@suse.de>
3978
3979         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
3980         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
3981         (lookup_decl_from_uid): Declare.
3982         (remove_decl_from_map): Likewise.
3983         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
3984         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
3985         (decl_for_uid_map): New global hashtable mapping DECL_UID
3986         to the decl tree.
3987         (init_ttree): Allocate it.
3988         (insert_decl_to_uid_decl_map): New helper function.
3989         (make_node_stat): Insert new decls into the map.
3990         (copy_node_stat): Likewise.
3991         (lookup_decl_from_uid): New function.
3992         (remove_decl_from_map): Likewise.
3993         (print_decl_for_uid_map_statistics): New helper.
3994         (dump_tree_statistics): Call it.
3995
3996         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
3997         (referenced_var_iterator): Adjust.
3998         (FOR_EACH_REFERENCED_VAR): Adjust.
3999         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4000         (num_referenced_vars): Adjust.
4001         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4002         (first_referenced_var): Remove.
4003         (end_referenced_vars_p): Likewise.
4004         (next_referenced_var): Likewise.
4005         (referenced_var_iterator_set): New helper function.
4006         * tree-dfa.c (referenced_var_lookup): Adjust.
4007         (referenced_var_check_and_insert): Likewise.
4008         (remove_referenced_var): Likewise.
4009         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4010         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4011         (verify_call_clobbering): Likewise.
4012         (verify_memory_partitions): Likewise.
4013         (init_tree_ssa): Allocate bitmap instead of hashtable for
4014         referenced_vars.
4015         (delete_tree_ssa): Adjust.
4016         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4017         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4018         (compute_tag_properties): Likewise.
4019         (set_initial_properties): Likewise.
4020         (find_partition_for): Likewise.
4021         (update_reference_counts): Likewise.
4022         (dump_may_aliases_for): Likewise.
4023         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4024         (add_call_clobber_ops): Likewise.
4025         (add_call_read_ops): Likewise.
4026         (get_asm_expr_operands): Likewise.
4027         * tree-into-ssa.c (dump_decl_set): Likewise.
4028         (update_ssa): Likewise.
4029         * tree-sra.c (scan_function): Likewise.
4030         (decide_instantiations): Likewise.
4031         (scalarize_parms): Likewise.
4032         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4033         (dsa_named_for): Likewise.
4034         * tree-ssa-structalias.c (update_alias_info): Likewise.
4035         (merge_smts_into): Likewise.
4036
4037 2008-02-27  David Daney  <ddaney@avtrex.com>
4038
4039         PR target/34409
4040         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
4041         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
4042         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
4043         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
4044         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
4045
4046 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
4047
4048         PR target/25477
4049         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
4050         (BUILT_IN_NEXTTOWARD): Remove.
4051         (BUILT_IN_NEXTTOWARDF): Ditto.
4052         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
4053         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
4054
4055 2008-02-27  Tom Tromey  <tromey@redhat.com>
4056
4057         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
4058         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
4059
4060 2008-02-27  Jan Beulich  <jbeulich@novell.com>
4061
4062         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
4063         update the respective field on newdecl.
4064
4065 2008-02-27  Revital Eres  <eres@il.ibm.com>
4066
4067         PR rtl-optimization/34999
4068         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
4069         crossing edges that ends with a call insn.
4070         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
4071         call insn and clear the EDGE_CROSSING flag of the crossing edge
4072         when fixing fallthru edges.
4073
4074 2008-02-27  Richard Guenther  <rguenther@suse.de>
4075
4076         PR middle-end/35390
4077         * fold-const.c (fold_unary): Return the correct argument,
4078         converted to the result type.
4079
4080 2008-02-27  Richard Guenther  <rguenther@suse.de>
4081
4082         PR middle-end/34971
4083         * expr.c (expand_expr_real_1): Assert on rotates that operate
4084         on partial modes.
4085         * fold-const.c (fold_binary): Use the types precision, not the
4086         bitsize of the mode if folding rotate expressions.  Build rotates
4087         only for full modes.
4088
4089 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
4090
4091         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
4092         and CPP_PRAGMA_EOL.
4093         * c-pragma.c (pragma_ns_name): New typedef.
4094         (registered_pp_pragmas): New variable.
4095         (c_pp_lookup_pragma): New function.
4096         (c_register_pragma_1): If flag_preprocess_only, do nothing
4097         for non-expanded pragmas, for expanded ones push pragma's
4098         namespace and name into registered_pp_pragmas vector.
4099         (c_invoke_pragma_handler): Register OpenMP pragmas even when
4100         flag_preprocess_only, don't register GCC pch_preprocess
4101         pragma if flag_preprocess_only.
4102         * c-opts.c (c_common_init): Call init_pragma even if
4103         flag_preprocess_only.
4104         * c-pragma.c (c_pp_lookup_pragma): New prototype.
4105         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
4106         cpp_register_pragma if flag_preprocess_only.
4107
4108 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4109
4110         PR c/28800
4111         * c-parser.c (c_parser_translation_unit): Warn for empty
4112         translation unit, not empty source file.
4113
4114 2008-02-26  Paul Brook  <paul@codesourcery.com>
4115
4116         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
4117         operand for Thumb-2.
4118         * config/arm/arm.h (reg_class): Add CORE_REGS.
4119         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
4120         (BASE_REG_CLASS): Use CORE_REGS.
4121         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
4122         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
4123         (REGNO_OK_FOR_INDEX_P): Exclude SP.
4124         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
4125         ARM_REGNO_OK_FOR_INDEX_P.
4126         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
4127         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
4128         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
4129         (ldm/stm peepholes): Ditto.
4130         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
4131         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
4132         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
4133         * config/arm/constraints.md: Enable "k" constraint on ARM.
4134
4135 2008-02-27  Ben Elliston  <bje@au.ibm.com>
4136
4137         * config/rs6000/rs6000.c: Annotate cache line size field in all
4138         instances of struct processor_costs.
4139
4140 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
4141
4142         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
4143         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
4144         jump_bypass): New counters.
4145         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
4146         * dce.c (gate_ud_dce): Same.
4147         (gate_fast_dce): Same.
4148         * dse.c (gate_dse1): New function.
4149         (gate_dse2): New function.
4150         (gate_dse): Merge results of new gate functions.
4151         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
4152         (gate_handle_jump_bypass): Add dbg_cnt.
4153         (gate_handle_gcse): Add dbg_cnt.
4154         * ifcvt.c (gate_handle_if_conversion): Same.
4155         (gate_handle_if_after_combine): Same.
4156         (gate_handle_if_after_reload): Same.
4157         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
4158
4159 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
4160
4161         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
4162         line sizes.
4163         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
4164
4165 2008-02-26  Jason Merrill  <jason@redhat.com>
4166
4167         PR c++/35315
4168         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
4169         alone if it's the naming decl for the type's main variant.
4170
4171 2008-02-26  Tom Tromey  <tromey@redhat.com>
4172
4173         * system.h (USE_MAPPED_LOCATION): Poison.
4174         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
4175         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
4176         (make_goto_expr_edges): Likewise.
4177         (remove_bb): Likewise.
4178         (execute_warn_function_return): Likewise.
4179         * basic-block.h (struct edge_def) <goto_locus>: Change type to
4180         location_t.
4181         * c-common.c (fname_decl): Remove old location code.
4182         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
4183         location code.
4184         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
4185         variant.
4186         (ASM_INPUT_SOURCE_LOCATION): Likewise.
4187         (gen_rtx_ASM_INPUT): Likewise.
4188         (gen_rtx_ASM_INPUT_loc): Likewise.
4189         (get_rtx_asm_OPERANDS): Remove.
4190         * cfglayout.c (insn_locators_alloc): Remove old location code.
4191         (set_curr_insn_source_location): Likewise.
4192         (curr_insn_locator): Likewise.
4193         * print-tree.c (print_node): Remove old location code.
4194         * tree-mudflap.c (mf_varname_tree): Remove old location code.
4195         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
4196         * cfgexpand.c (expand_gimple_cond_expr): Don't use
4197         location_from_locus.
4198         (construct_exit_block): Remove old location code.
4199         * emit-rtl.c (force_next_line_note): Remove old location code.
4200         * profile.c (branch_prob): Remove old location code.
4201         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
4202         LOC_LINE): Remove old-location variants.
4203         * langhooks.c (lhd_print_error_function): Remove old location
4204         code.
4205         * configure, config.in: Rebuilt.
4206         * configure.ac (--enable-mapped-location): Remove.
4207         * c-decl.c (c_init_decl_processing): Remove old location code.
4208         (finish_function): Likewise.
4209         * recog.c (decode_asm_operands): Remove old location code.
4210         * c-pch.c (c_common_read_pch): Remove old location code.
4211         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
4212         variants.
4213         * gimple-low.c (lower_function_body): Remove old location code.
4214         * toplev.c (unknown_location): Remove.
4215         (push_srcloc): Remove old-location variant.
4216         (process_options): Remove old location code.
4217         (lang_dependent_init): Likewise.
4218         * input.h (UNKNOWN_LOCATION): Move definition.
4219         (location_t): Undeprecate.
4220         (source_locus): Remove.
4221         (location_from_locus): Remove.
4222         (struct location_s): Remove.
4223         Remove all old-location code.
4224         (input_line, input_filename): Remove.
4225         * final.c (final_scan_insn): Remove old location code.
4226         * diagnostic.c (diagnostic_build_prefix): Remove
4227         USE_MAPPED_LOCATION test.
4228         * tree.h (gimple_stmt) <locus>: Now a location_t.
4229         (tree_exp) <locus>: Likewise.
4230         (DECL_IS_BUILTIN): Remove old-location variant.
4231         (annotate_with_file_line, annotate_with_locus): Likewise.
4232         (expr_locus, set_expr_locus): Update.
4233         * tree.c (build1_stat): Remove old location code.
4234         (last_annotated_node): Remove.
4235         (annotate_with_file_line): Remove old-location variant.
4236         (annotate_with_locus): Likewise.
4237         (expr_location): Remove old location code.
4238         (set_expr_location): Likewise.
4239         (expr_has_location): Likewise.
4240         (expr_locus): Likewise.
4241         (set_expr_locus): Likewise.
4242         (expr_filename): Don't use location_from_locus.
4243         (expr_lineno): Likewise.
4244         * rtl-error.c (location_for_asm): Remove old location code.
4245         * c-lex.c (cb_line_change): Remove old location code.
4246         (fe_file_change): Likewise.
4247         (cb_def_pragma): Likewise.
4248         (c_lex_with_flags): Likewise.
4249         * gengtype.c (do_typedef): Don't special-case location types.
4250         (define_location_structures): Remove.
4251         (main): Don't call define_location_structures.
4252         * tree-pretty-print.c (dump_implicit_edges): Remove old location
4253         code.
4254
4255 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4256
4257         PR 26264
4258         * builtins.def (BUILT_IN_STDARG_START): Remove.
4259         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
4260         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
4261         * tree-inline.c (inline_forbidden_p_1): Likewise.
4262         
4263 2008-02-26  Richard Guenther  <rguenther@suse.de>
4264
4265         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4266         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4267         (lookup_decl_from_uid): Declare.
4268         (remove_decl_from_map): Likewise.
4269         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4270         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4271         (decl_for_uid_map): New global hashtable mapping DECL_UID
4272         to the decl tree.
4273         (init_ttree): Allocate it.
4274         (insert_decl_to_uid_decl_map): New helper function.
4275         (make_node_stat): Insert new decls into the map.
4276         (copy_node_stat): Likewise.
4277         (lookup_decl_from_uid): New function.
4278         (remove_decl_from_map): Likewise.
4279         (print_decl_for_uid_map_statistics): New helper.
4280         (dump_tree_statistics): Call it.
4281
4282         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4283         (referenced_var_iterator): Adjust.
4284         (FOR_EACH_REFERENCED_VAR): Adjust.
4285         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4286         (num_referenced_vars): Adjust.
4287         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4288         (first_referenced_var): Remove.
4289         (end_referenced_vars_p): Likewise.
4290         (next_referenced_var): Likewise.
4291         (referenced_var_iterator_set): New helper function.
4292         * tree-dfa.c (referenced_var_lookup): Adjust.
4293         (referenced_var_check_and_insert): Likewise.
4294         (remove_referenced_var): Likewise.
4295         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4296         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4297         (verify_call_clobbering): Likewise.
4298         (verify_memory_partitions): Likewise.
4299         (init_tree_ssa): Allocate bitmap instead of hashtable for
4300         referenced_vars.
4301         (delete_tree_ssa): Adjust.
4302         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4303         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4304         (compute_tag_properties): Likewise.
4305         (set_initial_properties): Likewise.
4306         (find_partition_for): Likewise.
4307         (update_reference_counts): Likewise.
4308         (dump_may_aliases_for): Likewise.
4309         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4310         (add_call_clobber_ops): Likewise.
4311         (add_call_read_ops): Likewise.
4312         (get_asm_expr_operands): Likewise.
4313         * tree-into-ssa.c (dump_decl_set): Likewise.
4314         (update_ssa): Likewise.
4315         * tree-sra.c (scan_function): Likewise.
4316         (decide_instantiations): Likewise.
4317         (scalarize_parms): Likewise.
4318         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4319         (dsa_named_for): Likewise.
4320         * tree-ssa-structalias.c (update_alias_info): Likewise.
4321         (merge_smts_into): Likewise.
4322
4323 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4324
4325         PR 34351
4326         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
4327         * c-opts.c (c_common_handle_option): Wall enables
4328         Wvolatile-register-var.
4329         * common.opt: Move Wvolatile-register-var to...
4330         * c.opt: ...here.
4331         
4332 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4333
4334         * common.opt (Wlarger-than=): New.
4335         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
4336         -Wlarger-than=.
4337         * opts.c (common_handle_option): Handle -Wlarger-than=.
4338         * optc-gen.awk: Likewise.
4339         * opth-gen.awk: Likewise.
4340         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
4341         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4342         
4343 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4344
4345         * c-common.c (match_case_to_enum_1): Add appropriate
4346         OPT_W* parameter to warning.
4347         (c_do_switch_warnings): Likewise.
4348         * c-typeck.c (warning_init): Add one more parameter following
4349         'warning' function.
4350         (push_init_level): Update call to warning_init.
4351         (pop_init_level): Likewise.
4352         (add_pending_init): Likewise.
4353         (output_init_element: Likewise.
4354
4355 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4356
4357         PR 28322
4358         * toplev.c (toplev_main): If there are warnings or error, print
4359         errors for ignored options.
4360         * opts.c (ignored_options): New static variable.
4361         (postpone_unknown_option_error): New.
4362         (print_ignored_options): New.
4363         (handle_option): Postpone errors for unknown -Wno-* options.
4364         * opts.h (print_ignored_options): Declare.
4365         
4366 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
4367
4368         * config/mips/mips.md (loadgp_blockage, blockage): Change type
4369         to "ghost".
4370
4371 2008-02-25  Richard Guenther  <rguenther@suse.de>
4372
4373         Revert:
4374         2008-02-25  Richard Guenther  <rguenther@suse.de>
4375
4376         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4377         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4378         (lookup_decl_from_uid): Declare.
4379         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4380         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4381         (decl_for_uid_map): New global hashtable mapping DECL_UID
4382         to the decl tree.
4383         (init_ttree): Allocate it.
4384         (insert_decl_to_uid_decl_map): New helper function.
4385         (make_node_stat): Insert new decls into the map.
4386         (copy_node_stat): Likewise.
4387         (lookup_decl_from_uid): New function.
4388         (print_decl_for_uid_map_statistics): New helper.
4389         (dump_tree_statistics): Call it.
4390
4391         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4392         (referenced_var_iterator): Adjust.
4393         (FOR_EACH_REFERENCED_VAR): Adjust.
4394         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4395         (num_referenced_vars): Adjust.
4396         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4397         (first_referenced_var): Remove.
4398         (end_referenced_vars_p): Likewise.
4399         (next_referenced_var): Likewise.
4400         (referenced_var_iterator_set): New helper function.
4401         * tree-dfa.c (referenced_var_lookup): Adjust.
4402         (referenced_var_check_and_insert): Likewise.
4403         (remove_referenced_var): Likewise.
4404         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4405         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4406         (verify_call_clobbering): Likewise.
4407         (verify_memory_partitions): Likewise.
4408         (init_tree_ssa): Allocate bitmap instead of hashtable for
4409         referenced_vars.
4410         (delete_tree_ssa): Adjust.
4411         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4412         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4413         (compute_tag_properties): Likewise.
4414         (set_initial_properties): Likewise.
4415         (find_partition_for): Likewise.
4416         (update_reference_counts): Likewise.
4417         (dump_may_aliases_for): Likewise.
4418         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4419         (add_call_clobber_ops): Likewise.
4420         (add_call_read_ops): Likewise.
4421         (get_asm_expr_operands): Likewise.
4422         * tree-into-ssa.c (dump_decl_set): Likewise.
4423         (update_ssa): Likewise.
4424         * tree-sra.c (scan_function): Likewise.
4425         (decide_instantiations): Likewise.
4426         (scalarize_parms): Likewise.
4427         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4428         (dsa_named_for): Likewise.
4429         * tree-ssa-structalias.c (update_alias_info): Likewise.
4430         (merge_smts_into): Likewise.
4431
4432 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4433
4434         PR fortran/29549
4435         * doc/invoke.texi (-fcx-limited-range): Document new option.
4436         * toplev.c (process_options): Handle -fcx-fortran-rules.
4437         * common.opt: Add documentation for -fcx-fortran-rules.
4438
4439 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
4440
4441         PR c/35162
4442         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
4443         actual behaviour and C99.
4444         
4445 2008-02-26  Ben Elliston  <bje@au.ibm.com>
4446
4447         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
4448         (ASM_CPU_POWER6_SPEC): Likewise.
4449         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
4450         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
4451         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
4452
4453 2008-02-25  Richard Guenther  <rguenther@suse.de>
4454
4455         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
4456         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
4457         (lookup_decl_from_uid): Declare.
4458         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
4459         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
4460         (decl_for_uid_map): New global hashtable mapping DECL_UID
4461         to the decl tree.
4462         (init_ttree): Allocate it.
4463         (insert_decl_to_uid_decl_map): New helper function.
4464         (make_node_stat): Insert new decls into the map.
4465         (copy_node_stat): Likewise.
4466         (lookup_decl_from_uid): New function.
4467         (print_decl_for_uid_map_statistics): New helper.
4468         (dump_tree_statistics): Call it.
4469
4470         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
4471         (referenced_var_iterator): Adjust.
4472         (FOR_EACH_REFERENCED_VAR): Adjust.
4473         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
4474         (num_referenced_vars): Adjust.
4475         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
4476         (first_referenced_var): Remove.
4477         (end_referenced_vars_p): Likewise.
4478         (next_referenced_var): Likewise.
4479         (referenced_var_iterator_set): New helper function.
4480         * tree-dfa.c (referenced_var_lookup): Adjust.
4481         (referenced_var_check_and_insert): Likewise.
4482         (remove_referenced_var): Likewise.
4483         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
4484         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4485         (verify_call_clobbering): Likewise.
4486         (verify_memory_partitions): Likewise.
4487         (init_tree_ssa): Allocate bitmap instead of hashtable for
4488         referenced_vars.
4489         (delete_tree_ssa): Adjust.
4490         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
4491         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
4492         (compute_tag_properties): Likewise.
4493         (set_initial_properties): Likewise.
4494         (find_partition_for): Likewise.
4495         (update_reference_counts): Likewise.
4496         (dump_may_aliases_for): Likewise.
4497         * tree-ssa-operands.c (add_virtual_operand): Likewise.
4498         (add_call_clobber_ops): Likewise.
4499         (add_call_read_ops): Likewise.
4500         (get_asm_expr_operands): Likewise.
4501         * tree-into-ssa.c (dump_decl_set): Likewise.
4502         (update_ssa): Likewise.
4503         * tree-sra.c (scan_function): Likewise.
4504         (decide_instantiations): Likewise.
4505         (scalarize_parms): Likewise.
4506         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
4507         (dsa_named_for): Likewise.
4508         * tree-ssa-structalias.c (update_alias_info): Likewise.
4509         (merge_smts_into): Likewise.
4510
4511 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
4512
4513         PR target/35258
4514         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
4515         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
4516         * alias.h (nonoverlapping_memrefs_p): Likewise.
4517
4518 2008-02-25  Jan Beulich  <jbeulich@novell.com>
4519
4520         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
4521         * config/i386/netware-libgcc.exp: Add __bswap?i2,
4522         __emultls_get_address, __emultls_register_common,
4523         __floatundi?f, and _Unwind_GetIPInfo.
4524         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
4525         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
4526         (gen_regparm_prefix): Likewise.
4527         (i386_nlm_encode_section_info): Sync with
4528         config/i386/winnt.c:i386_pe_encode_section_info().
4529         (i386_nlm_maybe_mangle_decl_assembler_name): New.
4530         i386_nlm_mangle_decl_assembler_name): New.
4531         (netware_override_options): New.
4532         * config/i386/netware.h (netware_override_options): Declare.
4533         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
4534         (i386_nlm_mangle_decl_assembler_name): Declare.
4535         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
4536
4537 2008-02-25  Ben Elliston  <bje@au.ibm.com>
4538
4539         PR other/32948
4540         * c-decl.c (grokdeclarator): Remove unused local variables
4541         `typedef_type' and `type_as_written'.
4542         * bb-reorder.c
4543         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
4544         unused local variable `has_hot_blocks'.
4545         (fix_crossing_conditional_branches): Remove unused local variable
4546         `prev_bb'.
4547         
4548 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
4549
4550         PR middle-end/19984
4551         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
4552         using DEF_C99_BUILTIN.
4553         (BUILT_IN_NANF): Ditto.
4554         (BUILT_IN_NANL): Ditto.
4555
4556 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
4557             Revital Eres  <eres@il.ibm.com>
4558
4559         * modulo-sched.c (calculate_must_precede_follow): Address TODO
4560         regarding the order of two dependent insns in the same row.
4561
4562 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
4563
4564         * stor-layout.c (layout_decl): Do not bump the alignment of a
4565         bit-field to more than byte alignment if it is packed.
4566
4567 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
4568
4569         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
4570         e300c2 and e300c3.
4571
4572 2008-02-24  Diego Novillo  <dnovillo@google.com>
4573
4574         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
4575
4576         PR 33738
4577         * tree-vrp.c (vrp_evaluate_conditional): With
4578         -Wtype-limits, emit a warning when comparing against a
4579         constant outside the natural range of OP0's type.
4580         * c.opt (Wtype-limits): Move ...
4581         * common.opt (Wtype-limits): ... here.
4582
4583 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
4584
4585         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
4586         * config/rs6000/e300c2c3.md: New file.
4587         * config/rs6000/rs6000.c (processor_costs): Add new costs for
4588         e300c2 and e300c3.
4589         (rs6000_override_options): Add e300c2 and e300c3 cases to
4590         processor_target_table. Do not allow usage of Altivec or Spe
4591         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
4592         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
4593         * config/rs6000/rs6000.h (processor_type): Add
4594         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
4595         (ASM_CPU_SPEC): Add e300c2 and e300c3.
4596         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
4597         and ppce300c3. Include e300c2c3.md.
4598
4599 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
4600
4601         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
4602         instead of TARGET_STRICT_ALIGN.
4603
4604 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
4605
4606         * explow.c (memory_address): Assert that the generated address is
4607         valid.
4608
4609 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
4610
4611         PR target/25477
4612         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
4613         * config/darwin-ppc-ldouble-patch.def: New file.
4614         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
4615         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
4616         SUBTARGET_INIT_BUILTINS if defined.
4617         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
4618         New functions.
4619
4620 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4621
4622         PR rtl-opt/33512
4623         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
4624         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
4625
4626 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4627
4628         PR pch/35027
4629         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
4630         file" warning condtional on -Winvalid-PCH.
4631
4632 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
4633
4634         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
4635
4636 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
4637
4638         PR target/22076
4639         PR target/34256 
4640         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
4641         prevent reload from using MMX registers.
4642         (*mov<mode>_internal): Ditto.
4643         (*movv2sf_internal_rex64): Ditto.
4644         (*movv2sf_internal): Ditto.
4645
4646 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4647
4648         PR documentation/31569
4649         * doc/install.texi2html: Use makeinfo --no-number-sections.
4650
4651 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4652
4653         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
4654         ensure that we can address an entire entity > 8 bytes.  Don't
4655         generate reg+reg addressing for such data.
4656
4657 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4658
4659         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
4660         strings when optimizing for size, unless the target cares about
4661         alignment.
4662
4663 2008-02-22  Tom Tromey  <tromey@redhat.com>
4664
4665         * regclass.c (current_pass): Remove declaration.
4666
4667 2008-02-22  Anatoly Sokolov <aesok@post.ru>
4668
4669         * config/avr/libgcc.S (__RAMPZ__): Define.
4670         (__do_copy_data): Add for devices with 128KB code memory.
4671
4672 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
4673
4674         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4675         Use spe_abi.
4676         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
4677
4678 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
4679
4680         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
4681         GENNONACR_REGS.
4682
4683 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4684
4685         PR c/19999
4686         * c-typeck.c (build_binary_op): Warn about floating point
4687         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
4688
4689 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
4690
4691         PR target/34526
4692         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
4693         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
4694         add vrsave.
4695         (rs6000_override_options): Set altivec_abi as default, not override,
4696         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
4697         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
4698         is used; use new member spe_abi.
4699         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
4700         spe_abi and altivec_abi.
4701
4702 2008-02-22  Tomas Bily  <tbily@suse.cz>
4703
4704         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
4705
4706 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4707
4708         PR bootstrap/35273
4709         * config.build (build_file_translate): Set to `CMD //c' only if
4710         it works.
4711         * Makefile.in (build_file_translate): Improve comment.
4712
4713 2008-02-21  Jan Hubicka  <jh@suse.cz>
4714
4715         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
4716         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
4717         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
4718
4719 2008-02-21  Michael Matz  <matz@suse.de>
4720
4721         PR target/35264
4722         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
4723
4724 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
4725
4726         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
4727         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
4728         as insn constraint.
4729         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
4730         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
4731         SSE_VEC_FLOAT_MODE_P as insn constraint.
4732         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
4733         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
4734         sse4a_movntdf using MODEF mode iterator.
4735         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
4736         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
4737         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
4738         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
4739         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
4740         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
4741         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
4742
4743 2008-02-21  Richard Guenther  <rguenther@suse.de>
4744
4745         * tree.def (PAREN_EXPR): New tree code.
4746         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
4747         and PAREN_EXPR.
4748         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
4749         * expr.c (expand_expr_real_1): Likewise.
4750         * tree-inline.c (estimate_num_insns_1): Likewise.
4751         * tree-complex.c (expand_complex_move): Likewise.
4752         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
4753         as plain x.
4754
4755 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4756
4757         PR target/35225
4758         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
4759
4760 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4761
4762         PR target/35190
4763         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
4764
4765         * config/sh/sh.c (find_barrier): Don't go past
4766         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
4767
4768 2008-02-20  DJ Delorie  <dj@redhat.com>
4769
4770         * config/h8300/h8300.md (insv): Force source operand to be a register.
4771
4772         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
4773         as a jump, not as a plain insn.
4774         
4775 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
4776
4777         * doc/invoke.texi (Warning Options): Add new option
4778         -Wframe-larger-than=.
4779         (-Wframe-larger-than): Document.
4780
4781         * flags.h (warn_frame_larger_than, frame_larger_than_size):
4782         Add declarations for new option variables.
4783
4784         * final.c (final_start_function): Check the frame size
4785         before emission and issue a Wframe-larger-than warning.
4786
4787         * opts.c (warn_frame_larger_than, frame_larger_than_size):
4788         Add definitions for new option variables.
4789         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
4790
4791         * common.opt (Wframe-larger-than=): New option.
4792
4793 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
4794
4795         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
4796         (<sse>_div<mode>3): Ditto.
4797         (<sse>_vmdiv<mode>3): Ditto.
4798         (<sse>_vmsqrt<mode>2): Ditto.
4799         (*smax<mode>3): Ditto.
4800         (sse5_frcz<mode>2): Ditto.
4801         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
4802         as insn constraint.
4803
4804 2008-02-20  Richard Guenther  <rguenther@suse.de>
4805
4806         PR middle-end/35265
4807         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
4808         be happy with INTEGRAL_TYPE_P.
4809
4810 2008-02-20  Richard Guenther  <rguenther@suse.de>
4811
4812         * fold-const.c (split_tree): Associate floatig-point expressions
4813         if flag_associative_math is set.
4814
4815 2008-02-20  Richard Guenther  <rguenther@suse.de>
4816
4817         * tree.h (fold_real_zero_addition_p): Declare.
4818         * fold-const.c (fold_real_zero_addition_p): Export.
4819         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
4820         floating-point operations with zero and one.
4821
4822 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
4823
4824         * doc/install.texi: Correct references to CFLAGS, replacing them
4825         with BOOT_CFLAGS.  Document flags used during bootstrap for
4826         target libraries.
4827                                 
4828 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
4829
4830         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
4831         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
4832         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
4833         insn constraint.
4834         (smin<mode>3): Ditto from similar patterns.
4835         (smax<mode>3): Ditto.
4836         (*ieee_smin<mode>3): Ditto.
4837         (*ieee_smax<mode>3): Ditto.
4838         * config/i386/sse.md (sse): New mode attribute.
4839         (mov<mode>): Macroize expander from movv4sf and movv2df using
4840         SSEMODEF2P mode iterator.
4841         (<sse>_movnt<mode>): Ditto from similar patterns. Use
4842         SSE_VEC_FLOAT_MODE_P as insn constraint.
4843         (storent<mode>): Ditto.
4844         (storent<mode>): Macroize expander from storentsf and storentdf using
4845         MODEF mode iterator.
4846         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
4847         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
4848         (abs<mode>2): Ditto from similar patterns.
4849         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
4850         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
4851         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
4852         (<sse>_vmsqrt<mode>2): Ditto.
4853         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
4854         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
4855         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
4856         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
4857         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
4858         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
4859         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
4860         insn constraint.
4861         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
4862         iterator and SSE_FLOAT_MODE_P as insn constraint.
4863         (<sse>_ucomi): Ditto from similar patterns.
4864         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
4865         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
4866         SSE_VEC_FLOAT_MODE_P as insn constraint.
4867         (vcond<mode>): Ditto from similar patterns.
4868         (and<mode>3, *and<mode>3): Ditto.
4869         (<sse>_nand<mode>3): Ditto.
4870         (ior<mode>3, *ior<mode>3): Ditto.
4871         (xor<mode>3, *xor<mode>3): Ditto.
4872         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
4873         iterator and SSE_FLOAT_MODE_P as insn constraint.
4874         (*nand<mode>3): Ditto from similar patterns.
4875         (*ior<mode>3): Ditto.
4876         (*xor<mode>3): Ditto.
4877
4878 2008-02-20  Ira Rosen  <irar@il.ibm.com>
4879
4880         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
4881         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
4882         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
4883
4884 2008-02-19  Jan Hubicka  <jh@suse.cz>
4885
4886         * predict.c (tree_bb_level_predictions): Remove variable next
4887         mistakely introduced by previous commit.
4888
4889 2008-02-19  Jan Hubicka  <jh@suse.cz>
4890
4891         * predict.c (predict_paths_leading_to): Rewrite.
4892         (predict_paths_for_bb): New.
4893         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
4894
4895 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4896
4897         PR bootstrap/35218
4898         * Makefile.in (build_file_translate): New.
4899         (gcc-vers.texi): Use it for translating $(abs_srcdir).
4900         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
4901         * configure.ac (build_file_translate): Substitute it.
4902         * configure: Regenerate.
4903
4904 2008-02-19  Jan Hubicka  <jh@suse.cz>
4905
4906         PR rtl-optimization/34408
4907         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
4908         invalid sharing.
4909
4910 2008-02-19  Jan Hubicka  <jh@suse.cz>
4911
4912         PR middle-end/28779
4913         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
4914         call_expr.
4915
4916 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4917
4918         PR Ada/35186
4919         * config/i386/i386-modes.def: Revert the last DI alignment
4920         change until Ada people can look into it.
4921
4922 2008-02-19  Nick Clifton  <nickc@redhat.com>
4923
4924         * opts.c (print_specific_help): Fix typo in --help text.
4925
4926 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
4927
4928         PR target/35239
4929         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
4930         32-bit inline asm without asm alternatives for host GCC < 3.0.
4931
4932 2008-02-19  Richard Guenther  <rguenther@suse.de>
4933
4934         PR tree-optimization/34989
4935         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
4936         Allow propagation to INDIRECT_REF if we can simplify only.
4937
4938 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4939
4940         * c-common.c (warn_for_collisions_1): Use appropriate option when
4941         warning.
4942
4943 2008-02-19  Nick Clifton  <nickc@redhat.com>
4944
4945         PR other/31349
4946         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
4947         (handle_options): Fix indentation.
4948         (print_filtered_help): If no language-specific options were
4949         displayed tell the user how to list all the options supported by
4950         the language's front-end.
4951         (print_specific_help): Fix indentation and remove duplicate line.
4952         (common_handle_option): Handle the -v option.
4953         For --help enable the display of undocumented options if the -v
4954         switch has been included on the command line.
4955         For --help= check for overlaps in the arguments between the option
4956         classes and the language names and issue a warning when they
4957         cannot be disambiguated.
4958         * c.opt (v): Pass on to the common option handler.
4959
4960 2008-02-19  Revital Eres  <eres@il.ibm.com> 
4961
4962         * modulo-sched.c (sms_schedule): Change dump message when
4963         create_ddg function fails.
4964         (try_scheduling_node_in_cycle): Rename row to cycle.
4965         (print_partial_schedule): Rename CYCLE to ROW.
4966
4967 2008-02-19  Christian Bruel  <christian.bruel@st.com>
4968             Zdenek Dvorak  <ook@ucw.cz>
4969
4970         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
4971
4972 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
4973
4974         PR target/33555
4975         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
4976         (*x86_movdicc_0_m1_se): Ditto.
4977
4978 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
4979
4980         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
4981         (CMPtype): Define as __gcc_CMPtype.
4982         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
4983         (CMPtype): Define as __gcc_CMPtype.
4984
4985 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
4986
4987         Support valgrind 3.3 for --enable-checking=valgrind.
4988         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
4989         here.
4990         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
4991         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
4992         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
4993         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
4994         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
4995         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
4996         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
4997         respectively.
4998         * ggc-zone.c: Similar.
4999         * ggc-page.c: Similar.
5000
5001 2008-02-19  Paul Brook  <paul@codesourcery.com>
5002
5003         PR target/35071
5004         * config/arm/ieee754-df.S: Fix do_it typo.
5005         * config/arm/ieee754-sf.S: Fix do_it typo.
5006
5007 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5008
5009         PR target/35189
5010         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
5011         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
5012         (OPTION_MASK_ISA_SSE_SET): Likewise.
5013         (OPTION_MASK_ISA_SSE2_SET): Likewise.
5014         (OPTION_MASK_ISA_SSE3_SET): Likewise.
5015         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
5016         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
5017         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
5018         (OPTION_MASK_ISA_SSE4_SET): Likewise.
5019         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
5020         (OPTION_MASK_ISA_SSE5_SET): Likewise.
5021         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
5022         (OPTION_MASK_ISA_MMX_UNSET): Updated.
5023         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
5024         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
5025         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
5026         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
5027         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
5028         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
5029         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
5030         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
5031         (OPTION_MASK_ISA_SSE4): Removed.
5032         (ix86_handle_option): Turn on bits in ix86_isa_flags and
5033         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
5034         (override_options): Don't turn on implied SSE/MMX bits in
5035         ix86_isa_flags.
5036
5037 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5038
5039         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5040         32bit host.
5041
5042 2008-02-18  Joey Ye  <joey.ye@intel.com>
5043
5044         PR middle-end/34921
5045         * tree-nested.c (insert_field_into_struct): Set type alignment
5046         to field alignment if the former is less than the latter.
5047
5048 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
5049
5050         * BASE-VER: Set to 4.4.0.
5051
5052 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5053
5054         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
5055         * doc/cfg.texi: Likewise.
5056         * doc/extend.texi: Likewise.
5057         * doc/gty.texi: Likewise.
5058         * doc/invoke.texi: Likewise.
5059         * doc/loop.texi: Likewise.
5060         * doc/md.texi: Likewise.
5061         * doc/passes.texi: Likewise.
5062         * doc/rtl.texi: Likewise.
5063         * doc/sourcebuild.texi: Likewise.
5064         * doc/tm.texi: Likewise.
5065         * doc/tree-ssa.texi: Likewise.
5066
5067 2008-02-17  Richard Guenther  <rguenther@suse.de>
5068
5069         PR middle-end/35227
5070         * tree-complex.c (init_parameter_lattice_values): Handle parameters
5071         without default definition.
5072
5073 2008-02-17  Richard Guenther  <rguenther@suse.de>
5074
5075         PR tree-optimization/35231
5076         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
5077         if A | B != 1.
5078
5079 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
5080
5081         Revert:
5082         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
5083         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5084         libgcc_cmp_return mode.
5085
5086 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5087
5088         PR c/28368
5089         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
5090
5091 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
5092
5093         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
5094         multilibs.
5095
5096 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5097
5098         * doc/c-tree.texi: Use `@.' where appropriate.
5099         * doc/extend.texi: Likewise.
5100         * doc/install.texi: Likewise.
5101         * doc/invoke.texi: Likewise.
5102         * doc/loop.texi: Likewise.
5103         * doc/makefile.texi: Likewise.
5104         * doc/md.texi: Likewise.
5105         * doc/passes.texi: Likewise.
5106         * doc/standards.texi: Likewise.
5107         * doc/tm.texi: Likewise.
5108
5109 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5110
5111         PR middle-end/35196
5112         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
5113         in entry_bb.
5114         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
5115         rather than in entry_bb.
5116
5117 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5118
5119         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
5120         libgcc_cmp_return mode.
5121
5122 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
5123
5124         PR middle-end/35130
5125         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
5126         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
5127
5128 2008-02-15  Richard Guenther  <rguenther@suse.de>
5129             Zdenek Dvorak  <ook@ucw.cz>
5130
5131         PR tree-optimization/35164
5132         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
5133         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
5134         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5135         Only propagate addresses which do not have abnormal SSA_NAMEs
5136         in their operands.
5137
5138 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
5139
5140         PR target/35088
5141         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
5142
5143 2008-02-15  Jan Hubicka  <jh@suse.cz>
5144
5145         PR middle-end/35149
5146         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
5147
5148 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5149
5150         PR middle-end/34621
5151         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
5152         when calculating alignment_pad.
5153
5154 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
5155
5156         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
5157         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
5158         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
5159         and STACK_BOUNDARY define.
5160
5161 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
5162
5163         PR preprocessor/35061
5164         * c-pragma.c (handle_pragma_pop_macro): Check that
5165         pushed_macro_table has been allocated.
5166
5167 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
5168
5169         PR middle-end/35136
5170         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
5171         (force_gimple_operand): Likewise.
5172         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
5173         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
5174         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
5175         (find_interesting_uses_address): Check addressability and alignment
5176         of the base expression only after substituting bases of IVs into it.
5177
5178 2008-02-14  Michael Matz  <matz@suse.de>
5179
5180         PR target/34930
5181         * function.c (instantiate_virtual_regs_in_insn): Reload address
5182         before falling back to reloading the whole operand.
5183
5184 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
5185
5186         * config/s390/s390.c (s390_mainpool_start): Emit the pool
5187         before the first section switch note.
5188
5189 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5190
5191         * doc/bugreport.texi: Update copyright years.
5192         * doc/c-tree.texi: Likewise.
5193         * doc/cfg.texi: Likewise.
5194         * doc/cpp.texi: Likewise.
5195         * doc/cppinternals.texi: Likewise.
5196         * doc/fragments.texi: Likewise.
5197         * doc/frontends.texi: Likewise.
5198         * doc/gcc.texi: Likewise.
5199         * doc/gty.texi: Likewise.
5200         * doc/hostconfig.texi: Likewise.
5201         * doc/implement-c.texi: Likewise.
5202         * doc/libgcc.texi: Likewise.
5203         * doc/loop.texi: Likewise.
5204         * doc/makefile.texi: Likewise.
5205         * doc/options.texi: Likewise.
5206         * doc/passes.texi: Likewise.
5207         * doc/rtl.texi: Likewise.
5208         * doc/sourcebuild.texi: Likewise.
5209         * doc/standards.texi: Likewise.
5210         * doc/tree-ssa.texi: Likewise.
5211         * doc/trouble.texi: Likewise.
5212
5213         * doc/extend.texi: Use @: or add comma where appropriate.
5214         * doc/invoke.texi: Likewise.
5215         * doc/tm.texi: Likewise.
5216
5217 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
5218
5219         PR target/34393
5220         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
5221         to a reg.
5222
5223 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
5224
5225         * doc/md.texi (clz, ctz): Add reference.
5226         * doc/rtl.texi (clz, ctz): Likewise.
5227
5228 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5229
5230         PR other/35148
5231         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
5232         srcdir.
5233
5234 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
5235
5236         * config/s390/s390.c (struct constant_pool): New field
5237         emit_pool_after added.
5238         (s390_mainpool_start): Set the emit_pool_after flag according
5239         to the section switch notes.
5240         (s390_mainpool_finish): Consider emit_pool_after when emitting
5241         the literal pool at the end of the function.
5242         (s390_chunkify_start): Force literal pool splits at section
5243         switch notes.
5244
5245 2008-02-13  Michael Matz  <matz@suse.de>
5246
5247         PR debug/35065
5248         * var-tracking.c (clobber_variable_part): Correctly traverse the
5249         list.
5250
5251 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5252
5253         PR 29673
5254         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
5255         Add -fdump-ipa-inline.
5256         * tree-dump.c (dump_files): Remove tree-inlined dump.
5257         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
5258         
5259 2008-02-12  Richard Guenther  <rguenther@suse.de>
5260
5261         PR tree-optimization/35171
5262         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
5263         default defs.
5264
5265 2008-02-12  Richard Guenther  <rguenther@suse.de>
5266
5267         PR middle-end/35163
5268         * fold-const.c (fold_widened_comparison): Use get_unwidened in
5269         value-preserving mode.  Disallow final truncation.
5270
5271 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
5272
5273         PR middle-end/35136
5274         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
5275         code from here to...
5276         (force_gimple_operand): ...here.
5277
5278 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
5279
5280         PR c++/35144
5281         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
5282         non-compatible pointers.
5283         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
5284         different FIELD_DECLs, try harder by comparing field offsets, sizes
5285         and types.
5286
5287         PR inline-asm/35160
5288         * function.c (match_asm_constraints_1): Don't replace the same input
5289         multiple times.
5290
5291 2008-02-12  Anatoly Sokolov <aesok@post.ru>
5292
5293         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
5294         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
5295         (expand_epilogue): Restore RAMPZ register.
5296         * config/avr/avr.md (RAMPZ_ADDR): New constant.
5297
5298 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
5299
5300         * config/i386/cygwin.asm: (__alloca): Correct calling
5301         convention and alignment.
5302         (__chkstk): Force 8 byte stack alignment.
5303
5304 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
5305             Richard Guenther  <rguenther@suse.de>
5306
5307         PR tree-optimization/33992
5308         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
5309         the zero we compare against.
5310
5311 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5312
5313         PR libfortran/35063
5314         * gthr-win32.h (__gthread_mutex_destroy_function): New function
5315         to CloseHandle after unlocking to prevent accumulation of handle
5316         count.
5317
5318 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5319
5320         PR middle_end/34150
5321         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
5322         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
5323         and update LABEL_NUSES during and after reload.
5324
5325 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
5326
5327         PR middle-end/34627
5328         * combine.c (simplify_if_then_else): Make sure the comparison is
5329         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
5330
5331 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
5332
5333         PR bootstrap/35051
5334         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
5335         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
5336         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
5337         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
5338         * tree.h (get_type_static_bounds): Likewise.
5339
5340 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5341
5342         * doc/invoke.texi (Option Summary, C++ Dialect Options)
5343         (Objective-C and Objective-C++ Dialect Options, Warning Options):
5344         Make -Wfoo language annotations match what the compiler outputs.
5345
5346 2008-02-08  Sa Liu  <saliu@de.ibm.com>
5347
5348         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
5349         intrinsics spu_convts, spu_convtu, spu_convtf.
5350         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
5351
5352 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
5353
5354         * doc/extend.texi (Function Attributes) <noinline>: Mention
5355         asm ("") as method to keep calls.
5356
5357 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5358
5359         PR other/32754
5360         * doc/options.texi (Options): Replace references to opts.sh with
5361         optc-gen.awk.
5362         * opts-common.c: Likewise.
5363         * optc-gen.awk: Likewise.
5364         
5365 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
5366
5367         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
5368
5369 2008-02-07  Richard Henderson  <rth@redhat.com>
5370
5371         PR rtl-opt/33410
5372         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
5373         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
5374         funny mode.
5375
5376 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
5377
5378         PR tree-optimization/35085
5379         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
5380         for operand entry oe2 in addition to operand entry oe3 in order to
5381         expose more opportunities for vectorizer sum reduction.
5382
5383 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5384
5385         PR other/35107
5386         * Makefile.in (LIBS): Remove $(GMPLIBS).
5387         (cc1-dummy, cc1): Add $(GMPLIBS).
5388
5389 2008-02-06  Jan Hubicka  <jh@suse.cz>
5390
5391         PR target/23322
5392         * i386.md (moddf_integer): Do not produce partial memory stalls for
5393         targets where it hurts.
5394
5395 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
5396
5397         PR target/35083
5398         * optabs.c (expand_float): Do not check for decimal modes when
5399         expanding unsigned integer through signed conversion.
5400
5401 2008-02-06  Nick Clifton  <nickc@redhat.com>
5402
5403         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
5404         inside the clobber with a match_operand and duplicated operand
5405         number in the constraint.
5406         (ineqbranchsi): Delete redundant comment.
5407
5408 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
5409
5410         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
5411         builtin_define ("__USE_INIT_FINI__").
5412         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
5413         -msx multilibs.
5414         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
5415
5416 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5417
5418         PR documentation/30330
5419         * doc/invoke.texi (C++ Dialect Options)
5420         (Objective-C and Objective-C++ Dialect Options, Warning Options):
5421         For each warning option -Wfoo that allows -Wno-foo, ensure both
5422         -Wfoo and -Wno-foo are listed in the option index.  Fix index
5423         entry of -Wswitch-default, index -Wnormalized= including the
5424         `=', and -Wlarger-than-@var{len} including @var{len}.
5425
5426 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
5427
5428         * config/i386/i386.md (floatunssisf2): Use
5429         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
5430         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
5431         Macroize expander using MODEF mode iterator.
5432
5433 2008-02-05  Diego Novillo  <dnovillo@google.com>
5434
5435         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
5436
5437         PR 33738
5438         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
5439
5440 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5441
5442         PR other/35070
5443         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
5444
5445 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
5446
5447         PR target/35084
5448         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
5449         to indicate if a message should be generated.
5450         (init_cumulative_args): Updated.
5451         (function_value_32): Likewise.
5452
5453 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
5454
5455         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
5456
5457 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
5458
5459         PR target/35083
5460         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
5461         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
5462
5463 2008-02-04  Diego Novillo  <dnovillo@google.com>
5464
5465         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
5466
5467         PR 33738
5468         * tree-vrp.c (vrp_evaluate_conditional): With
5469         -Wtype-limits, emit a warning when comparing against a
5470         constant outside the natural range of OP0's type.
5471
5472 2008-02-04  Richard Guenther  <rguenther@suse.de>
5473
5474         PR middle-end/33631
5475         * expr.c (count_type_elements): Give for unions instead of
5476         guessing.
5477
5478 2008-02-04  Richard Guenther  <rguenther@suse.de>
5479
5480         PR middle-end/35043
5481         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
5482         to TYPE_DOMAINs base type instead of using bitsizetype here.
5483
5484 2008-02-03  Jason Merrill  <jason@redhat.com>
5485
5486         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
5487
5488 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5489
5490         PR other/29972
5491         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
5492         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
5493         (RS/6000 and PowerPC Options): Fix typos and markup.
5494         * doc/passes.texi (Tree-SSA passes): Likewise.
5495
5496 2008-02-02  Michael Matz  <matz@suse.de>
5497
5498         PR target/35045
5499         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
5500         from record_last_reg_set_info.
5501         (record_last_reg_set_info): Take an RTX argument, iterate over all
5502         constituent hardregs.
5503         (record_last_set_info, record_opr_changes): Change calls to
5504         new signature or to record_last_reg_set_info_regno.
5505
5506 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
5507
5508         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
5509
5510 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
5511
5512         PR rtl-optimization/34773
5513         * reg-notes.def (EQUAL): Mention significance of combination of
5514         REG_EQUAL and REG_RETVAL.
5515         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
5516         insn that has a REG_RETVAL.
5517
5518 2008-02-01  Roger Sayle  <roger@eyesopen.com>
5519
5520         PR bootstrap/33781
5521         * configure.ac (--enable-fixed-point): Disable unless explicitly
5522         requested on IRIX.
5523         * configure: Regenerate.
5524
5525 2008-02-01  Richard Guenther  <rguenther@suse.de>
5526
5527         PR other/35042
5528         * invoke.texi (-finline-limit): Remove no longer true parts
5529         of the documentation.  Note that there is no default value.
5530
5531 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
5532             Mark Mitchell  <mark@codesourcery.com>
5533             Ben Elliston  <bje@au.ibm.com>
5534
5535         PR c/29326
5536         * doc/extend.texi (Other Builtins): Document.
5537
5538 2008-01-31  Tom Browder <tom.browder@gmail.com>
5539
5540         * doc/c-tree.texi (Types): Fix grammar.
5541         (Expression trees): Ditto.
5542         * doc/passes.texi (Tree-SSA passes): Ditto.
5543         
5544         * doc/configterms.texi (Configure Terms): Fix typo.
5545         * doc/cpp.texi (Common Predefined Macros): Ditto.
5546         * doc/md.texi (Machine Constraints): Ditto.
5547         
5548         * doc/makefile.texi (Makefile): Add comma.
5549
5550 2008-01-31  Tom Browder  <tom.browder@gmail.com>
5551             Gerald Pfeifer  <gerald@pfeifer.com>
5552         
5553         * doc/sourcebuild.texi (Front End): Remove references to CVS
5554         and CVSROOT/modules.
5555         (Texinfo Manuals): Replace reference to CVS by one to SVN.
5556         (Back End): Remove reference to CVS.
5557
5558 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
5559
5560         PR target/34900
5561         * config/mips/mips.c (gen_load_const_gp): New function, taking a
5562         comment from...
5563         (mips16_gp_pseudo_reg): ...here.
5564         * config/mips/mips.md (load_const_gp): Replace with...
5565         (load_const_gp_<mode>): ...this :P-based insn.
5566
5567 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5568
5569         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
5570         options. Minor fixes.
5571         (-std): Move reference to standards closer to where language
5572         standards are first mentioned.
5573         
5574 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
5575
5576         PR rtl-optimization/34995
5577         * reload.c (alternative_allows_const_pool_ref): Take an rtx
5578         parameter and return a bool.  If the rtx parameter is nonnull,
5579         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
5580         (find_reloads): Update call accordingly.  Pass the new operand
5581         if it needed no address reloads, otherwise pass null.
5582
5583 2008-01-30  Richard Henderson  <rth@redhat.com>
5584
5585         PR c/34993
5586         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
5587         for unbounded arrays.
5588
5589 2008-01-30  Silvius Rus  <rus@google.com>
5590
5591         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
5592
5593 2008-01-30  Jan Hubicka  <jh@suse.cz>
5594
5595         PR target/34982
5596         * i386.c (init_cumulative_args): Use real function declaration when
5597         calling locally.
5598
5599 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
5600
5601         PR rtl-optimization/34998
5602         * global.c (build_insn_chain): Treat non-subreg_lowpart
5603         SUBREGs of pseudos as clobbering all the words covered by the
5604         SUBREG, not just all the bytes.
5605         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
5606         original df_ref rather than an extract parameter.
5607         (global_conflicts): Update call accordingly.
5608
5609 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
5610
5611         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
5612         the overflow check to make it easier to read.
5613         (__fixtfdi): Change the type of the ll member in union
5614         long_double to UDItype_x.
5615
5616 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
5617
5618         PR middle-end/34969
5619         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
5620         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
5621         * tree-inline.c (fold_marked_statements): Call
5622         cgraph_update_edges_for_call_stmt if folding a call statement.
5623         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
5624         debug_generic_stmt calls, reset it back afterwards.
5625
5626         PR c/35017
5627         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
5628         static decls.
5629         * c-typeck.c (build_external_ref): Don't pedwarn about
5630         static vars in current function's scope.
5631
5632 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
5633
5634         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
5635
5636 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
5637
5638         PR c/35002
5639         * ipa-struct-reorg.c: Fix spelling.
5640         * params.def: Ditto.
5641
5642 2008-01-29  Richard Guenther  <rguenther@suse.de>
5643
5644         PR middle-end/35006
5645         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
5646         field.
5647         * tree-inline.c (remap_type): Increment remapping_type_depth
5648         around remapping types.
5649         (copy_body_r): Only add referenced variables if they are referenced
5650         from code, not types.
5651
5652 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
5653
5654         PR c++/34055
5655         PR c++/34103
5656         PR c++/34219
5657         PR c++/34606
5658         PR c++/34753
5659         PR c++/34754
5660         PR c++/34755
5661         PR c++/34919
5662         PR c++/34961
5663         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
5664         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
5665
5666 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
5667
5668         PR target/34412
5669         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
5670         pointer for tiny stack.
5671
5672 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
5673
5674         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
5675
5676 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
5677
5678         * config/vx-common.h: Fix typo in comment.
5679
5680 2008-01-28  Ian Lance Taylor  <iant@google.com>
5681
5682         PR c++/34862
5683         PR c++/33407
5684         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
5685         coalesce pointers if they have different DECL_NO_TBAA_P values.
5686         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
5687         between variables with different DECL_NO_TBAA_P values.
5688
5689 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
5690
5691         PR 31535
5692         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
5693         are not legitimate small data references on SPE targets.
5694
5695 2008-01-28  David Daney  <ddaney@avtrex.com>
5696
5697         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
5698
5699 2008-01-28  David Daney  <ddaney@avtrex.com>
5700
5701         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
5702
5703 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
5704
5705         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
5706         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
5707         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
5708         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
5709         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
5710         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
5711         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
5712         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
5713
5714 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5715
5716         * basic-block.h (condjump_equiv_p): Fix comment.
5717
5718 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5719
5720         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
5721         print_generic_stmt_indented): Fix comment.
5722
5723 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
5724
5725         * configure.ac (__stack_chk_fail): Add detecion for availability
5726         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
5727         * configure: Regenerate.
5728
5729 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
5730
5731         PR middle-end/34688
5732         * final.c (output_addr_const): Handle TRUNCATE.
5733
5734 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
5735
5736         PR target/34711
5737         * tree-ssa-loop-ivopts.c (comp_cost): New type.
5738         (zero_cost, infinite_cost): New constants.
5739         (struct cost_pair): Change type of cost to comp_cost.
5740         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
5741         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
5742         New functions.
5743         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
5744         split_address_cost, ptr_difference_cost, difference_cost,
5745         get_computation_cost_at, get_computation_cost,
5746         determine_use_iv_cost_generic, determine_use_iv_cost_address,
5747         determine_use_iv_cost_condition, determine_use_iv_costs,
5748         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
5749         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
5750         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
5751         Change type of cost to comp_cost.
5752         (determine_iv_cost): Increase cost of non-original ivs, instead
5753         of decreasing the cost of original ones.
5754         (get_address_cost): Indicate the complexity of the addressing mode 
5755         in comp_cost.
5756         (try_add_cand_for): Prefer using ivs not specific to some object.
5757         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
5758
5759 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
5760             Janis Johnson  <janis187@us.ibm.com>
5761
5762         PR target/34814
5763         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
5764         (TARGET_INSTANTIATE_DECLS): Likewise.
5765         * target.h (expand_to_rtl_hook): New target hook.
5766         (instantiate_decls): Likewise.
5767         * function.c (instantiate_decl): Make non-static.  Rename to...
5768         (instantiate_decl_rtl): ... this.
5769         (instantiate_expr): Use instantiate_decl_rtl.
5770         (instantiate_decls_1): Likewise.
5771         (instantiate_decls): Likewise.
5772         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
5773         * function.h (instantiate_decl_rtl): Add prototype.
5774         * cfgexpand.c (target.h): New include.
5775         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
5776         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
5777         (TARGET_INSTANTIATE_DECLS): Likewise.
5778         (TARGET_INITIALIZER): New target hooks added.
5779         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
5780         New prototype.
5781         * config/rs6000/rs6000.c (tree-flow.h): New include.
5782         (machine_function): Add sdmode_stack_slot field.
5783         (rs6000_alloc_sdmode_stack_slot): New function.
5784         (rs6000_instantiate_decls): Likewise.
5785         (rs6000_secondary_memory_needed_rtx): Likewise.
5786         (rs6000_check_sdmode): Likewise.
5787         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
5788         (TARGET_INSTANTIATE_DECLS): Likewise.
5789         (rs6000_hard_regno_mode_ok): Allow SDmode.
5790         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
5791         (rs6000_emit_move): Handle SDmode.
5792         (function_arg_advance): Likewise.
5793         (function_arg): Likewise.
5794         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
5795         SDmode var args for 32-bit compiles.
5796         (rs6000_secondary_reload_class): Handle SDmode.
5797         (rs6000_output_function_epilogue): Likewise.
5798         (rs6000_function_value): Simplify if statement.
5799         (rs6000_libcall_value): Likewise.
5800         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
5801         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
5802         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
5803         (movsd_hardfloat): New define_insn.
5804         (movsd_softfloat): Likewise.
5805         (movsd_store): Likewise.
5806         (movsd_load): Likewise.
5807         (extendsddd2): Likewise.
5808         (extendsdtd2): Likewise.
5809         (truncddsd2): Likewise.
5810         (movdd_hardfloat64): Fixup comment.
5811         (UNSPEC_MOVSD_LOAD): New constant.
5812         (UNSPEC_MOVSD_STORE): Likewise.
5813
5814 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
5815
5816         PR c++/34965
5817         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
5818         TRUTH_XOR_EXPR.
5819         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
5820         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
5821         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
5822         and TRUTH_XOR_EXPR.
5823
5824 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
5825
5826         PR target/34794
5827         * config.gcc: Separate AIX 5.3 from AIX 6.1.
5828         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5829         __LONGDOUBLE128 too.
5830         * config/rs6000/aix61.h: New file.
5831
5832 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
5833
5834         PR rtl-optimization/34959
5835         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
5836         popcount and parity rtxes the same mode as their operand.
5837         Truncate or extend the result to the return value's mode
5838         if necessary.
5839
5840 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
5841
5842         PR target/34981
5843         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
5844         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
5845         to GOT_VERSION_REGNUM.
5846         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
5847         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
5848         * config/mips/mips.c (mips_emit_call_insn): New function.
5849         (mips_call_tls_get_addr): Call mips_expand_call directly.
5850         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
5851         emit_call_insn.
5852         (mips16_build_call_stub): Likewise.  Return the call insn or null.
5853         (mips_expand_call): Update the call to mips16_build_call_stub
5854         accordingly and a remove redundant condition.  Assert that MIPS16
5855         stubs do not use lazy binding.  Use mips_emit_call_insn and return
5856         the call insn.
5857         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
5858         TARGET_USE_GOT.
5859         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
5860         (mips_avoid_hazard): Remove hazard_set handling.
5861         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
5862         (UNSPEC_RESTORE_GP): ...this.
5863         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
5864         (FAKE_CALL_REGNO): Rename to...
5865         (GOT_VERSION_REGNUM): ...this.
5866         (type): Add "ghost" value.  Add an associated insn reservation.
5867         (hazard_set): Remove.
5868         (exception_receiver): Rename to...
5869         (restore_gp): ...this and update the unspec identifier accordingly.
5870         (exception_receiver, nonlocal_got_receiver): New expanders.
5871         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
5872         FAKE_CALL_REGNO.  Remove hazard_set attribute.
5873         (set_got_version, update_got_version): New patterns.
5874
5875 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
5876
5877         PR target/34970
5878         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
5879
5880 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
5881
5882         PR other/31955
5883         * doc/install.texi2html: Generate gcc-vers.texi.
5884
5885 2008-01-25  DJ Delorie  <dj@redhat.com>
5886
5887         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5888
5889 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
5890
5891         * config/c4x: Remove directory.
5892         * config.gcc (crx-*, mt-*): Mark obsolete.
5893         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
5894         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
5895         sh-*-rtemscoff*): Remove cases.
5896         * defaults.h (C4X_FLOAT_FORMAT): Remove.
5897         * real.c (encode_c4x_single, decode_c4x_single,
5898         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
5899         c4x_extended_format): Remove.
5900         * real.h (c4x_single_format, c4x_extended_format): Remove.
5901         * doc/extend.texi (interrupt, naked): Remove mention of attributes
5902         on C4x.
5903         (Pragmas): Remove comment about c4x pragmas.
5904         * doc/install.texi (c4x): Remove target-specific instructions.
5905         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
5906         * doc/md.texi (Machine Constraints): Remove C4x documentation.
5907         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
5908         refer to C4x source files as examples.
5909         (C4X_FLOAT_FORMAT): Remove documentation.
5910
5911 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
5912
5913         * config/bfin/bfin.c (override_options): Reorder tests so that
5914         flag_pic gets enabled for -msep-data.
5915
5916 2008-01-25  Richard Guenther  <rguenther@suse.de>
5917
5918         PR middle-end/32244
5919         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
5920         to its bitfield precision if required.
5921
5922 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
5923
5924         PR middle-end/33880
5925         * tree-nested.c (walk_omp_for): New function.
5926         (convert_nonlocal_reference, convert_local_reference): Call
5927         walk_omp_for on OMP_FOR.
5928         (convert_call_expr): Call walk_body on OMP_FOR's
5929         OMP_FOR_PRE_INIT_BODY.
5930
5931 2008-01-25  Richard Guenther  <rguenther@suse.de>
5932
5933         PR tree-optimization/34966
5934         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
5935         default defs and PHI_NODEs we have to insert after the
5936         defining statement.
5937
5938 2008-01-24  Nick Clifton  <nickc@redhat.com>
5939
5940         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
5941         Provide a default definition.
5942         (LIBGCC2_UNITS_PER_WORD): Likewise.
5943
5944         * config/stormy16/stormy16.c: Include df.h for the prototype
5945         for df_regs_ever_live_p.
5946         (xstormy16_expand_builtin_va_start): Convert the stack offset
5947         into a component_ref and then use POINTER_PLUS_EXPR to add it
5948         to the incoming_virtual_args_rtx.
5949         (xstormy16_gimplify_va_arg_expr): Rename to
5950         xstormy16_gimplify_va_arg_expr.
5951         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
5952         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
5953         xstormy16_gimplify_va_arg_expr.
5954         Fix up some formatting issues.
5955
5956         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
5957         Move to predicates.md.
5958         (xs_hi_general_operand): Likewise.
5959         (xs_hi_nonmemory_operand): Likewise.
5960         * config/stormy16/predicates.md:
5961         (xstormy16_carry_plus_operand): New predicate.
5962         (xs_hi_general_operand): New predicate.
5963         (xs_hi_nonmemory_operand): New predicate.
5964         * config/stormy16/stormy16-protos.h:
5965         (xstormy16_carry_plus_operand): Delete prototype.
5966         (xs_hi_general_operand): Likewise.
5967         (xs_hi_nonmemory_operand): Likewise.
5968
5969         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
5970         modifiers as they are no longer needed and they can trigger
5971         reload spill failures.
5972
5973         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
5974         with a match_operand in order to help reload.
5975
5976         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
5977         constraint with 'e' for the 8th alternative as this version of
5978         the mov.w instruction only accepts the lower 8 registers.
5979
5980 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
5981
5982         PR target/34856
5983         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
5984         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
5985         vector elements.
5986
5987 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
5988
5989         PR middle-end/33333
5990         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
5991
5992 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
5993
5994         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
5995         New functions.
5996         (remove_structure): Update allocations list before removing structure.
5997         
5998 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
5999
6000         * ipa-struct-reorg.c (is_safe_cond_expr, 
6001         create_new_stmts_for_cond_expr): Use integer_zerop function,
6002         that recognize not only zero-pointer, but zero-integer too.
6003
6004 2008-01-25  Ben Elliston  <bje@au.ibm.com>
6005
6006         PR other/22232
6007         * fixproto: Escape "." in sed expression that strips leading "./".
6008
6009 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6010
6011         PR driver/34904
6012         * gcc.c (SWITCH_OK): Removed.
6013         (SWITCH_LIVE): Changed to bit.
6014         (SWITCH_FALSE): Likewise.
6015         (SWITCH_IGNORE): Likewise.
6016         (switchstr): Change live_cond to unsigned int.
6017         (process_command): Replace SWITCH_OK with 0.
6018         (do_self_spec): Likewise.
6019         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
6020         (give_switch): Likewise.
6021         (used_arg): Likewise.
6022         (do_spec_1): Set the SWITCH_IGNORE bit.
6023         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
6024         bits.  Set the SWITCH_LIVE bit.
6025
6026 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6027
6028         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
6029
6030 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6031
6032         PR tree-optimization/34472
6033         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
6034         parameter to a "bool *" and set *DATA to false if there is
6035         an unsafe access.  Do not delete the structure here.
6036         (check_cond_exprs): Delete it here instead.
6037         (check_cond_exprs, exclude_cold_structs): Do not increase
6038         I when removing a structure.
6039
6040 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
6041
6042         PR target/34856
6043         * config/i386/i386.c (ix86_expand_vector_init): Consider only
6044         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
6045
6046 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
6047
6048         PR middle-end/34934
6049         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
6050         a fixed vector for stack.
6051
6052 2008-01-24  Ben Elliston  <bje@au.ibm.com>
6053
6054         PR c++/25701
6055         * doc/gcc.texi (Software development): Add a direntry for g++.
6056         
6057 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
6058
6059         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
6060         stale and straggling -fforce-addr comments above.
6061
6062         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
6063         define.
6064         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
6065         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
6066
6067 2008-01-23  Michael Matz  <matz@suse.de>
6068
6069         PR debug/34895
6070         * dwarf2out.c (force_type_die): Use modified_type_die instead of
6071         gen_type_die.
6072
6073 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
6074
6075         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
6076         malloc result type.
6077
6078 2008-01-23 Anatoly Sokolov <aesok@post.ru>
6079
6080         * config/avr/avr.c (avr_current_arch): New variable.
6081         (avr_arch_types): Add 'avr31' and 'avr51' entries.
6082         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
6083         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
6084         (avr_override_options): Init 'avr_current_arch'. 
6085         (base_arch_s): Move from here...
6086         * config/avr/avr.h (base_arch_s): ... here. Add new members 
6087         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
6088         'mega' to 'have_jmp_call'.
6089         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
6090         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
6091         macros.
6092         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
6093         architectures.
6094         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
6095         MULTILIB_MATCHES): (Ditto.).
6096
6097 2008-01-23  Richard Guenther  <rguenther@suse.de>
6098
6099         PR middle-end/31529
6100         * cgraphunit.c (cgraph_reset_node): Always mark the node
6101         not reachable if it is not queued already.
6102
6103 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
6104
6105         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
6106         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
6107         (cputype_selected): New static variable.
6108         (bfin_handle_option): Set it if -mcpu is used.
6109         (override_option): Select default set of workarounds if no cpu type
6110         selected on the command line.
6111         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
6112
6113         From  Michael Frysinger  <michael.frysinger@analog.com>
6114         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
6115         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
6116
6117         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
6118         for bf547, bf523, bf524, and bf526.
6119         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
6120         bf526.
6121         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6122         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
6123         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
6124         __ADSPBF547__ and __ADSPBF54x__ for bf547.
6125         * doc/invoke.texi (Blackfin Options): Document that
6126         -mcpu now accept bf547, bf523, bf524, and bf526.
6127
6128 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
6129
6130         PR rtl-optimization/34628
6131         * combine.c (try_combine): Stop and undo after the first combination
6132         if an autoincrement side-effect on the first insn has effectively
6133         been lost.
6134
6135 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
6136
6137         PR target/34529
6138         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
6139         Offset addresses are not valid for Altivec or paired float modes.
6140
6141 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
6142
6143         PR c++/34607
6144         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
6145         if DECL_INITIAL (decl) is error_mark_node.
6146
6147         PR c++/34914
6148         * c-common.c (handle_vector_size_attribute): Only allow
6149         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
6150         the same way as pointer, array etc. types.
6151         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
6152
6153         PR c++/34917
6154         * tree.c (build_type_attribute_qual_variant): Call
6155         build_qualified_type if attributes are equal, but quals are not.
6156
6157 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6158
6159         PR 32102
6160         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
6161         * flags.h (warn_strict_aliasing): Remove.
6162         (warn_strict_overflow): Remove.
6163         * opts.c (warn_strict_aliasing): Remove.
6164         (warn_strict_overflow): Remove.
6165         * c-opts.c (c_common_handle_option): -Wall only sets
6166         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
6167         (c_common_post_options): Give default values to -Wstrict-aliasing
6168         and -Wstrict-overflow if they are uninitialized.
6169         * common.opt (Wstrict-aliasing): Specify Var and Init.
6170         (Wstrict-overflow): Likewise.
6171
6172 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
6173
6174         PR rtl-optimization/26854
6175         PR rtl-optimization/34400
6176         PR rtl-optimization/34884
6177         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
6178         DF_RD->gen.
6179         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
6180         (df_rd_bb_info.expanded_lr_out): Deleted
6181         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
6182         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
6183         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6184         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6185         Removed code to allocate, initialize or free expanded_lr_out.
6186         (df_rd_bb_local_compute_process_def): Restructured to make more
6187         understandable.
6188         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
6189         sets if the sets are being trimmed.
6190
6191 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6192
6193         PR bootstrap/32287
6194         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
6195         (as_vers): Likewise.
6196         * configure: Regenerated.
6197
6198 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6199
6200         PR middle-end/33092
6201         * tree-pass.h (pass_build_alias): New pass.
6202         * tree-ssa-alias.c (gate_build_alias): New.
6203         (pass_build_alias): New.
6204         * passes.c (init_optimization_passes): Add pass_build_alias after
6205         pass_create_structure_vars.
6206
6207 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
6208
6209         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
6210         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
6211         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
6212         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
6213         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
6214         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
6215         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
6216         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
6217         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
6218         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
6219         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
6220         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
6221         * config/s390/s390.md (FP_ALL): New mode iterator.
6222         (_d): New mode attribute.
6223         ("*signbit<mode>2>"): Changed mode of first operand.
6224         ("isinf<mode>2"): Changed mode of first operand.
6225         ("*TDC_insn"): Adaptation for DFP modes.
6226
6227 2008-01-22  Ben Elliston  <bje@au.ibm.com>
6228
6229         * tree.c (check_qualified_type): Improve function description.
6230
6231 2008-01-21  Jason Merrill  <jason@redhat.com>
6232
6233         PR c++/34196
6234         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
6235         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
6236         if it is set.
6237
6238 2008-01-21  DJ Delorie  <dj@redhat.com>
6239
6240         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
6241         return zero.
6242
6243 2008-01-21  Richard Guenther  <rguenther@suse.de>
6244
6245         PR middle-end/34856
6246         * tree-cfg.c (verify_expr): Allow all invariant expressions
6247         instead of just constant class ones as reference argument.
6248         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
6249         like any other constant.
6250         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6251
6252 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
6253
6254         * regmove.c (fixup_match_1): Update call crossed frequencies.
6255
6256 2008-01-21  Richard Guenther  <rguenther@suse.de>
6257
6258         PR c/34885
6259         * tree-inline.c (setup_one_parameter): Deal with mismatched
6260         types using a VIEW_CONVERT_EXPR.
6261
6262 2008-01-21  Alon Dayan  <alond@il.ibm.com>
6263             Olga Golovanevsky  <olga@il.ibm.com>
6264         
6265         PR tree-optimization/34701
6266         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
6267         when the structure size is not a power of 2.
6268
6269 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
6270
6271         * doc/install.texi: Add doc for --enable-checking=df.
6272         
6273 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6274
6275         PR rtl-optimization/34808
6276         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
6277
6278 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6279
6280         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
6281         input.
6282
6283 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
6284
6285         PR rtl-optimization/26854
6286         PR rtl-optimization/34400
6287         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
6288         DF_RD->gen.
6289         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
6290         (df_rd_bb_info.expanded_lr_out): New.
6291         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
6292         * loop_iv.c (iv_analysis_loop_init): Ditto.
6293         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
6294         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
6295         Added code to allocate, initialize or free expanded_lr_out.
6296         (df_rd_bb_local_compute_process_def): Restructured to make
6297         more understandable.
6298         (df_rd_confluence_n): Add code to do nothing with fake edges and
6299         code to no apply invalidate_by_call sets if the sets are being trimmed.
6300         (df_lr_local_finalize): Renamed to df_lr_finalize.
6301         (df_live_local_finalize): Renamed to df_live_finalize.
6302
6303 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
6304
6305         PR target/34831
6306         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
6307         deciding whether to use reciprocal instructions.
6308
6309 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
6310
6311         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
6312         dwarf2out_note_section_used if cold_text_section is NULL.
6313
6314 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
6315
6316         PR gcov-profile/34610
6317         * tree-cfg.c (make_edges): Mark both outgoing edges from
6318         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
6319         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
6320         from OMP_FOR and OMP_CONTINUE outgoing edges.
6321
6322         * tree-profile.c (tree_profiling): Return early if
6323         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
6324         at the end.
6325         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
6326         from cfun to child_cfun.
6327         * function.h (struct function): Add after_tree_profile bit.
6328
6329 2008-01-19 Anatoly Sokolov <aesok@post.ru>
6330
6331         * config/avr/avr.S (_exit): Disable interrupt.
6332
6333 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
6334             Steven Bosscher  <stevenb.gcc@gmail.com>
6335
6336         PR rtl-optimization/26854
6337         PR rtl-optimization/34400
6338         * df-problems.c (df_live_scratch): New scratch bitmap.
6339         (df_live_alloc): Allocate df_live_scratch when doing df_live.
6340         (df_live_reset): Clear the proper bitmaps.
6341         (df_live_bb_local_compute): Only process the artificial defs once
6342         since the order is not important.
6343         (df_live_init): Init the df_live sets only with the variables
6344         found live by df_lr.
6345         (df_live_transfer_function): Use the df_lr sets to prune the
6346         df_live sets as they are being computed.  
6347         (df_live_free): Free df_live_scratch.
6348
6349 2008-01-18  Ian Lance Taylor  <iant@google.com>
6350
6351         * common.opt: Add fmerge-debug-strings.
6352         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
6353         flag_merge_debug_strings rather than flag_merge_constants.
6354         * doc/invoke.texi (Option Summary): Mention
6355         -fmerge-debug-strings.
6356         (Debugging Options): Document -fmerge-debug-strings.
6357
6358 2008-01-18  Ian Lance Taylor  <iant@google.com>
6359
6360         PR c++/33407
6361         * tree.h (DECL_IS_OPERATOR_NEW): Define.
6362         (struct tree_function_decl): Add new field operator_new_flag.
6363         * tree-inline.c (expand_call_inline): When inlining a call to
6364         operator new, force the return value to go into a variable, and
6365         set DECL_NO_TBAA_P on that variable.
6366         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
6367
6368 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
6369
6370         PR debug/34484
6371         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
6372         DWARF2_DEBUGGING_INFO.
6373         (dwarf2out_note_section_used): Ditto.  Add prototype.
6374         (have_multiple_function_sections, text_section_used,
6375         cold_text_section_used, *cold_text_sections): Move declarations
6376         before their uses.
6377
6378 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
6379
6380         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
6381         field and add signal_ra.
6382         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
6383         assignments to frame state pc.  Move end of stack check after
6384         MD_FALLBACK_FRAME_STATE_FOR.
6385         (uw_update_context_1): Use frame state signal_regs if set, instead
6386         of checking signal_frame flag.
6387         (uw_update_context): Use frame state signal_ra if set.
6388         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
6389         * config/xtensa/linux-unwind.h: New file.
6390
6391 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
6392
6393         * modulo-sched.c (get_sched_window): Fix comment typo.
6394
6395 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
6396
6397         PR tree-optimization/34648
6398         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
6399
6400 2008-01-17  Anatoly Sokolov <aesok@post.ru>
6401
6402         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
6403         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
6404
6405 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
6406
6407         PR rtl-optimization/34400
6408         * df-core.c (df_worklist_dataflow_overeager,
6409         df_worklist_dataflow_doublequeue): New functions.
6410         (df_worklist_dataflow): Two different worklist solvers.
6411         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
6412         New param.
6413
6414 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6415
6416         PR testsuite/34821
6417         * doc/invoke.texi: Document the dependence on pthread for fopenmp
6418         and ftree-parallelize-loops.
6419
6420 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
6421
6422         PR rtl-optimization/34826
6423         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
6424
6425 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6426
6427         * global.c (find_reg): Mark the eh regs as used if necessary.
6428         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
6429         * ra.h (struct allocno): no_eh_reg field added.  Changed
6430         no_stack_reg type to bitfield.
6431
6432 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
6433
6434         * tree.c (substitute_in_expr): Add missing 'break'.
6435
6436 2008-01-17  Richard Guenther  <rguenther@suse.de>
6437
6438         PR tree-optimization/34825
6439         * tree-ssa-math-opts.c (is_division_by): Do not recognize
6440         x / x as division to handle.
6441
6442 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6443
6444         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
6445         "-pthread" is specified.
6446         * pa-hpux11.h (LIB_SPEC): Likewise.
6447
6448 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
6449             Peter Bergner  <bergner@vnet.ibm.com>
6450
6451         PR rtl-optimization/33796
6452         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
6453
6454 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6455
6456         PR libgfortran/34699
6457         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
6458         static links.
6459         * pa-hpux10.h (LINK_SPEC): Likewise.
6460         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
6461
6462 2008-01-16  Richard Guenther  <rguenther@suse.de>
6463
6464         PR middle-end/32628
6465         * fold-const.c (fold_convert_const_int_from_int): Do not
6466         set overflow if that occured only because of a sign extension
6467         change when converting from/to a sizetype with the same
6468         precision and signedness.
6469
6470 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
6471
6472         PR debug/34249
6473         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
6474         location address to the correct place.  Update copyright year.
6475
6476 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6477
6478         * lambda-code.c (lambda_transform_legal_p): Handle the case of
6479         no dependences in the dependence_relations vector.
6480
6481 2008-01-16  Jan Hubicka  <jh@suse.cz>
6482
6483         PR rtl-optimization/31396
6484         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
6485         * cfg.c (dump_reg_info): Print it.
6486         * regs.h (struct reg_info_t): add freq_calls_crossed.
6487         (REG_FREQ_CALLS_CROSSED): New macro.
6488         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
6489         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
6490         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
6491         regmove_optimize): Update call crossed frequencies.
6492         * local-alloc.c (struct qty): Add freq_calls_crossed.
6493         (alloc_qty): Copute freq_calls_crossed.
6494         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
6495         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
6496         * ra.h (struct allocno): Add freq_calls_crossed.
6497
6498 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6499
6500         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
6501         libgomp when compiling with ftree-parallelize-loops.
6502         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
6503
6504 2008-01-16  Richard Guenther  <rguenther@suse.de>
6505
6506         PR tree-optimization/34769
6507         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
6508         * tree.c (int_cst_value): Instead make this function more
6509         permissive in what it accepts as valid input.  Document this
6510         function always sign-extends the value.
6511
6512 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
6513             Richard Guenther  <rguenther@suse.de>
6514
6515         PR c/34668
6516         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
6517         (gimple_fold_indirect_ref_rhs): ... this.
6518         (gimple_fold_indirect_ref): New function with foldings
6519         that preserve lvalueness.
6520         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
6521         * tree-flow.h (gimple_fold_indirect_ref): Declare.
6522         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
6523         to fold an INDIRECT_REF, fall back to the old use of
6524         fold_indirect_ref_1.
6525
6526 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6527
6528         * tree-data-ref.c (subscript_dependence_tester_1): Call 
6529         free_conflict_function.
6530         (compute_self_dependence): Same.
6531
6532 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
6533
6534         PR debug/34249
6535         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
6536         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
6537         function global.
6538         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
6539         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
6540         for DWARF2_UNWIND_INFO targets.
6541
6542 2008-01-16  Richard Guenther  <rguenther@suse.de>
6543
6544         PR c/34768
6545         * c-typeck.c (common_pointer_type): Do not merge inconsistent
6546         type qualifiers for function types.
6547
6548 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
6549
6550         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
6551         loop_iterator li from previous commit.
6552
6553 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
6554
6555         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
6556
6557 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
6558
6559         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
6560         (parallelize_loops): Don't parallelize irreducible components.
6561
6562 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6563
6564         PR c++/24924
6565         * c-opts (c_common_post_options): Do not enable CPP
6566         flag_pedantic_errors by default.
6567         
6568 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
6569
6570         PR rtl-optimization/31944
6571         * cse.c (remove_pseudo_from_table): New function.
6572         (merge_equiv_classes): Use above function to remove pseudo-registers.
6573         (invalidate): Likewise.
6574
6575 2008-01-13  Richard Guenther  <rguenther@suse.de>
6576
6577         PR middle-end/34601
6578         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
6579         instead of TYPE_MODE to deal with calls from expand_one_error_var.
6580
6581 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
6582
6583         * gcse.c (cprop_jump): Call validate_unshare_change instead of
6584         validate_change to unshare the source of the PC set.
6585
6586 2008-01-12  Jan Hubicka  <jh@suse.cz>
6587
6588         PR middle-end/32135
6589         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
6590         references above array bounds.  This might trigger bounds checks for
6591         pointers to arrays.
6592
6593 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
6594
6595         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
6596         new_replaceable_dependencies.
6597
6598 2008-01-12  Doug Kwan  <dougkwan@google.com>
6599
6600         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
6601         instead of OPT_Wreturn_type in warning due to ignored return type
6602         qualifiers.
6603         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
6604         options included in -Wextra.
6605         * c.opt: New option -Wignored_qualifiers.
6606         * doc/invoke.texi (Warning Options, -Wextra): Add new option
6607         -Wignore_qualifiers.
6608         (-Wignored-qualifiers): Document.
6609         (-Wreturn-type): Remove description of functionality now handled
6610         by -Wignored-qualifiers.
6611
6612 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
6613
6614         PR ada/33788
6615         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
6616         NOP_EXPR if it is between integral types with the same precision.
6617
6618 2008-01-12  Jan Hubicka  <jh@suse.cz>
6619
6620         PR other/28023
6621         * invoke.texi (max-inline-recursive-depth): Fix default value.
6622
6623 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
6624
6625         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
6626         correct type.
6627
6628 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
6629         
6630         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
6631         
6632 2008-01-11  James E. Wilson  <wilson@specifix.com>
6633
6634         PR target/26015
6635         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
6636
6637 2008-01-11  Anatoly Sokolov <aesok@post.ru>
6638
6639         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
6640         save/restore frame pointer register and don't use 'call-prologues' 
6641         optimization in function with "OS_task" attribute.
6642
6643 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6644
6645         PR middle-end/31309
6646         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
6647         when copying to memory.
6648
6649 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
6650
6651         PR rtl-optimization/30905
6652         * cfgcleanup.c: Include dce.h
6653         (crossjumps_occured): New global variable.
6654         (try_crossjump_bb): Exit loop after finding a fallthru edge.
6655         If something changed, set crossjumps_occured to true.
6656         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
6657         Don't add/remove fake edges to exit here...
6658         (cleanup_cfg): ...but do it here, when crossjumping.
6659         Run a fast DCE when successful crossjumps occured in the latest
6660         iteration of try_optimize_cfg.
6661
6662 2008-01-11  Richard Guenther  <rguenther@suse.de>
6663
6664         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
6665         (struct vn_unary_op_s): Likewise.
6666         (vn_reference_insert): Free old reference on hash collision.
6667
6668 2008-01-10  Raksit Ashok  <raksit@google.com>
6669
6670         PR rtl-optimization/27971
6671         * combine.c (find_split_point): Split PLUS expressions which are
6672         inside a MEM rtx, and whose first operand is complex.
6673
6674 2008-01-10  DJ Delorie  <dj@redhat.com>
6675
6676         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
6677         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
6678         (m32c_hard_regno_ok): Call the underlying function.
6679
6680 2008-01-10  Richard Guenther  <rguenther@suse.de>
6681
6682         PR middle-end/34683
6683         * tree-cfg.c (tree_merge_blocks): Do not go through the
6684         full-blown folding and stmt updating path if we just deal
6685         with virtual operands.
6686         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
6687         test for abnormal SSA_NAMEs.
6688
6689 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
6690
6691         PR middle-end/34641
6692         * reload.c (push_reload): Add assertions.  All constants from
6693         reg_equiv_constant should have been used for replacing the respective
6694         pseudo earlier.
6695         (find_reloads_address): Invoke find_reloads_address_part for
6696         constant taken from the reg_equiv_constant array.
6697
6698 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
6699
6700         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
6701         field (valnum) the first in the struct.  Replace bools with
6702         unit bit fields.
6703
6704 2008-01-10  Richard Guenther  <rguenther@suse.de>
6705
6706         PR tree-optimization/34651
6707         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
6708         types and ordering for masking and converting.
6709
6710 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
6711
6712         PR tree-optimization/34017
6713         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
6714         also for PHI_NODE expressions.
6715
6716 2008-01-09  Jan Hubicka  <jh@suse.cz>
6717
6718         PR tree-optimization/34708
6719         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
6720         based on number of case labels.
6721         (init_inline_once): Remove switch_cost.
6722         * tree-inline.h (eni_weights_d): Remove switch_cost.
6723
6724 2008-01-09  Richard Guenther  <rguenther@suse.de>
6725         Andrew Pinski  <andrew_pinski@playstation.sony.com>
6726
6727         PR middle-end/30132
6728         * gimplify.c (gimplify_cond_expr): Do not create an addressable
6729         temporary if an rvalue is ok or an lvalue is not required.
6730
6731 2008-01-09  Richard Guenther  <rguenther@suse.de>
6732
6733         PR middle-end/34458
6734         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
6735         adjust return type.
6736
6737 2008-01-09  Richard Guenther  <rguenther@suse.de>
6738
6739         PR middle-end/34679
6740         * tree.c (host_integerp): Check for sizetype only if the
6741         type is an integer type.
6742
6743 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
6744
6745         PR debug/26364
6746         * opts.c (decode_options): Disable inlining of functions called
6747         once if not in unit-at-a-time mode.
6748
6749 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
6750
6751         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
6752
6753 2008-01-08  Richard Guenther  <rguenther@suse.de>
6754
6755         PR middle-end/31863
6756         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
6757         out early if the result will be unused.
6758
6759 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
6760
6761         PR target/34709
6762         Revert:
6763
6764         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6765         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6766         for TARGET_RECIP.       
6767         
6768 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
6769         
6770         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
6771         for vectorization tuned.
6772         
6773 2008-01-08  Richard Guenther  <rguenther@suse.de>
6774
6775         PR tree-optimization/34683
6776         * tree-ssa-operands.c (operand_build_cmp): Export.
6777         * tree-ssa-operands.h (operand_build_cmp): Declare.
6778         * tree-vn.c (vuses_compare): Remove.
6779         (sort_vuses): Use operand_build_cmp.
6780         (sort_vuses_heap): Likewise.
6781         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
6782         to re-use old VEC if available.  Do not sort already sorted VUSEs.
6783         (vdefs_to_vec): Do not sort already sorted VDEFs.
6784
6785 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
6786
6787         PR middle-end/34694
6788         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
6789
6790 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
6791
6792         PR target/34702
6793         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
6794         limitations of reciprocal sequences on x86 targets.
6795
6796 2008-01-08  Richard Guenther  <rguenther@suse.de>
6797
6798         PR tree-optimization/34683
6799         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
6800
6801 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
6802
6803         PR target/34622
6804         * config/darwin.c (darwin_mergeable_string_section): Don't use
6805         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
6806
6807 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
6808
6809         PR target/34682
6810         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
6811         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
6812         predicates of op0 and op1 to register_operand.
6813         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
6814         expander using X87MODEF mode iterator.  Change predicates of
6815         op0 and op1 to register_operand.
6816         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
6817         corresponding patterns and macroize using MODEF macro.  Change
6818         predicates of op0 and op1 to register_operand and remove
6819         "m" constraint. Disparage "r" alternative with "!".
6820         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
6821         macroize using X87MODEF macro.  Change predicates of op0 and op1
6822         to register_operand and remove "m" constraint.  Disparage "r"
6823         alternative with "!".
6824         (absneg splitter with memory operands): Remove.
6825         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
6826         patterns and macroize using X87MODEF mode iterator.
6827         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
6828         Change predicate of op1 to register_operand.
6829         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
6830         for memory operands.
6831
6832 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6833
6834         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
6835
6836 2008-01-07  Richard Guenther  <rguenther@suse.de>
6837
6838         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
6839         fields.
6840
6841 2008-01-07  Richard Guenther  <rguenther@suse.de>
6842
6843         PR tree-optimization/34683
6844         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
6845         VOPs of the needed size to save memory.  Use VEC_quick_push
6846         to save compile-time.
6847         (vdefs_to_vec): Likewise.
6848
6849 2008-01-07  Sa Liu  <saliu@de.ibm.com>
6850
6851         * config/spu/spu.md (divdf3): Genetate inline code for double
6852         division.  The implementation doesn't handle INF or NAN, therefore it
6853         only applies when -ffinite-math-only is given.
6854
6855 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
6856
6857         PR libstdc++/34680
6858         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
6859         * doc/cpp.texi ([Common Predefined Macros]): Document.
6860
6861 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
6862
6863         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
6864         order to use commutative addition instead of subtraction.
6865
6866 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6867             Mircea Namolaru  <namolaru@il.ibm.com>
6868             Vladimir Yanovsky  <yanov@il.ibm.com>
6869             Revital Eres  <eres@il.ibm.com>
6870
6871         PR tree-optimization/34263
6872         * tree-outof-ssa.c (process_single_block_loop_latch,
6873         contains_tree_r): New functions.
6874         (analyze_edges_for_bb): Call process_single_block_loop_latch
6875         function to empty single-basic-block latch block if possible.
6876
6877 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6878
6879         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
6880         for TARGET_RECIP.
6881         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
6882
6883 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
6884
6885         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
6886
6887 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
6888
6889         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
6890
6891 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
6892
6893         PR tree-optimization/34618
6894         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
6895         flag from T.
6896
6897 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
6898
6899         PR target/34673
6900         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
6901         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
6902         Update copyright year.
6903
6904         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
6905         Update copyright year.
6906         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
6907         using NR fixup.
6908
6909 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
6910
6911         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
6912         edge does not point to current bb before changing need_assert.
6913
6914 2008-01-04  Richard Guenther  <rguenther@suse.de>
6915
6916         PR middle-end/34029
6917         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
6918         for verifying purposes if they are is_gimple_min_invariant.
6919
6920 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
6921
6922         PR tree-optimization/34448
6923         PR tree-optimization/34465
6924         * gimplify.c (gimplify_init_constructor): Add new parameter
6925         notify_temp_creation.  Use it.
6926         (gimplify_modify_expr_rhs): Take volatiles into account when
6927         optimizing constructors.
6928         Do not optimize constructors if gimplify_init_constructor will dump to
6929         memory.
6930         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
6931         * gcc.c-torture/compile/pr34448.c: New.
6932
6933 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
6934
6935         PR gcov-profile/34609
6936         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
6937         return_slot if result is TREE_ADDRESSABLE.
6938
6939 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
6940
6941         * config/mips/mips.md (sqrt_condition): Tweak comment.
6942         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
6943
6944 2008-01-03  Tom Tromey  <tromey@redhat.com>
6945
6946         PR c/34457
6947         * c-common.c (c_type_hash): Handle VLAs.
6948
6949 2008-01-03  Jan Hubicka  <jh@suse.cz>
6950
6951         PR tree-optimization/31081
6952         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
6953         0 when inlining and not inlining to first basic block.
6954         (remap_decl): When var is initialized to 0, don't set default_def.
6955         (expand_call_inline): Set entry_bb.
6956         * tree-inline.h (copy_body_data): Add entry_bb.
6957
6958 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
6959
6960         PR c++/34619
6961         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
6962         before returning.
6963
6964         PR tree-optimization/29484
6965         * tree-inline.c (inline_forbidden_p_2): New function.
6966         (inline_forbidden_p): Disallow inlining if some static var
6967         has an address of a local LABEL_DECL in its initializer.
6968         * doc/extend.texi (Labels as Values): Document &&foo behaviour
6969         vs. inlining.
6970
6971 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
6972
6973         PR tree-optimization/34635
6974         * tree-data-ref.c (add_other_self_distances): Make sure that the
6975         evolution step is constant.
6976
6977 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
6978
6979         PR middle-end/34608
6980         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
6981
6982 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
6983
6984         * tree-sra.c (scalarize_init): Insert the generate_element_init
6985         statements after the generate_element_zero statements.
6986
6987 2008-01-02  Richard Guenther  <rguenther@suse.de>
6988
6989         PR middle-end/34093
6990         PR middle-end/31976
6991         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
6992         for very large number of operands instead of ICEing.
6993
6994 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
6995
6996         PR target/34013
6997         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
6998         while stack probing.
6999
7000 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
7001
7002         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
7003         in C++0x mode.
7004
7005 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
7006
7007         PR libmudflap/26442
7008         * tree-mudflap.c (mx_register_decls): Guard warning by
7009         !DECL_ARTIFICIAL check.
7010
7011 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
7012
7013         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
7014         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
7015         sse5_perm<mode>): Fix constraints.