OSDN Git Service

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