OSDN Git Service

Support scheduling for ColdFire V1 and V3 microarchitecture.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2
3         Support scheduling for ColdFire V1 and V3 microarchitecture.
4         Improve scheduling of multiplication instructions.
5
6         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
7         (mac): New instruction attribute.
8         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9         (m68k_sched_mac): New variable.
10         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
11         Handle cfv1 and cfv3.
12         (max_insn_size): New static variable.
13         (struct _sched_ib): New type.
14         (sched_ib): New static variable.
15         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
16         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
17         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
18         Update.
19         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
20         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
21         new variables.  Update.
22         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
23         Add modeling of cfv3 instruction buffer.  Update.
24         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
25         * config/m68k/m68k.h (TUNE_CFV3): New macro.
26         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
27         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
28         a particular reservation applies to.
29         (type2): Reorganize attribute values.  Rename alu to alu_reg,
30         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
31         to mul_l and mul_w.
32         (cf_ib_*): Simplify description of instruction buffer.
33         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
34         (cf_mem): Split into cf_mem1 and cf_mem2.
35         (cf_v2_move_??): Rename to cfv12_alu_??.
36         (cf_v2_move_l_??): Rename to cfv12_omove_??.
37         (cf_v2_mul_??): Remove reservations.
38         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
39         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
40         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
41         appropriate place.
42         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
43         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
44         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
45         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
46         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
47         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
48         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
49         expansions of the above reservations for instructions of sizes
50         1, 2 and 3 words.
51
52 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
53
54         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
55
56 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
57
58         * coverage.c: Include tree-pass.h.
59         (coverage_counter_alloc): Print da_file_name to the dump file.
60
61 2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
62
63         * sbitmap.c (sbitmap_range_empty_p): New function.
64         * sbitmap.h (sbitmap_range_empty_p): New function.
65         * bitmap.h: Now includes obstack.h.
66
67 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
68             Kenneth Zadeck <zadeck@naturalbridge.com>
69
70         * dbgcnt.def (ra_byte_scan): Added.
71         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
72         when the last hit happens for a counter.  
73         * timevar.def (TV_DF_BYTE_LR): New variable.
74         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
75         * passes.c (pass_fast_rtl_byte_dce): New pass.
76         * fwprop.c (update_df): Added mode to call df_ref_create.
77         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
78         DF_REF_EXTRACT_OFFSET.
79         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
80         DF_BYTE_LR_OUT, df_byte_lr): New macro.
81         (df_mm): New enum.
82         (df_ref_extract): Added mode field.
83         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
84         DF_REF_EXTRACT_OFFSET.
85         (DF_REF_EXTRACT_MODE): New macro.
86         (df_byte_lr_bb_info): New structure.
87         (df_print_byte_regset, df_compute_accessed_bytes, 
88         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
89         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
90         df_byte_lr_simulate_uses,
91         df_byte_lr_simulate_artificial_refs_at_top,
92         df_byte_lr_simulate_artificial_refs_at_end,
93         df_compute_accessed_bytes): New function.
94         (df_ref_create): Add parameter.
95         (df_byte_lr_get_bb_info): New inline function.
96         * df-scan.c (df_ref_record, df_uses_record,
97         df_ref_create_structure): Added mode parameter.
98         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
99         df_defs_record, df_uses_record, df_get_conditional_uses,
100         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
101         df_entry_block_defs_collect, df_exit_block_uses_collect):
102         Added mode parameter to calls to df_ref_record, df_uses_record,
103         df_ref_create_structure.
104         (df_ref_equal_p, df_ref_compare): Added test for modes.
105         (df_ref_create_structure): Added code to set mode.  Renamed
106         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
107         DF_REF_EXTRACT_OFFSET.
108         * df-core.c (df_print_byte_regset): New function.
109         * df-byte-scan.c: New file.
110         * df-problems.c (df_rd_transfer_function): Removed unnecessary
111         calls to BITMAP_FREE.  
112         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
113         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
114         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
115         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
116         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
117         df_byte_lr_local_compute, df_byte_lr_init,
118         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
119         df_byte_lr_transfer_function, df_byte_lr_free, 
120         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
121         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
122         df_byte_lr_simulate_uses,
123         df_byte_lr_simulate_artificial_refs_at_top,
124         df_byte_lr_simulate_artificial_refs_at_end): New function.
125         * dce.c (byte_dce_process_block): New function.
126         (dce_process_block): au is now passed in rather than computed
127         locally.  Changed loops that look at artificial defs to not look
128         for conditional or partial ones, because there never are any.  
129         (fast_dce): Now is able to drive byte_dce_process_block or 
130         dce_process_block depending on the kind of dce being done.
131         (rest_of_handle_fast_dce): Add parameter to fast_dce.
132         (rest_of_handle_fast_byte_dce): New function.
133         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
134         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
135
136 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
137
138         PR fortran/35019
139         * gcc.h: Added fortran options that take arguments to
140         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
141         macros.
142
143 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
144
145         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
146         scalarization if on the LHS and not a full access.
147
148 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
149
150         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
151
152 2008-04-18  Rafael Espindola  <espindola@google.com>
153
154         * tree-vrp.c (find_case_label_index): Fix the binary search.
155         (find_case_label_range): New.
156         (vrp_visit_switch_stmt): Use find_case_label_range.
157         (simplify_switch_using_ranges): Use find_case_label_range.
158
159 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
160
161         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
162         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
163
164 2008-04-18  Tom Tromey  <tromey@redhat.com>
165
166         PR libcpp/15500:
167         * doc/cpp.texi (Implementation-defined behavior): Mention
168         -finput-charset.
169
170 2008-04-18  Ian Lance Taylor  <iant@google.com>
171
172         * fold-const.c (pointer_may_wrap_p): New static function.
173         (fold_comparison): Add another test for pointer overflow.  Use
174         pointer_may_wrap_p to disable some false positives.
175
176 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
177           
178         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
179         (fname_as_string): Match updated cpp_interpret_string prototype.
180         (fix_string_type): Support char16_t* and char32_t*.
181         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
182         derivative) nodes.  Register as builtin if C++0x.
183         (c_parse_error): Support CPP_CHAR{16,32}.
184         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
185         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
186         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
187         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
188         CTI_CHAR32_ARRAY_TYPE>: New elements.
189         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
190         char32_type_node, signed_char32_type_node, char16_array_type_node,
191         char32_array_type_node): New defines.
192         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
193         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
194         (lex_string): Support CPP_STRING{16,32}, match updated
195         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
196         (lex_charconst): Support CPP_CHAR{16,32}.
197         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
198         and CPP_STRING{16,32}.
199
200 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
201
202         PR bootstrap/35457
203         * aclocal.m4: Regenerate.
204         * configure: Regenerate.
205
206 2008-04-18  Jan Hubicka  <jh@suse.cz>
207
208         * except.c (dw2_size_of_call_site_table,
209         sjlj_size_of_call_site_table): Use vector API for call_site_record.
210
211         * cgraphbuild.c (build_cgraph_edges): Update.
212         * tree-pass.h: Update comment.
213         * final.c (leaf_function_p): Update.
214         (leaf_renumber_regs): Update.
215         (rest_of_clean_state): Update.
216         * omp-low.c (expand_omp_parallel): Update.
217         * ipa-reference.c (analyze_function): Update.
218         * reorg.c (find_end_label): Update.
219         (optimize_skip): Update.
220         (fill_simple_delay_slots): Update.
221         (fill_simple_delay_slots): Update.
222         (make_return_insns): Update.
223         (dbr_schedule): Update.
224         * gimple-low.c (record_vars_into): Update.
225         * cfgbuild.c (make_edges): Update.
226         * function.c (assign_stack_local): Update.
227         (assign_parm_adjust_stack_rtl): Update.
228         (locate_and_pad_parm): Update.
229         (allocate_struct_function): Do not initialize stack_alignment_needed
230         and preferred_stack_boundary here.
231         (stack_protect_prologue): Update.
232         (stack_protect_epilogue): Update.
233         (expand_function_start): Initialize stack_alignment_needed,
234         preferred_stack_boundary and max_jumptable_ents.
235         (expand_function_end): Update.
236         (free_after_compilation): Do not NULLify epilogue_delay_list.
237         * function.h (struct rtl_data): Add stack_protect_guard,
238         stack_alignment_needed,
239         preferred_stack_boundary, epilogue_delay_list.
240         (struct function): Remove value_histograms, stack_alignment_needed,
241         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
242         last_label_uid,
243         unexpanded_var_list, stack_protect_guard.
244         (current_function_epilogue_delay_list): Remove.
245         * ipa-type-escape.c (analyze_function): Update.
246         * gimplify.c (pop_gimplify_context): Update comment.
247         * calls.c (expand_call): Update.
248         (emit_library_call_value_1): Update.
249         * except.c (set_nothrow_function_flags): Update.
250         * cfgexpand.c (get_decl_align_unit): Update.
251         (create_stack_guard): Update.
252         (estimated_stack_frame_size): Update.
253         (expand_used_vars): Update.
254         (tree_expand_cfg): Free histogram earliers, init expansion variables.
255         * explow.c (allocate_dynamic_stack_space): Update.
256         * tree-ssa-live.c (remove_unused_locals): Update.
257         * varasm.c (mark_constant_pool): Update.
258         * tree-inline.c (remap_decls): Update.
259         (initialize_cfun): Update.
260         (declare_return_variable): Update.
261         (inline_forbidden_p): Update.
262         (expand_call_inline): Update.
263         (declare_inline_vars): Update.
264         (tree_function_versioning): Update.
265         * tree-flow.h (value_histograms): New.
266         (VALUE_HISTOGRAMS): New macro.
267         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
268         last_label_uid.
269         * tree-cfg.c (set_bb_for_stmt): Update.
270         (replace_by_duplicate_decl): Update.
271         (move_block_to_fn): Update.
272         (new_label_mapper): Update.
273         (dump_function_to_file): Update.
274         * ipa-struct-reorg.c (build_data_structure): Update.
275         * cfgrtl.c (print_rtl_with_bb): Update.
276         * reload1.c (reload): Update.
277         (reload): Update.
278         * config/i386/i386.c (setup_incoming_varargs_64,
279         ix86_compute_frame_layout): Update.
280         * config/arc/arc.c (arc_output_function_epilogue): Update.
281
282 2008-04-18  Marius Strobl <marius@FreeBSD.org>
283
284         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
285         for FreeBSD as well.
286         * gthr-posix95.h: Likewise.
287
288 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
289
290         PR rtl-optimization/35838
291         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
292         out the byte offset of the first subreg.
293
294 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
295
296         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
297         to split_ti instead of three separate calls with single member arrays.
298         (subti3 splitter): Ditto.
299         (adddi3 splitter): Ditto with split_di.
300         (subdi3 splitter): Ditto.
301         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
302         two separate calls with single member arrays.  Swap match_dup
303         operands 1 and 2 to better fit into the array.
304         (negdi2 splitter): Ditto with split_di.
305         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
306         two separate calls with single member arrays.  Swap match_dup operands
307         6 and 7 to better fit into the array.
308
309 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
310
311         * config/i386/i386.c (sse_builtin_type): New.
312         (bdesc_sse_args): Likewise.
313         (bdesc_sse_3arg): Removed.
314         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
315         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
316         IX86_BUILTIN_ROUNDPS.
317         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
318         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
319         IX86_BUILTIN_ROUNDPS.
320         (ix86_expand_sse_4_operands_builtin): Removed.
321         (ix86_expand_sse_operands_builtin): New.
322         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
323         and CODE_FOR_sse4_1_roundps.
324         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
325         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
326
327 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
328
329         PR target/35907
330         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
331         regs before frame pop when needed.  If use_backchain_to_restore_sp
332         then load backchain into a temp reg to restore vr and vrsave.  Add
333         code to restore vr after frame pop if possible.
334
335 2008-04-17  Richard Guenther  <rguenther@suse.de>
336
337         * tree-vn.c (expressions_equal_p): Do not check type
338         equality or compatibility before calling operand_equal_p.
339         * fold-const.c (operand_equal_p): Check equivalence of
340         integer constants before bailing out due to signedness or
341         precision differences.
342         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
343         spurious differences in type qualification.  Ignore types
344         for COMPONENT_REFs at all.
345
346 2008-04-17  Christian Bruel  <christian.bruel@st.com>
347
348         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
349         msw_skip comparison.
350         
351 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
352
353         PR c/35739
354         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
355         reg type.
356
357         PR tree-optimization/35899
358         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
359         rather than TREE_OPERAND.
360
361 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
362
363         PR target/35944
364         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
365         temporary registers.  Change operand predicate to general_operand.
366         (remainderxf3): Ditto.
367
368 2008-04-16  Richard Guenther  <rguenther@suse.de>
369
370         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
371         * tree-affine.c (aff_combination_expand): Look through some
372         conversions.
373
374 2008-04-15  Doug Kwan  <dougkwan@google.com>
375
376         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
377         for hex printing.
378         * tree-pretty-print.c (dump_generic_node): Ditto.
379         * final.c (output_addr_const): Ditto.
380         * dwarf2out.c (output_cfi): Ditto.
381         * c-pretty-print.c (pp_c_integer_constant): Ditto.
382         * print-rtl.c (print_rtx): Ditto.
383         * print-tree.c (print_node_brief, print_node): Ditto.
384         * c-common.c (match_case_to_enum_1): Ditto.
385         * sched-vis.c (print_value): Ditto.
386         * config/i386/i386.c (print_operand): Cast to long unsigned int
387         for hex printing.
388
389 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
390         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
391         MS Windows VirtualProtect function.
392
393 2008-04-15  Jan Hubicka  <jh@suse.cz>
394
395         * gengtype.c (write_root): Param_is argument is OK.
396         * expr.c (expand_expr_real_1): Update call of get_exception_*.
397         * function.h: Include varray.h
398         (rtl_eh): New stucture based on except.c one.
399         (call_site_record): New forward declaration and vector type.
400         * calls.c (emit_call_1): Do not call
401         note_current_region_may_contain_throw.
402         * except.c (eh_status): Remove cur_region, try_region since they are
403         unused.
404         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
405         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
406         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
407         Remove call_site_data_used, call_site_data_size.
408         Turn call_site_record into vector in function.h.
409         (note_current_region_may_contain_throw): Remove.
410         (get_exception_pointer, get_exception_filter): Do not take struct
411         function argument; update.
412         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
413         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
414         build_post_landing_pads, dw2_build_landing_pads,
415         sjlj_assign_call_site_values, sjlj_mark_call_sites,
416         sjlj_emit_function_enter, sjlj_emit_function_enter, 
417         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
418         sjlj_build_landing_pads, finish_eh_generation,
419         remove_exception_handler_label, remove_eh_handler,
420         maybe_remove_eh_handler, add_reachable_handler,
421         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
422         add_action_record, collect_one_action_chain, add_call_site,
423         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
424         sjlj_output_call_site_table, output_function_exception_table,
425         * except.h (note_current_region_may_contain_throw): Remove
426         (get_exception_pointer, get_exception_filter): Do not take struct
427         function argument.
428         * Makefile.in (GTFILES): Put varargs before struct function.
429
430 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
431
432         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
433         punt for STRING_CST.
434         (get_constraint_for): Deal with STRING_CST here instead.
435
436 2008-04-15  Richard Guenther  <rguenther@suse.de>
437
438         * tree-ssa-propagate.c (substitute_and_fold): Substitute
439         statements in a basic-block with a backward walk.  Do not
440         substitute into dead statements but instead remove those.
441
442 2008-04-15  Richard Guenther  <rguenther@suse.de>
443
444         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
445         to zero, thus disable creation of SFTs.
446
447 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
448
449         * tree-predcom.c (suitable_reference_p): Return false if the
450         reference can throw.
451
452 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
453
454         PR c/35751
455         * c-decl.c (finish_decl): If extern or static var has variable
456         size, set TREE_TYPE (decl) to error_mark_node.
457
458 2008-04-15  Rafael Espindola  <espindola@google.com>
459
460         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
461         variable arg1.
462
463 2008-04-15  Richard Guenther  <rguenther@suse.de>
464
465         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
466         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
467         (visit_reference_op_load): Do walk vuse-vdef chains on
468         vn_reference_lookup.
469         (visit_reference_op_store): But do not here.
470         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
471         vn_reference_lookup.
472         (vn_lookup_with_vuses): But do so here.
473
474 2008-04-14  Ian Lance Taylor  <iant@google.com>
475
476         * fold-const.c (fold_overflow_warning): Remove assertion.
477
478 2008-04-15  Ben Elliston  <bje@au.ibm.com>
479
480         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
481         temp1 local variables.
482
483 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
484
485         PR target/35661
486         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
487         ".text.unlikely" section as executable.
488
489 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
490
491         * config/ia64/ia64.c (rtx_needs_barrier): Handle
492         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
493         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
494         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
495         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
496         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
497         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
498
499 2008-04-14  Ian Lance Taylor  <iant@google.com>
500
501         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
502         * fold-const.c (fold_comparison): If appropriate, test
503         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
504         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
505         reassociating a pointer type.
506         * doc/invoke.texi (Optimize Options): Document that
507         -fstrict-overflow applies to pointer wraparound.
508
509 2008-04-13  Jan Hubicka  <jh@suse.cz>
510
511         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
512
513 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
514
515         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
516         we are going to "save the world".
517
518 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
519
520         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
521         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
522         operand 0 constraint, not "=".
523
524 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
525
526         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
527
528 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
529
530         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
531         of size of positions_needed * CHAR_BIT.
532
533 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
534
535         PR middle-end/35897
536         * dse.c (store_info): Change positions_needed to unsigned
537         HOST_WIDE_INT.
538         (lowpart_bitmask): New.
539         (record_store): Cast to unsigned HOST_WIDE_INT for
540         positions_needed.  Assert width <= size of positions_needed *
541         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
542         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
543         lowpart_bitmask to set mask.
544
545 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
546
547         * config/bfin/constraints.md: New file.
548         * config/bfin/bfin.md: Include it.
549         (adddi3): Use satisfies_constraint functions instead of the old macros.
550         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
551         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
552         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
553         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
554         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
555         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
556         EXTRA_CONSTRAINT): Delete.
557         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
558         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
559         of the old macros.
560         * config/bfin/bfin.c: Include "tm-constrs.h".
561         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
562         Use satisfies_constraint functions instead of the old macros.
563         * doc/md.texi (Blackfin Constraints): Update file name reference.
564
565 2008-04-11  Richard Guenther  <rguenther@suse.de>
566
567         PR tree-optimization/35869
568         * tree-vrp.c (execute_vrp): Move switch statement update after
569         jump threading.  Schedule another cfg cleanup run.
570
571 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
572
573         PR c/35744
574         * attribs.c (decl_attributes): Return early on errorneous node.
575
576 2008-04-10  Oleg Ryjkov  <olegr@google.com>
577
578         * tree.h (struct tree_base): Added a new flag default_def_flag.
579         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
580
581 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
582
583         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
584
585 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
586
587         PR target/35768
588         * pa.md: Define mode iterator P.  Define mode attribute dwc.
589         (dcacheflush): Update pattern to use iterator P and attribute dwc.
590         (icacheflush): Likewise.
591         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
592         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
593
594 2008-04-11  Ben Elliston  <bje@au.ibm.com>
595
596         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
597
598 2008-04-10  Rafael Espindola  <espindola@google.com>
599
600         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
601         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
602         (extract_range_from_expr): The same.
603
604 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
605
606         * config/mips/mips.md (GPR2): New mode iterator.
607         (seq): Add comment.
608         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
609         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
610         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
611         Rewrite these to take two modes, the mode of comparison and the
612         mode of the destination.
613         * config/mips/mips.c (mips_expand_scc): Instead of having
614         paradoxical subreg as destination, expand "narrowing" scc if mode
615         of comparison is SI and target is requested in DI mode.
616         (mips_emit_int_order_test): Update comment.  Make mode of
617         comparison match CMP0 rather than TARGET.  When creating inverse
618         target use mode of TARGET.
619
620 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
621
622         * gcov-dump.c (tag_summary): Only print summaries for the first
623         GCOV_COUNTERS_SUMMABLE counters.
624
625 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
626
627         * config/i386/i386.md (absneg): New code iterator.
628         (absnegprefix): New code attribute.
629         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
630         patterns using absneg code iterator.
631         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
632         using absneg code iterator.
633         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
634         *neg<mode>2 patterns using absneg code iterator.
635         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
636         *negextendsfdf2 patterns using absneg code iterator.
637         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
638         *negextendsfxf2 patterns using absneg code iterator.
639         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
640         *negextendsfdf2 patterns using absneg code iterator.
641         * config/i386/sse.md (<code><mode>2): Macroize expander from
642         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
643
644 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
645
646         * config/s390/s390.h: Remove the remains of the recent search
647         & replace action of current_function_outgoing_args_size.
648
649 2008-04-10  Ira Rosen  <irar@il.ibm.com>
650
651         PR tree-optimization/35821
652         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
653         NEW_STMT_LIST is not NULL.
654
655 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
656
657         PR libstdc++/35597
658         * toplev.c (process_options): Remove -ffunction-sections debugging
659         warning.
660
661 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
662
663         PR middle-end/PR28690
664         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
665         than gen_rtx_fmt_ee to perform more canonicalizations.
666
667 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
668
669         PR driver/35665
670         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
671
672 2008-04-09  Richard Guenther  <rguenther@suse.de>
673
674         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
675         (dump_function_to_file): Dump function arguments with types.
676
677 2008-04-08  Richard Guenther  <rguenther@suse.de>
678
679         * fold-const.c (fold_widened_comparison): Do not allow
680         sign-changes that change the result.
681
682 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
683
684         PR target/35839
685         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
686         kinds of indirect references.
687
688 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
689
690         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
691         GNU Fortran language string.
692
693 2008-04-08  Rafael Espindola  <espindola@google.com>
694
695         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
696         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
697         * tree.h (tree_call_nonnegative_warnv_p): New.
698
699 2008-04-08  Jan Hubicka  <jh@suse.cz>
700
701         * function.c (free_after_compilation): Clear out regno_reg_rtx
702         pointer.
703
704 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
705
706         Revert
707         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
708
709         PR middle-end/PR28690
710         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
711         same precedence as REG_POINTER and MEM_POINTER operands.
712
713 2008-04-08  Richard Guenther  <rguenther@suse.de>
714
715         PR middle-end/35834
716         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
717         for adding index to base.
718
719 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
720
721         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
722         (MINGW_ENABLE_EXECUTE_STACK): New.
723         (IN_LIBGCC2): For libgcc include windows.h file for
724         function declarations.
725
726 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
727
728         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
729         and tem2 if tem1 is not a REG or MULT.
730
731 2008-04-08  Jan Hubicka  <jh@suse.cz>
732
733         * function.h (incomming_args): Break out of struct function.
734         (function_subsections): Break out of struct function.
735         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
736         return_rtx and hard_reg_initial_vals from struct function.
737         Kill inl_max_label_num.
738         (current_function_pops_args, current_function_args_info,
739         current_function_args_size, current_function_args_size,
740         current_function_pretend_args_size,
741         current_function_outgoing_args_size,
742         current_function_internal_arg_pointer, current_function_return_rtx):
743         Kill compatibility accestor macros.
744         * builtins.c (expand_builtin_apply_args_1): Update.
745         (expand_builtin_next_arg): Update.
746         * df-scan.c (df_get_call_refs): Update.
747         * dbxout.c (dbxout_function_end): Update.
748         * dwarf2out.c (dwarf2out_switch_text_section): Update.
749         (output_line_info): Update.
750         (secname_for_decl): Update.
751         (dwarf2out_var_location): Update.
752         * function.c (free_after_compilation): Update.
753         (assign_parm_find_stack_rtl): Update.
754         (assign_parms): Update.
755         (expand_dummy_function_end): Update.
756         (expand_function_end): Update.
757         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
758         (expand_call): Update.
759         (emit_library_call_value_1): Update.
760         (store_one_arg): Update.
761         * varasm.c (initialize_cold_section_name): Update.
762         (unlikely_text_section): Update.
763         (unlikely_text_section_p): Update.
764         (assemble_start_function): Update.
765         (assemble_end_function): Update.
766         (default_section_type_flags): Update.
767         (switch_to_section): Update.
768         * integrate.c (set_decl_abstract_flags): Update.
769         (get_hard_reg_initial_val): Update.
770         (has_hard_reg_initial_val): Update.
771         (allocate_initial_values): Update.
772         * resource.c (init_resource_info): Update.
773         * config/alpha/alpha.c (NUM_ARGS): Update.
774         (direct_return): Update.
775         (alpha_va_start): Update.
776         (alpha_sa_size): Update.
777         (alpha_initial_elimination_offset): Update.
778         (alpha_expand_prologue): Update.
779         (alpha_start_function): Update.
780         (alpha_expand_epilogue): Update.
781         (unicosmk_initial_elimination_offset):
782         * config/alpha/alpha.md (call expander): Update.
783         * config/s390/s390.c (s390_register_info): Update.
784         (s390_register_info): Update.
785         (s390_frame_info): Update.
786         (s390_initial_elimination_offset): Update.
787         (s390_build_builtin_va_list): Update.
788         (s390_va_start): Update.
789         * config/spu/spu.c (direct_return): Update.
790         (spu_expand_prologue): Update.
791         (spu_initial_elimination_offset): Update.
792         (spu_build_builtin_va_list): Update.
793         (spu_va_start): Update.
794         * config/sparc/sparc.c (sparc_init_modes): Update.
795         (sparc_compute_frame_size): Update.
796         (function_value): Update.
797         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
798         * config/i386/i386.md (return expander): Update.
799         * config/i386/i386.c (ix86_va_start): Update.
800         (ix86_can_use_return_insn_p): Update.
801         (ix86_compute_frame_layout): Update.
802         (ix86_expand_epilogue): Update.
803         * config/sh/sh.c (output_stack_adjust): Update.
804         (calc_live_regs): Update.
805         (sh_expand_prologue): Update.
806         (sh_builtin_saveregs): Update.
807         (sh_va_start): Update.
808         (initial_elimination_offset): Update.
809         (sh_allocate_initial_value): Update.
810         (sh_function_ok_for_sibcall): Update.
811         (sh_get_pr_initial_val): Update.
812         * config/sh/sh.md (return expander): Update.
813         * config/avr/avr.c (frame_pointer_required_p): UPdate.
814         * config/crx/crx.c (crx_compute_frame): UPdate.
815         (crx_initial_elimination_offset): UPdate.
816         * config/xtensa/xtensa.c (compute_frame_size): Update
817         (xtensa_builtin_saveregs): Update.
818         (xtensa_va_start): Update.
819         (order_regs_for_local_alloc): Update.
820         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
821         (xstormy16_expand_builtin_va_start): Update.
822         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
823         * config/m68hc11/m68hc11.md (return expanders): Update.
824         * config/m68hc11/m68hc11.c (expand_prologue): Update.
825         (expand_epilogue): Update.
826         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
827         (cris_simple_epilogue): Update.
828         (cris_expand_prologue): Update.
829         (cris_expand_epilogue): Update.
830         * config/iq2000/iq2000.c (iq2000_va_start): Update.
831         (compute_frame_size): Update.
832         * config/mt/mt.c (mt_compute_frame_size): Update.
833         * config/mn10300/mn10300.c (expand_prologue): Update.
834         (expand_epilogue): Update.
835         (initial_offset): Update.
836         (mn10300_builtin_saveregs):
837         * config/mn10300/mn10300.md (return expander): Update.
838         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
839         (ia64_initial_elimination_offset): Update.
840         (ia64_initial_elimination_offset): Update.
841         (ia64_expand_prologue): Update.
842         * config/m68k/m68k.md (return expander): Update.
843         * config/rs6000/rs6000.c (rs6000_va_start): Update.
844         (rs6000_stack_info): Update.
845         * config/mcore/mcore.c (layout_mcore_frame): Update.
846         (mcore_expand_prolog): Update.
847         * config/arc/arc.c (arc_compute_frame_size): Update.
848         * config/score/score3.c (score3_compute_frame_size): Update.
849         * config/score/score7.c (score7_compute_frame_size): Update.
850         * config/arm/arm.c (use_return_insn): Update.
851         (thumb_find_work_register): Update.
852         (arm_compute_save_reg_mask): Update.
853         (arm_output_function_prologue): Update.
854         (arm_output_epilogue): Update.
855         (arm_size_return_regs): Update.
856         (arm_get_frame_offsets): Update.
857         (arm_expand_prologue): Update.
858         (thumb_exit): Update.
859         (thumb_unexpanded_epilogue): Update.
860         (thumb1_output_function_prologue): Update.
861         * config/pa/pa.md (return expander): Update.
862         * config/pa/pa.c (compute_frame_size): Update.
863         (hppa_builtin_saveregs): Update.
864         * config/mips/mips.c (mips_va_start): Update.
865         (mips16_build_function_stub): Update.
866         (mips_compute_frame_info): Update.
867         (mips_restore_gp): Update.
868         (mips_output_function_prologue): Update.
869         (mips_expand_prologue): Update.
870         * config/v850/v850.c (compute_frame_size): Update.
871         (expand_prologue): * config/mmix/mmix.c (along): update.
872         (mmix_initial_elimination_offset): update.
873         (mmix_reorg): update.
874         (mmix_use_simple_return): update.
875         (mmix_expand_prologue): update.
876         (mmix_expand_epilogue): Update.
877         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
878         (emit_link_insn): Update.
879
880 2008-04-08  Anatoly Sokolov <aesok@post.ru>
881
882         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
883         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
884         instructions.
885         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
886         atmega103 device.
887
888 2008-04-07  Jan Hubicka  <jh@suse.cz>
889
890         * function.h (rtl): Rename to x_rtl.
891         (crtl): New define.
892         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
893         frame_offset, stack_check_probe_note, arg_pointer_save_area,
894         used_temp_slots avail_temp_slots, temp_slot_level,
895         nonlocal_goto_handler_labels): Update accesstors.
896         (rtl): New global variable.
897         (struct function): Move some fileds to rtl_data.
898         (get_arg_pointer_save_area): Update prototype.
899         * builtins.c (expand_builtin_setjmp_receiver): Update call of
900         get_arg_pointer_save_area.
901         * expr.c (init_expr): Update
902         * function.c (get_frame_size): Update
903         (assign_stack_local): Update
904         (expand_function_end): Update.
905         (get_art_pointer_save_area): Update
906         * function.h 
907         * emit-rtl.c (rtl): Declare.
908         (regno_reg_rtx): Declare.
909         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
910         Update.
911         (gen_reg_rtx): Update.
912         * varasm.c (n_deferred_constatns): Update accestor.
913         (init_varasm_status): Do not allocate varasm_status.
914         (force_const_mem, get_pool_size, output_constant_pool): Update.
915         * stmt.c (force_label_rtx): Do not use x_ prefixes.
916         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
917         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
918         * sparc/sparc.h (INIT_EXPANDERS): Update.
919         * ia64/ia64.h (INIT_EXPANDERS): Update.
920
921 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
922
923         * reload.c (push_secondary_reload): Add missing break to for loop.
924
925 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
926
927         PR middle-end/PR28690
928         * rtlanal.c: Update copyright years.
929         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
930         as REG_POINTER and MEM_POINTER operands.
931         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
932         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
933         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
934         * gcse.c: Update copyright years.
935         (pre_delete): Call gen_reg_rtx_and_attrs.
936         (hoist_code): Likewise.
937         (build_store_vectors): Likewise.
938         (delete_store): Likewise.
939         * loop-invariant.c (move_invariant_reg): Likewise.
940         Update copyright years.
941
942 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
943
944         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
945         control string instead of quoted.
946
947 2008-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>
948
949         * doc/rtl.texi: Rewrite of subreg section.
950
951 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
952
953         PR/35842
954         * config/i386/i386.c (legitimize_pic_address): Add treating
955         of dllimport SYM_REF's.
956         (legitimize_dllimport_symbol): Add prototype.
957
958 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
959
960         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
961         reference in constructor with non self-referential type.
962
963 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
964
965         Removal of Return with Depressed Stack Pointer support
966         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
967         (ECF_SP_DEPRESSED): Likewise.
968         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
969         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
970         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
971         (expand_call): Do not test ECF_SP_DEPRESSED.
972         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
973         * function.c (keep_stack_depressed): Delete.
974         (handle_epilogue_set): Likewise.
975         (update_epilogue_consts): Likewise.
976         (emit_equiv_load): Likewise.
977         (thread_prologue_and_epilogue_insns): Remove support for Return with
978         Depressed Stack Pointer.
979         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
980
981 2008-04-06  Richard Guenther  <rguenther@suse.de>
982
983         PR tree-optimization/35400
984         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
985         information from SSA_NAMEs.
986
987 2008-04-06  Anatoly Sokolov <aesok@post.ru>
988
989         * config/avr/avr.h (avr_mega_p): Remove declaration.
990         (AVR_MEGA): Remove macro.
991         * config/avr/avr.c (avr_mega_p): Remove variable.
992         (avr_override_options): Remove inicializion of avr_mega_p.
993         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
994         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
995         (avr_jump_mode): (Ditto.).
996         (avr_output_progmem_section_asm_op): (Ditto.).
997         (avr_asm_init_sections): (Ditto.).
998         (avr_asm_init_sections): (Ditto.).
999         (avr_rtx_costs): (Ditto.).
1000         * config/avr/avr.md: (Ditto.).
1001         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
1002         '__AVR_MEGA__'.
1003
1004 2008-04-06  Richard Guenther  <rguenther@suse.de>
1005
1006         PR tree-optimization/35842
1007         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
1008         is_gimple_invariant_address.
1009
1010 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1011
1012         * gcc.c (default_compilers): Sync Fortran extensions list with
1013         that in fortran/lang-specs.h.
1014         * doc/invoke.texi: Likewise.
1015         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
1016         * dwarf2out.c (gen_compile_unit_die): Likewise.
1017
1018 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
1019
1020         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
1021
1022 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
1023
1024         PR target/12329
1025         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
1026         attribute is used for nested functions.
1027
1028 2008-04-05  Jan Hubicka  <jh@suse.cz>
1029
1030         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
1031
1032         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
1033         letter argument.
1034         (dump_files): Update.
1035         (enable_rtl_dump_file): Do not accept letter argument.
1036         * tree-pass.h (dump_file_info): Remove letter argument.
1037         * toplev.c (decode_d_option): Update -da handling.
1038         * toplev.h (enable_rtl_dump_file): Update prototype.
1039         * passes.c (register_one_dump_file): Do not accept IPA argument; work
1040         it out based on pass type.
1041         (register_dump_files_1): Likewise.
1042         (init_optimization_passes): Update register_one_dump_file calls.
1043         (execute_one_pass): Sanity check that IPA passes are called at IPA
1044         level and RTL passes at RTL level.
1045         (execute_pass_list): IPA pass can not be after or subpass of
1046         GIMPLE/RTL pass.
1047         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
1048         disallov RTL subpasses of IPA subpasses.
1049
1050 2008-04-05  Ben Elliston  <bje@au.ibm.com>
1051
1052         * tree-cfg.c (need_fake_edge_p): Return false for calls to
1053         builtins that return exactly once and do not throw. Cache call to
1054         call_expr_flags.
1055
1056 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
1057
1058         PR rtl-optimization/34916
1059         PR middle-end/35519
1060         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
1061         between instruction pairs.
1062
1063 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
1064
1065         * doc/invoke.texi: Document -mbitops for SH.
1066         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
1067         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
1068         * config/sh/sh.c (print_operand): Add %t operand code.
1069         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
1070         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
1071         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
1072         (extendqihi2): Likewise.
1073         (movqi_i): Likewise.
1074         (insv): Use bset, bclr and bst instructions for SH2A if possible.
1075         (extv): Use bld instruction for SH2A if possible.
1076         (extzv): Likewise.
1077         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
1078         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
1079         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
1080         (bset.b, bclr.b): Define peepholes.
1081         * config/sh/sh.opt (mbitops): New option.
1082
1083 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
1084
1085         PR target/35620
1086         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
1087         and view convert expression.
1088
1089 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR target/35364
1092         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
1093
1094 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
1095
1096         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
1097
1098         * config/i386/cpuid.h (bit_AES): New.
1099         (bit_PCLMUL): Likewise.
1100
1101         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
1102         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
1103         SSE2 if AES or PCLMUL is enabled.
1104         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
1105         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1106         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
1107         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
1108         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
1109         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
1110         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
1111         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
1112         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
1113         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
1114         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
1115         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
1116         __builtin_ia32_aeskeygenassist128 and
1117         __builtin_ia32_pclmulqdq128.
1118         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
1119         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
1120         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
1121
1122         * config/i386/i386.h (TARGET_AES): New.
1123         (TARGET_PCLMUL): Likewise.
1124         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
1125
1126         * config/i386/i386.md (UNSPEC_AESENC): New.
1127         (UNSPEC_AESENCLAST): Likewise.
1128         (UNSPEC_AESDEC): Likewise.
1129         (UNSPEC_AESDECLAST): Likewise.
1130         (UNSPEC_AESIMC): Likewise.
1131         (UNSPEC_AESKEYGENASSIST): Likewise.
1132         (UNSPEC_PCLMUL): Likewise.
1133
1134         * config/i386/i386.opt (maes): New.
1135         (mpclmul): Likewise.
1136
1137         * config/i386/sse.md (aesenc): New pattern.
1138         (aesenclast): Likewise.
1139         (aesdec): Likewise.
1140         (aesdeclast): Likewise.
1141         (aesimc): Likewise.
1142         (aeskeygenassist): Likewise.
1143         (pclmulqdq): Likewise.
1144
1145         * config/i386/wmmintrin.h: New.
1146
1147         * doc/extend.texi: Document AES and PCLMUL built-in function.
1148
1149         * doc/invoke.texi: Document -maes and -mpclmul.
1150
1151 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
1152
1153         * function.c (free_after_parsing): Replace with
1154         cxx_push_function_context from C++ front-end.
1155         (allocate_struct_function): Don't call langhook.
1156         * langhooks.h (struct lang_hooks_for_functions): Delete.
1157         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
1158         member "function".
1159         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
1160         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
1161         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
1162         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
1163         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
1164         remove LANG_HOOKS_FUNCTION_INITIALIZER.
1165         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
1166
1167         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
1168         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
1169         
1170 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
1171
1172         PR c/35440
1173         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
1174         for all types.
1175
1176 2008-04-04  Richard Guenther  <rguenther@suse.de>
1177
1178         PR middle-end/35823
1179         * fold-const.c (optimize_minmax_comparison): Use the correct
1180         type for the constant in the simplified comparison.
1181
1182 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
1183
1184         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
1185         Pass L2 size as "--param l2-cache-size" to the compiler.
1186         (decode_l2_cache): New function to decode L2 cache parameters using
1187         0x8000006 extended cpuid function.
1188         (detect_caches_amd): Determine parameters of L2 cache using
1189         decode_l2_caches function.
1190         (decode_caches_intel): Decode L2 cache parameters.
1191         (detect_caches_intel): Determine L2 cache parameters using
1192         decode_caches_intel and decode_l2_caches functions.
1193
1194 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
1195
1196         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
1197         secondary input reload for subword loads from the constant pool.
1198
1199 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
1200
1201         PR target/35713
1202         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
1203           constants of the appropriate size for runtime calculations.
1204
1205         PR c/35712
1206         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
1207           decimal-float literal constant zero.
1208
1209 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1210
1211         PR c/35738
1212         * c-parser.c (c_parser_omp_atomic): Call
1213         default_function_array_conversion on the RHS.
1214
1215         PR middle-end/35818
1216         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
1217         call is_variable_sized if decl has incomplete type.
1218
1219 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
1220
1221         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
1222
1223 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
1224
1225         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
1226         iterators.
1227         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
1228         (sgt<u>): Merge sgt and sgtu into new expander.
1229         (sgt, sgtu): Remove expanders.
1230         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
1231         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
1232         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
1233         *sgtu_<mode>_mips16 into new pattern.
1234         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
1235         (sge<u>): Merge sge and sgeu into new expander.
1236         (sge, sgeu): Remove expanders.
1237         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
1238         new pattern.
1239         (*sge_<mode>, second *sge_<mode>): Remove patterns.
1240         (slt<u>): Merge slt and sltu into new expander.
1241         (slt, sltu): Remove expanders.
1242         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
1243         (*slt_<mode>, *sltu_<mode>): Remove patterns.
1244         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
1245         *sltu_<mode>_mips16 into new pattern.
1246         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
1247         (sle<u>): Merge sle and sleu into new expander.
1248         (sle, sleu): Remove expanders.
1249         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
1250         (*sle_<mode>, *sleu_<mode>): Remove patterns.
1251         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
1252         *sleu_<mode>_mips16 into new pattern.
1253         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
1254
1255 2008-04-03  Jan Hubicka  <jh@suse.cz>
1256
1257         PR tree-optimization/35795
1258         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
1259         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
1260         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
1261         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
1262         * score/score3.c (score3_output_mi_thunk): Likewise.
1263         * score/score7.c (score7_output_mi_thunk): Likewise.
1264         * mips/mips.c (mips_output_mi_thunk): Likewise.
1265
1266 2008-04-03  Richard Guenther  <rguenther@suse.de>
1267
1268         * tree-vrp.c (extract_range_from_unary_expr): Handle all
1269         conversions.  Simplify code.
1270
1271 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1272
1273         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
1274
1275 2008-04-03  Tom Tromey  <tromey@redhat.com>
1276             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1277
1278         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
1279         * config/bfin/t-bfin-linux (generated_files): Add
1280         linux-sysroot-suffix.h.
1281         * doc/install.texi (Prerequisites): Require make 3.80.
1282         * doc/sourcebuild.texi (Front End Directory): Document new
1283         variable.
1284         * Makefile.in (generated_files): New variable.
1285         (ALL_HOST_OBJS): New variable.
1286         ($(ALL_HOST_OBJS)): New target.
1287
1288 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1289
1290         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
1291         (remap_block): Call id->transform_lang_insert_block instead
1292         of langhook.
1293         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
1294         Set id.transform_lang_insert_block to NULL.
1295         (clone_body): Move to cp/optimize.c
1296         * tree-inline.h (struct copy_body_data): Change
1297         transform_lang_insert_block to function pointer.
1298         (copy_generic_body, copy_decl_no_change): Export.
1299         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
1300         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
1301         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
1302
1303         * c-tree.h (insert_block): Kill.
1304         * c-decl.c (insert_block): Kill.
1305
1306 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1307
1308         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1309         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1310         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
1311         argument.
1312         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
1313         argument, call {push,pop}_function_context from here.
1314         * c-parser.c: Use c_{push,pop}_function_context.
1315
1316         * function.c (push_function_context_to): Move meat ...
1317         (push_function_context): ... here.  Simplify.
1318         * function.c (pop_function_context_from): Move meat ...
1319         (pop_function_context): ... here.  Simplify.
1320         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
1321         leave_nested).
1322         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
1323         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
1324         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
1325         * tree.h (push_function_context_to, pop_function_context_from): Remove.
1326
1327 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1328
1329         * expmed.c (extract_force_align_mem_bit_field): Remove.
1330
1331 2008-04-03  Richard Guenther  <rguenther@suse.de>
1332
1333         PR middle-end/35800
1334         * expr.h (try_casesi): Adjust prototype.
1335         * expr.c (try_casesi): Take fallback label as extra parameter.
1336         Use that for gen_casesi if default_label is NULL.
1337         * stmt.c (expand_case): Pass fallback label to try_casesi,
1338         make sure to fill gaps with a fallback label if default_label
1339         is not present.
1340
1341 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
1342
1343         PR target/35801
1344         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
1345
1346 2008-04-03  Ben Elliston  <bje@au.ibm.com>
1347
1348         * expmed.c (extract_split_bit_field): Remove if (0) code.
1349         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
1350         (do_ds_constraint): Likewise.
1351
1352 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
1353
1354         * doc/cppopts.texi (-dU): Document.
1355         * c-common.h (flag_dump_macros): Update comment.
1356         * c-opts.c (handle_OPT_d): Handle -dU.
1357         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
1358         dump_queued_macros, cb_used_define, cb_used_undef): New.
1359         (init_pp_output): Handle -dU.
1360         (cb_line_change): Call dump_queued_macros.
1361         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
1362
1363 2008-04-02  Anatoly Sokolov <aesok@post.ru>
1364
1365         * config/avr/predicates.md (io_address_operand): New predicate. 
1366         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
1367         * config/avr/avr.c (avr_io_address_p): Remove function.
1368         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
1369         'avr_io_address_p' function.
1370         (out_movhi_r_mr): (Ditto.).
1371         (out_movqi_mr_r): (Ditto.).
1372         (out_movhi_mr_r): (Ditto.).
1373         (avr_address_cost): (Ditto.).
1374
1375 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
1376
1377         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
1378         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
1379         in 32bit mode when XMM registers are available to avoid store
1380         forwarding stalls.
1381         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
1382         corresponding post-reload splitters.
1383
1384 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1385
1386         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
1387         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
1388         __builtin_ia32_roundss.
1389         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
1390         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
1391         __builtin_ia32_roundss.
1392         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
1393         IX86_BUILTIN_SHUFPD here.
1394
1395 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1396
1397         * config/i386/i386.md (plogic): New.
1398         (plogicprefix): Likewise.
1399
1400         * config/i386/mmx.md (mmx_<code><mode>3): New.
1401         (mmx_and<mode>3): Removed.
1402         (mmx_ior<mode>3): Likewise.
1403         (mmx_xor<mode>3): Likewise.
1404
1405         * config/i386/sse.md (<code><mode>3): New.
1406         (*<code><mode>3): Likewise.
1407         (*<code><mode>3): Likewise.
1408         (<code><mode>3): Likewise.
1409         (*sse_<code><mode>3): Likewise.
1410         (*sse2_<code><mode>3): Likewise.
1411         (<code>tf3): Likewise.
1412         (*<code>tf3): Likewise.
1413         (and<mode>3): Likewise.
1414         (*and<mode>3): Likewise.
1415         (ior<mode>3): Removed.
1416         (*ior<mode>3): Likewise.
1417         (xor<mode>3): Likewise.
1418         (*xor<mode>3): Likewise.
1419         (*and<mode>3): Likewise.
1420         (*ior<mode>3): Likewise.
1421         (*xor<mode>3): Likewise.
1422         (and<mode>3): Likewise.
1423         (*sse_and<mode>3): Likewise.
1424         (*sse2_and<mode>3): Likewise.
1425         (andtf3): Likewise.
1426         (*andtf3): Likewise.
1427         (ior<mode>3): Likewise.
1428         (*sse_ior<mode>3): Likewise.
1429         (*sse2_ior<mode>3): Likewise.
1430         (iortf3): Likewise.
1431         (*iortf3): Likewise.
1432         (xor<mode>3): Likewise.
1433         (*sse_xor<mode>3): Likewise.
1434         (*sse2_xor<mode>3): Likewise.
1435         (xortf3): Likewise.
1436         (*xortf3): Likewise.
1437
1438 2008-04-02  Richard Guenther  <rguenther@suse.de>
1439
1440         PR tree-optimization/14495
1441         PR tree-optimization/34793
1442         * tree-vrp.c (struct switch_update): New structure.
1443         (to_remove_edges, to_update_switch_stmts): New VECs.
1444         (simplify_switch_using_ranges): New function.  Remove not taken
1445         case labels and edges.
1446         (simplify_stmt_using_ranges): Call it.
1447         (identify_jump_threads): Mark edges we have queued for removal
1448         so we don't thread them.
1449         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
1450         case label vector.
1451         * tree-cfg.c (group_case_labels): Deal with missing default label.
1452         (tree_verify_flow_info): Allow missing default label.
1453         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
1454         (emit_case_nodes): Likewise.
1455         (expand_case): Do not rely on the default label to be present.
1456         * expr.c (try_casesi): Deal with NULL default_label.
1457         (do_tablejump): Likewise.
1458
1459 2008-04-02  Richard Guenther  <rguenther@suse.de>
1460
1461         PR tree-optimization/14495
1462         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
1463         SWITCH_EXPR here ...
1464         (vrp_visit_switch_stmt): ... but here (new function).
1465         (find_case_label_index): New helper function.
1466         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
1467
1468 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1469
1470         * fwprop.c: Fix ISO-C99ism.
1471
1472 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1473
1474         PR bootstrap/35752
1475         * Makefile.in (objdir): Set it here.
1476         * configure.ac: Not here.  Find dynamic linker characteristics.
1477         * exec-tool.in: Use them.
1478         * aclocal.m4: Regenerate.
1479         * configure: Regenerate.
1480
1481 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1482
1483         * expr.c (expand_var): Delete it.
1484         * expr.h (expand_var): Delete prototype.
1485         * function.c (expand_function_start): Use expand_decl instead.
1486         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
1487         langhook.
1488
1489 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
1490
1491         PR rtl-optimization/35542
1492         * fwprop.c (forward_propagate_and_simplify): Replace
1493         loc_reg_mentioned_in_p with reg_mentioned_p.
1494
1495 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
1496
1497         PR rtl-optimization/35281
1498         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
1499         (propagate_rtx_1): Handle PR_HANDLE_MEM.
1500         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
1501         (varying_mem_p): Move above propagate_rtx.
1502         (all_uses_available_at): Do not check MEMs.
1503
1504 2008-04-02  Rafael Espindola  <espindola@google.com>
1505
1506         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
1507         (register_edge_assert_for_2): Split the cond argument.
1508         (register_edge_assert_for_1): Adjust for the change in
1509         register_edge_assert_for_2.
1510         (register_edge_assert_for): Split the cond argument.
1511         (find_switch_asserts): Adjust for the change in
1512         register_edge_assert_for.
1513
1514 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
1515
1516         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
1517         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
1518         offsets for 64-bit mingw.
1519         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
1520         abi for x86_64-pc-mingw.
1521
1522 2008-04-02  Richard Guenther  <rguenther@suse.de>
1523
1524         * tree-vrp.c (extract_range_from_assert): Make sure to not
1525         produce range min/max with TREE_OVERFOW set.
1526         If merging a anti-range and a range keep the anti-range if
1527         the range covers all values of the type.
1528         (register_edge_assert_for_2): Only allow sign-changing
1529         conversions in detecting canonical range checks.  Also
1530         register an assert for the unsigned name if useful.
1531
1532         PR tree-optimization/35787
1533         * tree-vrp.c (vrp_val_max): New function.
1534         (vrp_val_min): Likewise.
1535         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
1536         (vrp_val_is_min): Likewise.
1537         (supports_overflow_infinity): Use vrp_val_{min,max}.
1538         (negative_overflow_infinity): Likewise.
1539         (positive_overflow_infinity): Likewise.
1540         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
1541         (is_positive_overflow_infinity): Likewise.
1542         (is_overflow_infinity): Likewise.
1543         (avoid_overflow_infinity): Use vrp_val_{min,max} and
1544         vrp_val_is_{min,max}.
1545         (set_and_canonicalize_value_range): Canonicalize anti-ranges
1546         to ranges if possible.  Avoid empty ranges.
1547
1548 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1549
1550         PR middle-end/35705
1551         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
1552         the expression is a function address.
1553
1554 2008-04-01  George Helffrich  <george@gcc.gnu.org>
1555
1556         PR fortran/PR35154, fortran/PR23057
1557         * fortran/trans-common.c (create_common):  Add decl to function
1558         chain to preserve identifier scope in debug output.
1559
1560         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
1561         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
1562         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
1563         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
1564         in common.
1565         (dbxout_syms): Check for COMMON-based symbol and wrap in
1566         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
1567         in bracket for efficiency.
1568
1569         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
1570         using DW_TAG_common_block + member offset.
1571         (add_pubname_string): New function.
1572         (dw_expand_expr): New function to find block name and offset for
1573         COMMON var.
1574         (common_check): New function to check whether symbol in Fortran COMMON.
1575         (gen_variable_die): If COMMON, use DW_TAG_common_block.
1576
1577         * testsuite/gcc.dg/debug/pr35154.c:  New test to check that non-Fortran
1578         use of common is unchanged.
1579
1580         * testsuite/lib/gfortran-dg.exp:  New harness to compile Fortran progs
1581         with all combinations of debug options available on target.
1582         * testsuite/gfortran.dg/debug/debug.exp:  Ditto.
1583         * testsuite/gfortran.dg/debug/trivial.f:  Ditto.
1584         * testsuite/gfortran.dg/debug/pr35154-stabs.f:  New test case for
1585         .stabs functionality.
1586         * testsuite/gfortran.dg/debug/pr35154-dwarf2.f:  New test case for
1587         DWARF functionality.
1588
1589 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
1590
1591         PR c/35436
1592         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
1593
1594 2008-04-02  Ben Elliston  <bje@au.ibm.com>
1595
1596         * config/v850/v850.md (casesi): Remove if (0) code.
1597         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1598         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
1599
1600 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
1601
1602         * config/i386/i386.md (rex64suffix): New mode attribute.
1603         (floathi<mode>2): Disable expander for SSE math.
1604         (*floathi<mode>2_1): New insn insn_and_split pattern.
1605         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
1606         corresponding post-reload splitters.
1607         (*floathi<mode>2_i387): New macroized insn pattern.
1608         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
1609         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
1610         insn_and_split pattern.
1611         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
1612         New macroized instruction patterns and corresponding post-reload
1613         splitters.
1614         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
1615         and corresponding post-reload splitters.
1616         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
1617         New macroized instruction patterns.
1618         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
1619         macroized instruction patterns and corresponding post-reload splitters.
1620         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
1621         corresponding post-reload splitters.
1622         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
1623         New macroized instruction patterns.
1624         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
1625         corresponding post-reload splitters.
1626         (*floatsi<mode>2_i387): New macroized instruction patterns.
1627
1628 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
1629
1630         * config/i386/i386.md (smaxmin): New.
1631         (umaxmin): Likewise.
1632         (maxminiprefix): Likewise.
1633         (maxminfprefix): Likewise.
1634         (<code><mode>3): Likewise.
1635         (smin<mode>3): Removed.
1636         (smax<mode>3): Likewise.
1637
1638         * config/i386/mmx.md (mmx_<code>v2sf3): New.
1639         (mmx_<code>v4hi3): Likewise.
1640         (mmx_<code>v8qi3): Likewise.
1641         (mmx_smaxv2sf3): Removed.
1642         (mmx_sminv2sf3): Likewise.
1643         (mmx_umaxv8qi3): Likewise.
1644         (mmx_smaxv4hi3): Likewise.
1645         (mmx_uminv8qi3): Likewise.
1646         (mmx_sminv4hi3): Likewise.
1647
1648         * config/i386/sse.md (<addsub><mode>3): New.
1649         (*<addsub><mode>3): Likewise.
1650         (<sse>_vm<addsub><mode>3): Likewise.
1651         (<maxmin><mode>3): Likewise.
1652         (*<maxmin><mode>3_finite): Likewise.
1653         (*<maxmin><mode>3): Likewise.
1654         (<sse>_vm<maxmin><mode>3): Likewise.
1655         (sse3_h<addsub>v4sf3): Likewise.
1656         (sse3_h<addsub>v2df3): Likewise.
1657         (<maxmin>v16qi3): Likewise.
1658         (*<maxmin>v16qi3): Likewise.
1659         (<maxmin>v8hi3): Likewise.
1660         (*<maxmin>v8hi3): Likewise.
1661         (*sse4_1_<maxmin><mode>3): Likewise.
1662         (*sse4_1_<maxmin><mode>3): Likewise.
1663         (add<mode>3): Removed.
1664         (*add<mode>3): Likewise.
1665         (<sse>_vmadd<mode>3): Likewise.
1666         (sub<mode>3): Likewise.
1667         (*sub<mode>3): Likewise.
1668         (<sse>_vmsub<mode>3): Likewise.
1669         (smin<mode>3): Likewise.
1670         (*smin<mode>3_finite): Likewise.
1671         (*smin<mode>3): Likewise.
1672         (<sse>_vmsmin<mode>3): Likewise.
1673         (smax<mode>3): Likewise.
1674         (*smax<mode>3_finite): Likewise.
1675         (*smax<mode>3): Likewise.
1676         (<sse>_vmsmax<mode>3): Likewise.
1677         (sse3_haddv4sf3): Likewise.
1678         (sse3_haddv2df3): Likewise.
1679         (sse3_hsubv4sf3): Likewise.
1680         (sse3_hsubv2df3): Likewise.
1681         (umaxv16qi3): Likewise.
1682         (*umaxv16qi3): Likewise.
1683         (smaxv8hi3): Likewise.
1684         (*smaxv8hi3): Likewise.
1685         (*sse4_1_smax<mode>3): Likewise.
1686         (*sse4_1_umax<mode>3): Likewise.
1687         (uminv16qi3): Likewise.
1688         (*uminv16qi3): Likewise.
1689         (sminv8hi3): Likewise.
1690         (*sminv8hi3): Likewise.
1691         (*sse4_1_smin<mode>3): Likewise.
1692         (*sse4_1_umin<mode>3): Likewise.
1693
1694 2008-04-01  Rafael Espindola  <espindola@google.com>
1695
1696         * tree-cfg.c (verify_expr): remove in_phi.
1697         (verify_stmt): Don't call walk_tree with verify_expr. Use
1698         is_gimple_min_invariant instead of is_gimple_val.
1699
1700 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1701
1702         * doc/include/gpl_v3.texi: Update for manpage generation.
1703         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
1704         gpl.texi.
1705         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
1706         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
1707         gpl_v3.texi instead of gpl.texi.
1708         (gpl.pod): New.
1709
1710 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
1711
1712         PR pch/13675
1713         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
1714
1715 2008-04-01  Rafael Espindola  <espindola@google.com>
1716
1717         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
1718         (extract_code_and_val_from_cond): Use
1719         extract_code_and_val_from_cond_with_ops.
1720
1721 2008-04-01  Jan Hubicka  <jh@suse.cz>
1722
1723         * function.c (free_after_compilation): Free epilogue_delay_list.
1724         (prepare_function_start): Assert that previous compilation was freed.
1725
1726 2008-04-01  Jan Hubicka  <jh@suse.cz>
1727             Jim Wilson  <wilson@tuliptree.org>
1728             Andreas Tobler <andreast@gcc.gnu.org>
1729
1730         PR middle-end/35781
1731         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
1732         rtl.emit instead cfun->emit.
1733         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
1734         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
1735
1736 2008-04-01  Ben Elliston  <bje@au.ibm.com>
1737
1738         * doc/c-tree.texi (Function Basics): Fix grammatical error.
1739
1740 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
1741
1742         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
1743         New options
1744         (fprofile-use): Add var flag_profile_use
1745         * coverage.c (coverage_begin_output): Do not open a gcno file for
1746         output only if -ftest-coverage is set.
1747         Do not add getpwd() to gcda file path.
1748         (build_gcov_info): Check the new flag
1749         flag_profile_datafile_relative_path.
1750         (coverage_init): Use profile_data_prefix.
1751         Read profile counter only if flag_profile_use is set.
1752         * opts.c (common_handle_option): New option fprofile-use=,
1753         fprofile-dir=, fprofile-generate=.
1754         * toplev.c (profile_data_prefix): New variable definition.
1755         * toplev.h (profile_data_prefix): New declaration.
1756         * doc/invoke.tex (Option Summary, Optimization Options):
1757         Add new options.
1758
1759 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
1760
1761         * varasm.c (output_constant_pool_1): In LABEL_REF check,
1762         use tmp consistently.
1763
1764         PR target/35695
1765         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
1766         * config/ia64/ia64.c (rtx_needs_barrier): Handle
1767         UNSPEC_FR_RECIP_APPROX_RES.
1768         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
1769
1770 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
1771
1772         PR c/35750
1773         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
1774
1775 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1776
1777         PR middle-end/30186
1778         * fold-const.c (fold_indirect_ref_1): Support accessing non first
1779         element of the vector via a pointer.
1780
1781 2008-03-31  Ian Lance Taylor  <iant@google.com>
1782
1783         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
1784
1785 2008-03-31  Jan Hubicka  <jh@suse.cz>
1786
1787         * builtins.c (expand_builtin_setjmp_receiver): Update call of
1788         get_arg_pointer_save_area.
1789         * expr.c (init_expr): Just clear out rtl.expr.
1790         * function.c (free_after_compilation): Clear out whole RTL structure.
1791         (get_func_frame_size): Merge into ...
1792         (get_frame_size): ... this one.
1793         (assign_stack_local_1): Merge into ...
1794         (assign_stack_local): ... this one.
1795         (expand_function_end): Update call of get_arg_pointer_save_area.
1796         (get_art_pointer_save_area): Remove cfun argument.
1797         * function.h (emit_status): regno_pointer_align does not need length
1798         attribute. Move x_regno_reg_rtx to ...
1799         (regno_reg_rtx): ... new global array.
1800         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
1801         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
1802         apply_args_value, forced_labels, stack_pointer_delta):
1803         Update accestors.
1804         (struct varasm_status): Move here from varasm.c
1805         (struct rtl_data): New. Move here some fields from struct function.
1806         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
1807         frame_offset, stack_check_probe_note, arg_pointer_save_area,
1808         used_temp_slots avail_temp_slots, temp_slot_level,
1809         nonlocal_goto_handler_labels): Update accesstors.
1810         (rtl): New global variable.
1811         (struct function): Move some fileds to rtl_data.
1812         (get_arg_pointer_save_area): Update prototype.
1813         * emit-rtl.c (rtl): Declare.
1814         (regno_reg_rtx): Declare.
1815         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
1816         Update.
1817         (gen_reg_rtx): Update.
1818         (init_virtual_regs): Do not tate emit_status argument.
1819         (init_emit): Do not allocate emit.
1820         * varasm.c (varasm_statuc): Move to function.h.
1821         (n_deferred_constatns): Update accestor.
1822         (init_varasm_status): Do not allocate varasm_status.
1823         (force_const_mem, get_pool_size, output_constant_pool): Update.
1824         * stmt.c (force_label_rtx): Do not use x_ prefixes.
1825         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
1826
1827 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
1828
1829         PR rtl-optimization/35729
1830         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
1831         references.
1832
1833 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1834
1835         PR target/32000
1836         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
1837         load/store if memory is unaligned.
1838         (*movti_rex64): Likewise.
1839
1840         * config/i386/predicates.md (misaligned_operand): New.
1841
1842 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
1843
1844         PR tree-opt/35431
1845         * tree-ssa-phiopt.c (conditional_replacement): Return early for
1846         complex types.
1847
1848 2008-03-31  Jan Beulich  <jbeulich@novell.com>
1849
1850         * config/ia64/constraints.md: Add 'j' constraint.
1851         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
1852         (movdi_internal): Likewise.
1853
1854 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
1855
1856         PR c/35748
1857         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
1858
1859 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1860
1861         PR target/35757
1862         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
1863         proper error message for the third argument on blendpd and
1864         blendps.
1865
1866         * config/i386/sse.md (blendbits): New.
1867         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
1868
1869 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
1870
1871         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
1872
1873 2008-03-30  Richard Guenther  <rguenther@suse.de>
1874
1875         PR middle-end/31023
1876         * fold-const.c (fold_sign_changed_comparison): Do leave
1877         conversions to base-types alone.
1878
1879 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1880
1881         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
1882         the link register if one altivec register is be saved.
1883
1884 2008-03-30  Ben Elliston  <bje@au.ibm.com>
1885
1886         * final.c (final_scan_insn): Remove if (0) code.
1887
1888 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
1889
1890         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
1891
1892 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1893
1894         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
1895         of V4SFmode to ix86_binary_operator_ok.
1896
1897 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
1898
1899         * config/i386/i386.c (override_options): Initialize
1900         ix86_veclib_handler to ix86_veclibabi_svml when
1901         -mveclibabi=svml is used.
1902         (ix86_veclibabi_svml): New function for SVML ABI style
1903         vectorization support.
1904         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
1905
1906 2008-03-28  Rafael Espindola  <espindola@google.com>
1907
1908         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
1909         (tree_binary_nonnegative_warnv_p): Make it public.
1910         (tree_single_nonnegative_warnv_p): Make it public.
1911         (tree_invalid_nonnegative_warnv_p): Make it public.
1912         (tree_unary_nonzero_warnv_p): Make it public.
1913         (tree_binary_nonzero_warnv_p): Make it public
1914         (tree_single_nonzero_warnv_p): Make it public.
1915         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
1916         (extract_range_from_binary_expr): Split the expr argument.
1917         (extract_range_from_unary_expr): Split the expr argument.
1918         (extract_range_from_comparison): Split the expr argument.
1919         (extract_range_from_expr): Use the new aux functions.
1920         (vrp_evaluate_conditional_warnv): Use
1921         vrp_evaluate_conditional_warnv_with_ops.
1922         * tree.h (tree_unary_nonzero_warnv_p): Declare.
1923         (tree_binary_nonzero_warnv_p): Declare.
1924         (tree_single_nonzero_warnv_p): Declare.
1925         (tree_expr_nonzero_warnv_p): Declare.
1926         (tree_unary_nonnegative_warnv_p): Declare.
1927         (tree_binary_nonnegative_warnv_p): Declare.
1928         (tree_single_nonnegative_warnv_p): Declare.
1929         (tree_invalid_nonnegative_warnv_p): Declare.
1930
1931 2008-03-28  Richard Guenther  <rguenther@suse.de>
1932
1933         PR tree-optimization/30317
1934         PR tree-optimization/30911
1935         PR tree-optimization/34793
1936         * tree-vrp.c (set_and_canonicalize_value_range): New function.
1937         (struct assert_locus_d): New member EXPR.
1938         (register_new_assert_for): Add EXPR parameter to support
1939         ASSERT_EXPR <name, expr OP limit>.
1940         (register_edge_assert_for_1): Adjust callers.
1941         (find_assert_locations): Likewise.
1942         (process_assert_insertions_for): Build condition from expression.
1943         (extract_range_from_assert): Handle ASSERT_EXPRs
1944         of the form ASSERT_EXPR <name, expr OP limit>.
1945         (register_edge_assert_for_2): New helper registering
1946         asserts for comparisons.  Recognize range tests of the form
1947         (unsigned)i - CST1 OP CST2.
1948         (register_edge_assert_for_1): Use it.
1949         (register_edge_assert_for): Likewise.
1950         (needs_overflow_infinity): Integer sub-types
1951         do not need overflow infinities.
1952         (vrp_val_is_max): The extreme values of integer sub-types
1953         are those of the base type.
1954         (vrp_val_is_min): Likewise.
1955         * tree.def (ASSERT_EXPR): Document extra allowed conditional
1956         expressions.
1957
1958 2008-03-28  Nick Clifton  <nickc@redhat.com>
1959
1960         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
1961         Return GENERAL_REGS for stack adjustment reloads.
1962
1963 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1964
1965         PR target/31334
1966         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
1967         const_vector when all the vectors are constant.
1968
1969 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
1970
1971         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
1972         comparisons.
1973         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
1974         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
1975         (scc_sf): New.
1976         (s<code>_sf): Use new scc_sf attribute for opcode names.
1977
1978 2008-03-27  Tom Tromey  <tromey@redhat.com>
1979
1980         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
1981         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
1982         config/spu/t-spu-elf, config/i386/t-interix,
1983         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
1984         config/i386/x-darwin, config/i386/x-mingw32,
1985         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
1986         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
1987         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
1988         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
1989         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
1990         config/rs6000/x-darwin, config/rs6000/t-rs6000,
1991         config/score/t-score-elf, config/arm/t-strongarm-pe,
1992         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
1993         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
1994         Revert automatic dependency patch.
1995
1996 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1997
1998         PR target/35657
1999         * config/i386/i386.c (ix86_function_arg_boundary): Align
2000         decimal floating point to its natural boundary.
2001
2002 2008-03-27  Richard Guenther  <rguenther@suse.de>
2003
2004         PR middle-end/35716
2005         * fold-const.c (fold_comparison): Restrict distinct decl
2006         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
2007         solely rely on operand_equal_p.
2008
2009 2008-03-27  Richard Guenther  <rguenther@suse.de>
2010
2011         PR c/32511
2012         * c-common.c (handle_weak_attribute): Reject combination of
2013         weak and inline.
2014
2015 2008-03-27  Richard Guenther  <rguenther@suse.de>
2016
2017         PR tree-optimization/32810
2018         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
2019         conversions from DECL_INITIAL.
2020         (fold_const_aggregate_ref): Likewise from constructor elements.
2021
2022 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
2023
2024         * tree-affine.h (aff_combination_expand): Declare.
2025         (get_inner_reference_aff): Likewise.
2026         * tree-affine.c (aff_combination_expand): Split out from
2027         tree_to_aff_combination_expand.
2028         (get_inner_reference_aff): New function.
2029         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
2030         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
2031         (struct lim_aux_data): sm_done field removed.
2032         (mem_ref_loc_p, mem_ref_locs_p): New types.
2033         (struct mem_ref): Added id, stored, accesses_in_loop,
2034         indep_loop, dep_loop, indep_ref, dep_ref fields.
2035         Removed is_stored, locs and next fields.
2036         (memory_accesses): New variable.
2037         (movement_possibility): Do not allow moving statements
2038         that store to memory.
2039         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
2040         New functions.
2041         (determine_max_movement): For statements with memory references,
2042         find the outermost loop in that the reference is independent.
2043         (move_computations_stmt): Mark the virtual operands for renaming.
2044         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
2045         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
2046         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
2047         add_vop_ref_mapping, create_vop_ref_mapping_loop,
2048         create_vop_ref_mapping, analyze_memory_references,
2049         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
2050         get_all_locs_in_loop, ref_always_accessed_p,
2051         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
2052         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
2053         store_motion_loop, store_motion): New functions.
2054         (struct vop_to_refs_elt): New type.
2055         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
2056         memref_hash, memref_eq, hoist_memory_references): Rewritten.
2057         (schedule_sm): Replaced by...
2058         (execute_sm): ... this.
2059         (determine_lsm_ref, hoist_memory_references,
2060         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
2061         find_more_ref_vops, free_mem_ref, free_mem_refs,
2062         determine_lsm_loop, determine_lsm): Removed.
2063         (tree_ssa_lim_finalize): Free data structures used by store motion.
2064         (tree_ssa_lim): Call analyze_memory_references.  Use
2065         store_motion instead of determine_lsm.
2066
2067 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2068
2069         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
2070         rename tmake_file to m68hc11/t-m68hc11.
2071         (mcore): Set inhibit_libc to true.
2072         * config.host (alpha*-dec-*vms*): Set extra_programs.
2073         (interix3*): Don't use host_xmake_file.
2074         * configure.ac: Let config.gcc override inhibit_libc.
2075         * configure: Regenerate.
2076
2077         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
2078         * config/t-openbsd-thread: Remove commented out lines.
2079         
2080         * config/x-interix: Remove.
2081
2082         * config/m68hc11/t-m68hc11-gas: Rename to...
2083         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
2084
2085         * config/mcore/t-mcore: Remove T_CFLAGS.
2086         * config/mcore/t-mcore-pe: Likewise.
2087
2088 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
2089
2090         * configure.ac: Replace custom __GNU_SOURCE test with
2091         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
2092         * aclocal.m4: Regenerate.
2093         * configure: Regenerate.
2094         * config.in: Regenerate.
2095
2096 2008-03-27  Richard Guenther  <rguenther@suse.de>
2097
2098         * fold-const.c (target.h): Include.
2099         (fold_comparison): Fold comparison of addresses of decls
2100         that bind locally or of constants.  Consolidate address folding code.
2101         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
2102         results from fold_binary_to_constant.
2103         (compare_values_warnv): Likewise.
2104
2105 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
2106
2107         PR middle-end/35429
2108         * fold-const.c (fold_truthop): Check for integeral types when folding
2109         a == 0 && b == 0 and a != 0 || b != 0 .
2110
2111 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
2112
2113         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
2114
2115 2008-03-26  Andreas Schwab  <schwab@suse.de>
2116
2117         * doc/invoke.texi: Fix use of @item vs. @itemx.
2118
2119 2008-03-26  Tom Tromey  <tromey@redhat.com>
2120
2121         * Makefile.in (build/gensupport.o, build/print-rtl.o,
2122         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
2123         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
2124         build/gencodes.o, build/genconditions.o, build/genconfig.o,
2125         build/genconstants.o, build/genemit.o, build/genextract.o,
2126         build/genflags.o, build/genmddeps.o, build/genopinit.o,
2127         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
2128         options.h.
2129
2130 2008-03-26  Richard Guenther  <rguenther@suse.de>
2131
2132         Revert
2133         2008-03-26  Richard Guenther  <rguenther@suse.de>
2134
2135         * fold-const.c (target.h): Include.
2136         (fold_comparison): Fold comparison of addresses of two decls
2137         that bind locally.  Consolidate address folding code.
2138
2139 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2140
2141         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
2142         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
2143         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
2144         dconstsqrt2, dconstthird, dconste and/or dconst10.
2145         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
2146         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
2147         dconstsqrt2, dconste): Delete.
2148         (init_emit_once): Likewise.  Simplify initializing dconstm1.
2149         Constify variable.
2150         * real.c (get_real_const): New.
2151         * real.h (dconst3, dconst10, dconstm2, dconstthird,
2152         dconstsqrt2, dconste): Delete.
2153         (real_value_const, get_real_const): New.
2154
2155 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
2156
2157         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
2158
2159         * config/i386/i386.c (ix86_function_arg_boundary): Check
2160         BIGGEST_ALIGNMENT instead of 128.
2161         (setup_incoming_varargs_64): Likewise.
2162
2163 2008-03-26  Tom Tromey  <tromey@redhat.com>
2164
2165         * Makefile.in (DEPFILES): Add missing '/'.
2166
2167 2008-03-26  Richard Guenther  <rguenther@suse.de>
2168
2169         * fold-const.c (target.h): Include.
2170         (fold_comparison): Fold comparison of addresses of two decls
2171         that bind locally.  Consolidate address folding code.
2172
2173 2008-03-26  Nick Clifton  <nickc@redhat.com>
2174
2175         PR target/31232
2176         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
2177         not allow INT+INT as a legitimate addressing mode.
2178
2179 2008-03-26  Richard Guenther  <rguenther@suse.de>
2180
2181         * tree-flow.h (widen_bitfield): Remove declaration.
2182         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
2183         (widen_bitfield): Remove function.
2184         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
2185         code.
2186
2187 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2188
2189         PR target/31558
2190         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
2191         error_mark_node's.
2192
2193 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2194
2195         PR rtl-optimization/35232
2196         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
2197         (forget_old_reloads_1, forget_marked_reloads): Don't clear
2198         reg_reloaded_call_part_clobbered here.
2199         (reload_regs_reach_end_p): New function.
2200         (reload_reg_rtx_for_input): New variable.
2201         (reload_reg_rtx_for_output): Likewise.
2202         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
2203         when reassigning a pseudo register.  Load reloadreg from 
2204         reload_reg_rtx_for_input, moving the mode and register
2205         calculation to...
2206         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
2207         instead of the original when deciding whether an input reload
2208         would be a no-op or whether an output reload can be deleted.
2209         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
2210         when setting up new_spill_reg_store.  Load it from
2211         reload_reg_rtx_for_output, moving the mode and register
2212         calculation to...
2213         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
2214         instead of the original when deciding whether an output reload
2215         would be a no-op.  Do the same when modifying insn notes.
2216         Use rtx_equal_p instead of == to compare the registers.
2217         (inherit_piecemeal_p): Take a mode and two register numbers
2218         as argument.
2219         (emit_reload_insns): Clear new_spill_reg_store for every hard
2220         register in the reload register.  Remove spill registers
2221         from reg_reloaded_valid before considering whether to record
2222         inheritance information for them.  Use reload_reg_rtx_for_output
2223         instead of reg_rtx when recording output reloads.  Use
2224         reload_reg_rtx_for_input instead of reg_rtx when recording
2225         input reloads.  Set or clear reg_reloaded_call_part_clobbered
2226         at the same time as setting reg_reloaded_valid.
2227         (delete_output_reload): Add a new_reload_reg parameter and use it
2228         instead of rld[j].reg_rtx.
2229         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
2230         calls accordingly.
2231
2232 2008-03-25  Tom Tromey  <tromey@redhat.com>
2233
2234         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
2235         (build/genattr.o): Likewise.
2236         (build/genattrtab.o): Likewise.
2237         (build/gencodes.o): Likewise.
2238         (build/genconfig.o): Likewise.
2239         (build/genconstants.o): Likewise.
2240         (build/genemit.o): Likewise.
2241         (build/genextract.o): Likewise.
2242         (build/genflags.o): Likewise.
2243
2244 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
2245         
2246         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
2247         instead of size_int for integer types.
2248         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
2249         to match type of MINUS_EXPR.
2250         
2251 2008-03-25  Tom Tromey  <tromey@redhat.com>
2252
2253         * configure: Rebuilt.
2254         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
2255         Makefile.
2256
2257 2008-03-25  Tom Tromey  <tromey@redhat.com>
2258
2259         * config/x-solaris (host-solaris.o): Update.
2260         * config/x-linux (host-linux.o): Update.
2261         * config/x-hpux (host-hpux.o): Update.
2262         * config/x-darwin (host-darwin.o): Update.
2263         * config/v850/t-v850e (v850-c.o): Update.
2264         * config/v850/t-v850 (v850-c.o): Update.
2265         * config/t-vxworks (vxworks.o): Update.
2266         * config/t-sol2 (sol2-c.o, sol2.o): Update.
2267         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
2268         * config/spu/t-spu-elf (spu-c.o): Update.
2269         (spu.o): Remove.
2270         * config/sh/t-symbian (sh-c.o): Update.
2271         (symbian.o): Update.
2272         * config/sh/t-sh (sh-c.o): Update.
2273         * config/score/t-score-elf (score7.o, score3.o): Update.
2274         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
2275         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
2276         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
2277         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
2278         (rs6000.o): Remove.
2279         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
2280         * config/m32c/t-m32c (m32c-pragma.o): Update.
2281         * config/ia64/t-ia64 (ia64-c.o): Update.
2282         * config/i386/x-mingw32 (host-mingw32.o): Update.
2283         * config/i386/x-i386 (driver-i386.o): Update.
2284         * config/i386/x-darwin (host-i386-darwin.o): Update.
2285         * config/i386/x-cygwin (host-cygwin.o): Update.
2286         * config/i386/t-nwld (nwld.o): Update.
2287         * config/i386/t-netware (netware.o): Update.
2288         * config/i386/t-interix (winnt.o): Update.
2289         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
2290         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
2291         msformat-c.o): Update.
2292         * config/bfin/t-bfin-linux (generated_files): Add
2293         linux-sysroot-suffix.h.
2294         * config/arm/t-wince-pe (pe.o): Update.
2295         * config/arm/t-strongarm-pe (pe.o): Update.
2296         * config/arm/t-pe (pe.o): Update.
2297         * config/arm/t-arm (arm-c.o): Update.
2298         * doc/install.texi (Prerequisites): Require make 3.80.
2299         * Makefile.in: Remove .o targets.
2300         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
2301         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
2302         (simple_generated_h, simple_generated_c): Move earlier.
2303         (generated_files): New variable.
2304         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
2305         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
2306         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
2307         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
2308         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
2309         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
2310         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
2311         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
2312         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
2313         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
2314         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
2315         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
2316         (.c.o): Remove.
2317         (COMPILE.base, COMPILE): New variables.
2318         (%.o): New pattern rule.
2319         (ALL_HOST_OBJS): New variable.
2320         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
2321         (dummy-checksum.o, cc1-checksum.o): Remove.
2322         (DRIVER_SHLIB): New variable.
2323         (DRIVER_DEFINES): Use it.
2324         (gencondmd.c): Move out of build/.
2325         (s-conditions): Update.
2326         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
2327         (ALL_BUILD_OBJS): Likewise.
2328         (build/%.o): Use BUILDCOMPILE.
2329         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
2330         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
2331         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
2332         build/gencheck.o, build/gencodes.o, build/genconditions.o,
2333         build/genconfig.o, build/genconstants.o, build/genemit.o,
2334         build/genextract.o, build/genflags.o, build/genmddeps.o,
2335         build/genopinit.o, build/genoutput.o, build/genpeep.o,
2336         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
2337         build/gen-protos.o, build/scan.o, build/fix-header.o,
2338         build/scan-decls.o): Simplify.
2339         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
2340         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
2341         prefix.o, toplev.o): Reduce to variable setting.
2342         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
2343         ($(out_object_file), gcc-options.o): New targets.
2344         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
2345         * configure: Rebuilt.
2346         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
2347         * doc/sourcebuild.texi (Front End Directory): Document new variable.
2348
2349 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
2350
2351         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
2352         complain when we hit an error, return ERROR_MARK_NODE.
2353
2354 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2355
2356         * config/sh/constraints.md (Pso, Psz): New constraints.
2357         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
2358         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
2359
2360 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2361
2362         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
2363         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
2364
2365 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
2366
2367         * config/sh/sh.md (prefetch): Add condition for SH2A target.
2368         (prefetch_sh2a): New.   
2369
2370 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2371             Naveen.H.S  <naveen.hs@kpitcummins.com>
2372
2373         * config/sh/constraints.md (I28): New constraint.
2374         * config/sh/sh.c (broken_move): Add support for movi20s.
2375         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
2376
2377 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
2378             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
2379             Naveen.H.S  <naveen.hs@kpitcummins.com>
2380
2381         * config/sh/sh.c (SH_ATTRIBUTES): Define.
2382         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
2383         (print_operand): Handle resbank in %@ operand code.
2384         (sh_encode_section_info): New.
2385         (push_regs): Add conditions for resbank.
2386         (sh_expand_epilogue): Likewise.
2387         (sh_insert_attributes): Likewise.
2388         (sh_attribute_table): Likewise.
2389         (sh_handle_resbank_handler_attribute): New.
2390         (sh2a_handle_function_vector_handler_attribute): New.
2391         (sh2a_is_function_vector_call): New.
2392         (sh2a_get_function_vector_number): New.
2393         (sh2a_function_vector_p): New.
2394         (sh_cfun_resbank_handler_p): New.
2395         * config/sh/sh.md (calli): Emit jsr/n if possible.
2396         (calli_tbr_rel): New.
2397         (calli_pcrel): Emit jsr/n if possible.
2398         (return_i): Emit rts/n if possible.
2399         (call_valuei_tbr_rel): New.
2400         (call_valuei_pcrel): Add condition for SH2A target.
2401         (call_value): Likewise.
2402         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
2403         (sh2a_get_function_vector_number): Likewise.
2404         (sh2a_is_function_vector_call): Likewise.
2405         * doc/extend.texi: Document TBR relative addressing of SH2A.
2406         (resbank): Add description for SH2A.
2407
2408 2008-03-24  Richard Guenther  <rguenther@suse.de>
2409
2410         PR c/22371
2411         * gimplify.c (gimplify_modify_expr): For frontend type-correct
2412         pointer assignments change conversions according to middle-end rules.
2413         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
2414         * configure.ac: Include type checking in yes.
2415         * configure: Regenerate.
2416
2417 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2418
2419         * diagnostic.c (diagnostic_count_diagnostic): Delete.
2420         (diagnostic_report_diagnostic): Update. Handle ICEs here.
2421         
2422 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
2423
2424         * gthr-vxworks.h (UNUSED): Define.
2425
2426 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
2427
2428         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
2429
2430 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
2431
2432         * doc/extend.texi (Function Attributes): Add missing comma in the
2433         example of the "alloc_size" attribute.
2434         
2435 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
2436
2437         Revert:
2438         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
2439
2440         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2441         32bit host.
2442
2443         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2444
2445         PR target/35496
2446         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2447         of the underlying type of a MS bitfield layout to the natural
2448         alignment of the type.
2449
2450         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2451
2452         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2453         to their natural alignment to avoid store forwarding stalls.
2454
2455 2008-03-22  Richard Guenther  <rguenther@suse.de>
2456
2457         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
2458         For PHI nodes verify the address is invariant.
2459         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
2460         (get_symbol_constant_value): Use is_gimple_min_invariant.
2461         (maybe_fold_stmt_indirect): Likewise.
2462
2463 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
2464
2465         PR rtl-optimization/33927
2466         * Makefile.in (dse.o): Depend on $(TM_P_H).
2467         * expr.h (extract_low_bits): Declare.
2468         * expmed.c (extract_low_bits): New function.
2469         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
2470         * dse.c: Include tm_p.h.
2471         (find_shift_sequence): Remove the read_reg argument and return the
2472         read value.  Emit the instructions instead of returning them.
2473         Iterate on new_mode rather than calculating it each time.
2474         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
2475         source to NEW_MODE and extract_low_bits to convert the shifted
2476         value to READ_MODE.
2477         (replace_read): Allow the load and store to have different mode
2478         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
2479         or extraction instructions before trying the replacement.  Update
2480         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
2481
2482 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
2483
2484         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
2485         to their natural alignment to avoid store forwarding stalls.
2486
2487 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2488
2489         PR target/27946
2490         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
2491         encouraging but not allowing gprs for input;
2492         change the input constraint to !f#r.
2493         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
2494         gprs for output;
2495         change the output constraint to !f#r.
2496
2497 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
2498
2499         PR target/13958
2500         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
2501         corresponding post-reload splitters.
2502         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
2503         when x87 FP math is selected.
2504         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
2505         New function prototype.
2506         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
2507         unreachable function to ease macroization of insn patterns.
2508
2509 2008-03-21  Martin Jambor  <mjambor@suse.cz>
2510
2511         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
2512         reference dumps if ddr is NULL or dependence is unknown.
2513
2514 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2515
2516         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
2517         unsigned extension into account.
2518         (ATOMIC_COMPARE_AND_SWAP): Likewise.
2519         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
2520         Do computations on a scratch register.
2521
2522 2008-03-21  Richard Guenther  <rguenther@suse.de>
2523
2524         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2525         Use is_gimple_min_invariant instead of TREE_INVARIANT.
2526         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
2527         * tree-ssa-dom.c (record_equality): Likewise.
2528         * tree-inline.c (copy_body_r): Likewise.
2529         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
2530         TREE_INVARIANT.
2531
2532 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2533
2534         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
2535         as 'delete_unused' argument.
2536
2537 2008-03-20  Richard Guenther  <rguenther@suse.de>
2538
2539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
2540         special casing of constant qualifiers.
2541         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
2542         care about them in general.
2543         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
2544         regardless of their type.
2545         (fold_stmt_r): Forcefully fold *& if we end up with that.
2546
2547 2008-03-20  Paul Brook  <paul@codesourcery.com>
2548
2549         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
2550         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
2551         linker flags.
2552         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
2553         definition.
2554         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
2555         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
2556
2557 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
2558
2559         * common.opt (Wmudflap): New option.
2560         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
2561         (mx_register_decls): Likewise.
2562         (mudflap_finish_file): Likewise.
2563         * doc/invoke.texi: Document -Wno-mudflap.
2564
2565 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
2566
2567         * c-format.c (replace_format_name_to_system_name): New.
2568         (cmp_attribs): New.
2569         (convert_format_name_to_system_name): New.
2570         (decode_format_attr): Add use of convert_format_name_to_system_name.
2571         (format_types_orig): Add gnu_ prefix to names.
2572         (check_format_info_main): Special treating of \0 escaped names for
2573         supporting multi-character format specifiers as I32, I64.
2574         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
2575         (gnu_target_overrides_format_attributes): New.
2576         * c-format.h: Add structure target_ovr_attr to hold
2577         system specific formatter names.
2578         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
2579         msformat-c.o file to c_target_objs and cxx_target_objs.
2580         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2581         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
2582         (TARGET_N_FORMAT_TYPES): New.
2583         * config/i386/msformat-c.c: New.
2584         * config/i386/t-cygming: Add build rule for msformat-c.o.
2585         * doc/extend.texi: Add new format names gnu_* and ms_* and
2586         further details.
2587         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
2588
2589 2008-03-20  Ira Rosen  <irar@il.ibm.com>
2590
2591         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
2592         optimizations turned on under -O3.
2593         (ftree-vectorize): Add that the flag is turned on with -O3.
2594
2595 2008-03-20  Ben Elliston  <bje@au.ibm.com>
2596
2597         * regmove.c (try_auto_increment): Fix spelling error in comment.
2598         * final.c (final_scan_insn): Likewise.
2599
2600 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
2601
2602         PR target/14552
2603         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
2604         allocator preferences for "y" and "r" class registers.
2605         ("*mov<mode>_internal"): Ditto.
2606         ("*movv2sf_internal_rex64"): Ditto.
2607         ("*movv2sf_internal"): Ditto.
2608
2609 2008-03-19  Michael Matz  <matz@suse.de>
2610
2611         PR middle-end/35616
2612         * calls.c (expand_call): Check overlap of arguments with call
2613         address for sibcalls.
2614
2615 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
2616
2617         PR target/35496
2618         * stor-layout.c (update_alignment_for_field): Set minimum alignment
2619         of the underlying type of a MS bitfield layout to the natural
2620         alignment of the type.
2621
2622 2008-03-19  Jan Hubicka  <jh@suse.cz>
2623
2624         PR other/35094
2625         * toplev.c (decode_d_option): Handle all CPP flags.
2626         * tree-vrp.c: Update tree_pass descriptors.
2627         * regrename.c: Update tree_pass descriptors.
2628         * fwprop.c: Update tree_pass descriptors.
2629         * doc/invoke.texi: Remove documentation of dropped -d? flags.
2630         * tree-into-ssa.c: Update tree_pass descriptors.
2631         * tree-dump.c: Update tree_pass descriptors.
2632         * tree-complex.c: Update tree_pass descriptors.
2633         * tree-dump.h: Update tree_pass descriptors.
2634         * see.c: Update tree_pass descriptors.
2635         * cgraphbuild.c: Update tree_pass descriptors.
2636         * tracer.c: Update tree_pass descriptors.
2637         * tree-loop-distribution.c: Update tree_pass descriptors.
2638         * cgraph.c: Update tree_pass descriptors.
2639         * postreload-gcse.c: Update tree_pass descriptors.
2640         * postreload.c: Update tree_pass descriptors.
2641         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
2642         * tree-tailcall.c: Update tree_pass descriptors.
2643         * tree-pass.h (tree_opt_pass): Rename to ...
2644         (opt_pass) ... this one; add "type" field and remove letter field.
2645         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
2646         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
2647         all_lowering_passes): Update declaration.
2648         * ipa-cp.c: Update tree_pass descriptors.
2649         * final.c: Update tree_pass descriptors.
2650         * omp-low.c: Update tree_pass descriptors.
2651         * tree-ssa-dse.c: Update tree_pass descriptors.
2652         * ipa-reference.c: Update tree_pass descriptors.
2653         * tree-ssa-uncprop.c: Update tree_pass descriptors.
2654         * auto-inc-dec.c: Update tree_pass descriptors.
2655         * reorg.c: Update tree_pass descriptors.
2656         * cgraphunit.c: Update tree_pass descriptors.
2657         * tree-ssa-copyrename.c: Update tree_pass descriptors.
2658         * tree-ssa-ccp.c: Update tree_pass descriptors.
2659         * df-core.c: Update tree_pass descriptors.
2660         * mode-switching.c: Update tree_pass descriptors.
2661         * tree-nomudflap.c: Update tree_pass descriptors.
2662         * modulo-sched.c: Update tree_pass descriptors.
2663         * ipa-pure-const.c: Update tree_pass descriptors.
2664         * cse.c: Update tree_pass descriptors.
2665         * web.c: Update tree_pass descriptors.
2666         * tree-stdarg.c: Update tree_pass descriptors.
2667         * tree-ssa-math-opts.c: Update tree_pass descriptors.
2668         * tree-ssa-dom.c: Update tree_pass descriptors.
2669         * tree-nrv.c: Update tree_pass descriptors.
2670         * tree-ssa-alias.c: Update tree_pass descriptors.
2671         * loop-init.c: Update tree_pass descriptors.
2672         * gimple-low.c: Update tree_pass descriptors.
2673         * ipa-inline.c: Update tree_pass descriptors.
2674         * tree-ssa-sink.c: Update tree_pass descriptors.
2675         * global.c: Update tree_pass descriptors.
2676         * ifcvt.c: Update tree_pass descriptors.
2677         * jump.c: Update tree_pass descriptors.
2678         * predict.c: Update tree_pass descriptors.
2679         * tree-ssa-loop.c: Update tree_pass descriptors.
2680         * recog.c: Update tree_pass descriptors.
2681         * dse.c: Update tree_pass descriptors.
2682         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
2683         * tree-eh.c: Update tree_pass descriptors.
2684         * regmove.c: Update tree_pass descriptors.
2685         * local-alloc.c
2686         * function.c: Update tree_pass descriptors.
2687         * tree-vectorizer.c: Update tree_pass descriptors.
2688         * gcse.c: Update tree_pass descriptors.
2689         * ipa-type-escape.c: Update tree_pass descriptors.
2690         * tree-if-conv.c: Update tree_pass descriptors.
2691         * init-regs.c: Update tree_pass descriptors.
2692         * ipa.c: Update tree_pass descriptors.
2693         * tree-ssa-phiopt.c: Update tree_pass descriptors.
2694         * rtl-factoring.c: Update tree_pass descriptors.
2695         * lower-subreg.c: Update tree_pass descriptors.
2696         * bt-load.c: Update tree_pass descriptors.
2697         * tree-dfa.c: Update tree_pass descriptors.
2698         * except.c: Update tree_pass descriptors.
2699         * emit-rtl.c: Update tree_pass descriptors.
2700         * cfgexpand.c: Update tree_pass descriptors.
2701         * tree-cfgcleanup.c: Update tree_pass descriptors.
2702         * cfgcleanup.c: Update tree_pass descriptors.
2703         * tree-ssa-pre.c: Update tree_pass descriptors.
2704         * tree-sra.c: Update tree_pass descriptors.
2705         * tree-mudflap.c: Update tree_pass descriptors.
2706         * tree-ssa-copy.c: Update tree_pass descriptors.
2707         * cfglayout.c: Update tree_pass descriptors.
2708         * tree-ssa-forwprop.c: Update tree_pass descriptors.
2709         * tree-ssa-dce.c: Update tree_pass descriptors.
2710         * tree-ssa.c: Update tree_pass descriptors.
2711         * regclass.c: Update tree_pass descriptors.
2712         * integrate.c: Update tree_pass descriptors.
2713         * tree-optimize.c: Update tree_pass descriptors.
2714         * tree-ssa-phiprop.c: Update tree_pass descriptors.
2715         * tree-object-size.c: Update tree_pass descriptors.
2716         * combine.c: Update tree_pass descriptors.
2717         * tree-outof-ssa.c: Update tree_pass descriptors.
2718         * bb-reorder.c: Update tree_pass descriptors.
2719         * stack-ptr-mod.c: Update tree_pass descriptors.
2720         * var-tracking.c: Update tree_pass descriptors.
2721         * tree-profile.c: Update tree_pass descriptors.
2722         * tree-vect-generic.c: Update tree_pass descriptors.
2723         * reg-stack.c: Update tree_pass descriptors.
2724         * sched-rgn.c: Update tree_pass descriptors.
2725         * tree-ssa-structalias.c: Update tree_pass descriptors.
2726         * tree-cfg.c: Update tree_pass descriptors.
2727         * passes.c (current_pass): Update declaration.
2728         (finish_optimization_passes): Update.
2729         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
2730         (register_one_dump_file, register_dump_files_1, next_pass_1):
2731         Update arguments.
2732         (init_optimization_passes): Update handling of new types.
2733         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
2734         * ipa-struct-reorg.c: Update tree_pass descriptors.
2735         * tree-ssa-reassoc.c: Update tree_pass descriptors.
2736         * combine-stack-adj.c: Update tree_pass descriptors.
2737         * cfgrtl.c: Update tree_pass descriptors.
2738         * dce.c: Update tree_pass descriptors.
2739         * tree-ssanames.c: Update tree_pass descriptors.
2740
2741 2008-03-19  Richard Guenther  <rguenther@suse.de>
2742
2743         PR middle-end/35609
2744         * tree-ssa.c (walk_data): New structure.
2745         (warn_uninitialized_var): If not always_executed warn with "maybe"
2746         instead of "is".
2747         (execute_early_warn_uninitialized): Compute post-dominators.
2748         Initialize always_executed before processing each basic block.
2749
2750 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
2751
2752         PR target/35504
2753         * config/i386/i386.c (x86_this_parameter): Calculate correct location
2754         of "this" pointer when "regparm = N" or "fastcall" is in effect.
2755
2756 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2757
2758         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
2759
2760 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
2761
2762         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
2763         is true.
2764         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
2765         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
2766         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
2767         target after ignore has been set, and move there also the commputation
2768         of subtarget and original_target.
2769         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
2770         (LANG_HOOKS_INITIALIZER): Remove it.
2771         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
2772
2773 2008-03-18  Richard Guenther  <rguenther@suse.de>
2774
2775         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
2776         found an expression with constants, note that in the VN for the lhs.
2777         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
2778         fold them to constants if possible.  Run cleanup_cfg if done so.
2779         (execute_pre): Return todo.
2780         (do_pre): Likewise.
2781         (execute_fre): Likewise.
2782         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
2783         of constants.
2784         (get_prop_source_stmt): Look through pointer conversions.
2785
2786 2008-03-18  Jan Hubicka  <jh@suse.cz>
2787
2788         * tree-pretty-print.c: Include predict.h.
2789         (dump_generic_node): Dump predictor.
2790         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
2791         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
2792         * gimple-low.c (lower_stmt): Likewise.
2793         * expr.c (expand_expr_real): Likewise.
2794         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
2795         them.
2796         (build_predict_expr, build_predict_expr): New.
2797         * predict.h (predictor_name, build_predict_expr): Update.
2798         * c-typeck.c (c_finish_bc_stmt): Add prediction.
2799         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
2800         * predict.def (PRED_CONTINUE): Update hitrate.
2801         * tree.def (PREDICT_EXPR): Define.
2802         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
2803         do not handle BIND_EXPR.
2804         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
2805         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
2806         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
2807         operands.
2808
2809 2008-03-18  Michael Matz  <matz@suse.de>
2810
2811         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
2812
2813 2008-03-18  Richard Guenther  <rguenther@suse.de>
2814
2815         * tree-gimple.h (is_gimple_invariant_address): Declare.
2816         (is_gimple_constant): Likewise.
2817         * tree-gimple.c (is_gimple_constant): New function.
2818         (is_gimple_invariant_address): Likewise.
2819         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
2820         and is_gimple_invariant_address.
2821         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
2822         previous change.
2823         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
2824         an addressable base.
2825
2826 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2827
2828         PR middle-end/35611
2829         * gimplify.c (gimplify_expr): Gimplify second operand of
2830         OMP_ATOMIC_LOAD.
2831
2832 2008-03-17  Richard Guenther  <rguenther@suse.de>
2833
2834         PR tree-optimization/19637
2835         * fold-const.c (fold_unary): Remove restrictions of removing
2836         intermediate pointer-conversions (P2)(P1)P0.
2837         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
2838         conversion to void pointer.
2839         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
2840
2841 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
2842
2843         PR debug/31510
2844         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
2845         emulated thread local variables.
2846
2847 2008-03-16  Richard Guenther  <rguenther@suse.de>
2848
2849         PR middle-end/35607
2850         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2851         expand TREE_INVARIANT operations that are not gimple invariant.
2852
2853 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
2854
2855         * doc/extend.texi (Alignment): Say that the ABI controls
2856         the __alignof__ for non-strict-alignment targets rather
2857         than being a recommendation.
2858
2859 2008-03-15  Paul Brook  <paul@codesourcery.com>
2860
2861         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
2862         annotations.
2863         (arm_output_fn_unwind): Mark functions that can not be unwound.
2864
2865 2008-03-15  Paul Brook  <paul@codesourcery.com>
2866
2867         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
2868         extension instructions.
2869
2870 2008-03-15  Richard Guenther  <rguenther@suse.de>
2871
2872         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
2873         and fold constant aggregate refs.
2874         (fold_const_aggregate_ref): Handle string constants
2875         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
2876         (evaluate_stmt): Simplify now that ccp_fold folds constant
2877         aggregate refs.
2878
2879 2008-03-15  Paul Brook  <paul@codesourcery.com>
2880
2881         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
2882         (extzv): Use gen_extzv_t2.
2883         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
2884
2885 2008-03-15  Richard Guenther  <rguenther@suse.de>
2886
2887         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
2888         (fold_const_aggregate_ref): Likewise.
2889         (get_value): Return NULL if we don't have any values.
2890         (ccp_finalize): Set const_val to NULL after freeing it.
2891         * tree-flow.h (get_symbol_constant_value): Declare.
2892         (fold_const_aggregate_ref): Likewise.
2893         * tree-ssa-sccvn.c (try_to_simplify): Use them.
2894
2895 2008-03-15  Richard Guenther  <rguenther@suse.de>
2896
2897         PR middle-end/35593
2898         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
2899         to not produce negative array indices if not allowed.  Add
2900         parameter to indicate that.
2901         (maybe_fold_offset_to_component_ref): Allow negative array
2902         indices only for the first member of a structure.
2903         (maybe_fold_offset_to_reference): Allow negative array indices.
2904         (maybe_fold_stmt_addition): Likewise.
2905
2906 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
2907             Anatoly Sokolov <aesok@post.ru>
2908
2909         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
2910         (avr_arch): Add ARCH_AVR6.
2911         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
2912         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
2913         instead of fixed value 2.
2914         (print_operand_address): Use gs() asm specifier instead of pm().
2915         (avr_assemble_integer): (Ditto.).
2916         (avr_output_addr_vec_elt): (Ditto.).
2917         (print_operand): Handle "!" code.
2918         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
2919         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
2920         (AVR_HAVE_EIJMP_EICALL): Define.
2921         (AVR_3_BYTE_PC): Redefine.
2922         (AVR_2_BYTE_PC): (Ditto.).
2923         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
2924         (LINK_SPEC): Add atmega2560 and atmega2561.
2925         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
2926         (crtm2561.o).
2927         * config/avr/avr.md (call_insn): Use eicall instead of icall 
2928         for 3 byte PC devices.
2929         (call_value_insn): (Ditto.).
2930         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
2931         (indirect_jump): Use only for for 2 byte PC devices.
2932         (*tablejump): (Ditto.).
2933         (*indirect_jump_avr6): Add insn.
2934         (*tablejump_rjmp): Don't use for 3 byte PC devices.
2935         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
2936         instead of ijmp for 3 byte PC devices.
2937         (__tablejump2__): (Ditto.).
2938         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
2939         (MULITLIB_DIRNAMES): (Ditto.). 
2940         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
2941
2942 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
2943
2944         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
2945         "sse2_umulsidi3".  Use V1DI mode for operand 0.
2946         ("mmx_psadbw"): Use V1DI mode for operand 0.
2947         * config/i386/i386-modes.def (V1SI): New vector mode.
2948         * config/i386/i386.c (struct builtin_description)
2949         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
2950         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
2951         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
2952         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
2953         v1di_ftype_v8qi_v8qi type.
2954         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
2955
2956         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
2957         __builtin_ia32_pmuludq]: Fix the mode of return value.
2958
2959 2008-03-15  Richard Guenther  <rguenther@suse.de>
2960
2961         PR middle-end/35595
2962         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
2963         being a PHI_NODE.
2964
2965 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
2966         
2967         * doc/invoke.texi (Option Summary, Xtensa Options): Document
2968         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
2969         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
2970         unless TARGET_SERIALIZE_VOLATILE is enabled.
2971         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
2972         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
2973         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
2974
2975 2008-03-14  Richard Guenther  <rguenther@suse.de>
2976
2977         PR tree-optimization/34172
2978         * tree-flow.h (refs_may_alias_p): Declare.
2979         (get_single_def_stmt): Likewise.
2980         (get_single_def_stmt_from_phi): Likewise.
2981         (get_single_def_stmt_with_phi): Likewise.
2982         * tree-dfa.c (refs_may_alias_p): New function.
2983         (get_single_def_stmt): Likewise.
2984         (get_single_def_stmt_from_phi): Likewise.
2985         (get_single_def_stmt_with_phi): Likewise.
2986         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
2987         (vn_reference_lookup_1): New helper function.
2988         (vn_reference_lookup): Walk the virtual use-def chain to
2989         continue searching for a match if the def does not alias the
2990         reference we are looking for.
2991
2992 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
2993
2994         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
2995         archive and Perzl.  Update The Written Word listing.
2996
2997 2008-03-14  Richard Guenther  <rguenther@suse.de>
2998
2999         PR tree-optimization/34043
3000         PR tree-optimization/33989
3001         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
3002         when doing FRE.
3003         (bitmap_find_leader): Use extra argument to verify dominance
3004         relationship inside a basic-block.
3005         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
3006         (find_leader_in_sets): Adjust.
3007         (create_component_ref_by_pieces): Take extra argument for
3008         dominance check, handle lookup failures.
3009         (find_or_generate_expression): Likewise.
3010         (create_expression_by_pieces): Likewise.
3011         (insert_into_preds_of_block): Adjust.
3012         (create_value_expr_from): If asked for, verify all operands
3013         are in the blocks AVAIL_OUT set.
3014         (make_values_for_stmt): Check for SSA_NAMEs that are life
3015         over an abnormal edge.
3016         (compute_avail): Remove such check.
3017         (do_SCCVN_insertion): New function.
3018         (eliminate): If we do not find a leader suitable for replacement
3019         insert a replacement expression from SCCVN if available.
3020         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
3021         (struct vn_ssa_aux): Add needs_insertion flag.
3022         * tree-ssa-sccvn.c (may_insert): New global flag.
3023         (copy_reference_ops_from_ref): Value-number union member access
3024         based on its size, not type and member if insertion is allowed.
3025         (visit_reference_op_load): For a weak match from union type
3026         punning lookup a view-converted value and insert a SSA_NAME
3027         for that value if that is not found.
3028         (visit_use): Make dumps shorter.  Do not disallow value numbering
3029         SSA_NAMEs that are life over an abnormal edge to constants.
3030         (free_scc_vn): Release inserted SSA_NAMEs.
3031         (run_scc_vn): New flag to specify whether insertion is allowed.
3032         Process SSA_NAMEs in forward order.
3033         * tree-ssa-loop-im.c (for_each_index): Handle invariant
3034         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
3035         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
3036         pointer type to/from integral types that do not change the
3037         precision to regular conversions.
3038
3039 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3040
3041         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
3042         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
3043         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
3044         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
3045         input arguments and the mode of return value.  Built-in functions
3046         that operate on whole 64-bit MMX register now use V1DI mode.
3047
3048 2008-03-13  Alon Dayan  <alond@il.ibm.com>
3049             Olga Golovanevsky  <olga@il.ibm.com>
3050
3051         PR tree-optimization/35041
3052         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
3053         to locate the right position in a statement.
3054
3055 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
3056
3057         PR target/34000
3058         PR target/35553
3059         * config/i386/xmmintrin.h:  Change all static inline functions to
3060         extern inline and add __gnu_inline__ attribute.
3061         * config/i386/bmintrin.h: Ditto.
3062         * config/i386/smmintrin.h: Ditto.
3063         * config/i386/tmmintrin.h: Ditto.
3064         * config/i386/mmintrin-common.h: Ditto.
3065         * config/i386/ammintrin.h: Ditto.
3066         * config/i386/emmintrin.h: Ditto.
3067         * config/i386/pmmintrin.h: Ditto.
3068         * config/i386/mmintrin.h: Ditto.
3069         * config/i386/mm3dnow.h: Ditto.
3070
3071 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3072
3073         PR middle-end/35185
3074         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
3075         (lower_omp_2): New function.
3076         (lower_omp_1, lower_omp): Rewritten.
3077
3078 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
3079
3080         PR 35054
3081         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
3082         with the phrase "Microsoft Windows compilers".
3083         (Push/Pop Macro Pragmas): New subsection. Document
3084         #pragma push_macro and pragma pop_macro.
3085
3086 2008-03-12  Paul Brook  <paul@codesourcery.com>
3087
3088         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
3089
3090 2008-03-12  Paul Brook  <paul@codesourcery.com>
3091
3092         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
3093         (thumb2_alusi3_short): Exclude PLUS and MINUS.
3094         (thumb2_addsi_shortim): Rename ...
3095         (thumb2_addsi_short): ... to this.  Allow register operands.
3096         (thumb2_subsi_short): New pattern.
3097         (thumb2_one_cmplsi2_short,
3098         thumb2_negsi2_short): New patterns and peepholes.
3099
3100 2008-03-12  Paul Brook  <paul@codesourcery.com>
3101
3102         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
3103
3104 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
3105
3106         * config/i386/i386.md (int_cond): New code iterator.
3107         (fp_cond): Ditto.
3108         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
3109         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
3110         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
3111         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
3112         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
3113         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
3114         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
3115         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
3116
3117 2008-03-12  Paul Brook  <paul@codesourcery.com>
3118
3119         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
3120         instead of {arm,thumb}_compute_save_reg_mask.
3121         (output_return_instruction): Ditto.
3122         (thumb_unexpanded_epilogue): Ditto.
3123         (thumb1_expand_prologue): Ditto.
3124         (thumb1_output_function_prologue): Ditto.
3125         (arm_set_return_address): Ditto.
3126         (thumb_set_return_address): Ditto.
3127         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
3128         regs to achieve stack alignment.
3129         (thumb1_compute_save_reg_mask): Fix compiler warning.
3130         (arm_output_epilogue): Use offsets->saved_regs_mask.
3131         Adjust stack pointer by poping call clobered registers.
3132         (arm_expand_prologue): Use offsets->saved_regs_mask.
3133         Adjust stack pointer by pushing extra registers.
3134         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
3135
3136 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
3137
3138         PR tree-opt/35422
3139         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
3140         conversion to the operands of a multiplication.
3141
3142 2008-03-12  Richard Guenther  <rguenther@suse.de>
3143
3144         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
3145         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
3146         * timevar.def (TV_TREE_PHIPROP): Add.
3147         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
3148         pass description.  Use TV_TREE_PHIPROP.
3149         * tree-ssa-forwprop.c: Remove phiprop code.
3150
3151 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3152
3153         PR middle-end/35549
3154         * omp-low.c (maybe_lookup_decl): Constify first argument.
3155         (use_pointer_for_field): Change last argument from bool to
3156         omp_context *.  Disallow shared copy-in/out in nested
3157         parallel if decl is shared in outer parallel too.
3158         (build_outer_var_ref, scan_sharing_clauses,
3159         lower_rec_input_clauses, lower_copyprivate_clauses,
3160         lower_send_clauses, lower_send_shared_vars): Adjust callers.
3161
3162 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
3163             Ira Rosen  <irar@il.ibm.com>
3164
3165         * tree-vectorizer.c (free_stmt_vec_info): New function.
3166         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
3167         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
3168         * tree-vectorizer.h (free_stmt_vec_info): Declare.
3169         * tree-vect-transform.c (vectorizable_conversion): Free
3170         vec_oprnds0 if it was allocated.
3171         (vect_permute_store_chain): Remove unused VECs.
3172         (vectorizable_store): Free VECs that are allocated in the..
3173         function.
3174         (vect_transform_strided_load, vectorizable_load): Likewise.
3175         (vect_remove_stores): Simplify the code.
3176         (vect_transform_loop): Move code to vect_remove_stores().
3177         Call vect_remove_stores() and free_stmt_vec_info().
3178
3179 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3180
3181         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
3182         TARGET_HPUX.  Revise comment.
3183         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
3184         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
3185         Use sr4 variant of `be' instruction when not generating PIC code.
3186         (attr_length_call): Adjust for above change.
3187
3188 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3189
3190         * ipa-reference.c (static_execute): Remove module_statics_const and
3191         associated setting code.
3192
3193 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3194
3195         PR target/35540
3196         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
3197         predicate for operand 1.
3198         (paritysi2_cmp): Use register_operand predicate for operand 2.
3199         Use earlyclobber modifier for operand 1.  Remove support for
3200         memory operands.
3201         (paritydi2_cmp): Use register_operand predicate for operand 3.
3202         Use earlyclobber modifier for operand 1.  Remove support for
3203         memory operands.
3204
3205 2008-03-11  Paul Brook  <paul@codesourcery.com>
3206             Vladimir Prus  <vladimir@codesourcery.com>
3207
3208         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
3209         (arm_compute_save_reg0_reg12_mask): Always
3210         check if register 11 must be saved.  Always safe hard frame pointer
3211         when frame_pointer_needeed.
3212         (arm_compute_save_reg_mask): Save IP and PC
3213         only with apcs frames.
3214         (arm_output_epilogue): Adjust Thumb2 codepath to
3215         be also invoked and work for ARM non-apcs frames.
3216         (arm_expand_prologue): Don't bother saving IP
3217         for non-apcs frame, since it's not clobbered by
3218         prologue code.  Implement non-apcs frame
3219         layout.
3220
3221 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3222
3223         PR rtl-optimization/35281
3224         * expr.c (convert_move): Use a new pseudo for the intermediate
3225         from_mode->word_mode result.
3226
3227 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
3228
3229         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3230         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
3231         * toplev.c (compile_file): Don't call it.
3232
3233 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
3234
3235         PR middle-end/35526
3236         * expr.c (store_expr): Call emit_block_move if the mode
3237         of "temp" RTX is BLKmode.
3238
3239 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3240             Richard Guenther  <rguenther@suse.de>
3241
3242         PR tree-optimization/31358
3243         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
3244         the step with a NULL_TREE.
3245         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
3246         to sizetype if type is a pointer type.
3247         (add_candidate_1): Don't convert the base and step to
3248         the generic type if the orginal type is a pointer type.
3249         (add_iv_value_candidates): Use sizetype for the step
3250         if type is a pointer type.
3251         (cand_value_at): Likewise.
3252         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
3253         for pointer types.
3254         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
3255         Don't convert the tem affine to the type.
3256         (add_elt_to_tree): Use sizetype for the step if a pointer.
3257         Use POINTER_PLUS_EXPR for pointers.
3258         (aff_combination_to_tree): Use sizetype for the step if a
3259         pointer.
3260
3261 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
3262
3263         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
3264         Remove commutativity hint.
3265
3266 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
3267
3268         PR c/35438
3269         PR c/35439
3270         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
3271         errorneous type.  Check that v is a VAR_DECL.
3272
3273         PR middle-end/35099
3274         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
3275
3276 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
3277
3278         PR tree-optimization/35494
3279         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
3280         may be overriden at link and run time.
3281
3282 2008-03-10  Richard Guenther  <rguenther@suse.de>
3283
3284         PR tree-optimization/34677
3285         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
3286         (poolify_tree): Likewise.
3287         (modify_expr_template): Likewise.
3288         (poolify_modify_stmt): Likewise.
3289         (insert_fake_stores): Handle all component-ref style stores
3290         in addition to INDIRECT_REF.  Also handle complex types.
3291         Do not poolify the inserted load.
3292         (realify_fake_stores): Do not rebuild the tree but only
3293         make it a SSA_NAME copy.
3294         (init_pre): Remove initialzation of modify_expr_template.
3295         Do not allocate modify_expr_node_pool.
3296         (fini_pre): Do not free modify_expr_node_pool.
3297
3298 2008-03-10  Paul Brook  <paul@codesourcery.com>
3299
3300         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
3301         to avoid conflicts.
3302
3303 2008-03-10  Paul Brook  <paul@codesourcery.com>
3304             Mark Shinwell  <shinwell@codesourcery.com>
3305
3306         * config/arm/cortex-r4.md: New.
3307         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
3308         insn attributes.
3309         * config/arm/arm.md: Include cortex-r4.md.
3310         (insn): Add smmls, sdiv and udiv values.
3311         (generic_sched): Don't use generic scheduling for Cortex-R4.
3312         (arm_issue_rate): New function.
3313         (TARGET_SCHED_ISSUE_RATE): Define.
3314
3315 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
3316
3317         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
3318
3319 2008-03-10  Richard Guenther  <rguenther@suse.de>
3320
3321         * tree-ssa-pre.c (get_sccvn_value): Simplify.
3322         (compute_avail): Do not add stmt uses to AVAIL_OUT.
3323
3324 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
3325
3326         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
3327         Set default to true.
3328
3329 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3330
3331         * c.opt (Wsynth): Deprecate.
3332         * doc/invoke.texi (Option Summary, Warning Options): Document
3333         -Wno-format-contains-nul.
3334
3335 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
3336
3337         PR target/35496
3338         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
3339         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
3340
3341 2008-03-09  Ira Rosen  <irar@il.ibm.com>
3342
3343         * config/rs6000/rs6000.c (builtin_description): Rename vector
3344         left shift operations.
3345         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
3346         (altivec_vsl<VI_char>): Rename to ...
3347         (ashl<mode>3): ... new name.
3348         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
3349         gen_ashlv4si3.
3350         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
3351
3352 2008-03-08  Richard Guenther  <rguenther@suse.de>
3353
3354         * coverage.h (tree_coverage_counter_addr): Declare.
3355         * coverage.c (tree_coverage_counter_addr): New function.
3356         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
3357         before using again.
3358         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
3359         (tree_gen_one_value_profiler): Likewise.
3360         (tree_gen_ic_profiler): Likewise.
3361         (tree_gen_average_profiler): Likewise.
3362         (tree_gen_ior_profiler): Likewise.
3363
3364 2008-03-08  Richard Guenther  <rguenther@suse.de>
3365
3366         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
3367         (vn_binary_op_insert): Likewise.
3368         (vn_unary_op_lookup): Likewise.
3369         (vn_unary_op_insert): Likewise.
3370         (vn_nary_op_lookup): Declare.
3371         (vn_nary_op_insert): Likewise.
3372         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
3373         and binary hashes, use a single obstack for unary_op_pool
3374         and binary_op_pool.
3375         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
3376         a single struct vn_nary_op_s.  Store tree code length and
3377         a variable number of operands.
3378         (struct vn_reference_op_struct): Remove unused op2.
3379         (vn_reference_op_eq): Do not compare op2.
3380         (vn_reference_op_compute_hash): Do not compute hash of op2.
3381         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
3382         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
3383         with vn_nary_op_compute_hash.
3384         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
3385         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
3386         vn_nary_op_lookup.
3387         (vn_unary_op_insert, vn_binary_op_insert): Replace with
3388         vn_nary_op_insert.
3389         (visit_unary_op): Call nary functions.
3390         (visit_binary_op): Likewise.
3391         (process_scc): Adjust for struct vn_tables_s changes.
3392         (allocate_vn_table): Likewise.
3393         (free_vn_table): Likewise.
3394         * tree-vn.c (vn_add): Call nary functions.
3395         (vn_lookup): Likewise.
3396
3397 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
3398
3399         PR target/35498
3400         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
3401         wdst back after sync_compare_and_swapqhi_internal.
3402
3403 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
3404
3405         PR target/22152