OSDN Git Service

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