OSDN Git Service

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