OSDN Git Service

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