OSDN Git Service

2007-07-21 Rafael Avila de Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-07-21  Rafael Avila de Espindola  <espindola@google.com>
2
3         * Makefile.in: Replace toplev.h with TOPLEV_H.
4         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
5         * c-lex.c (fe_file_change): Don't set in_system_header.
6         * c-parser.c (c_token): Remove in_system_header.
7         (c_lex_one_token): Don't set in_system_header.
8         (c_parser_set_source_position_from_token): Don't set in_system_header.
9         * diagnostic.c (diagnostic_report_diagnostic): Use location from
10         diagnostic_info.
11         (warning_at): New.
12         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
13         * flags.h (in_system_header): Remove.
14         * function.c (saved_in_system_header): Remove.
15         (push_cfun): Don't set in_system_header.
16         (pop_cfun): Don't set in_system_header.
17         (push_struct_function): Don't set in_system_header.
18         * input.h (expanded_location): Add sysp.
19         (in_system_header_at): New.
20         (in_system_header): New.
21         * toplev.c (in_system_header): Remove.
22         * toplev.h: Include input.h
23         (warning_at): New.
24         * tree-cfg.c (execute_warn_function_return): Call warning_at.
25         * tree-ssa.c (warn_uninit): Call warning_at.
26         (warn_uninitialized_var): Update calls to warn_uninit.
27         (warn_uninitialized_phi): Update calls to warn_uninit.
28         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
29         (expand_location): Initialize xloc.sysp.
30         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
31         (tree_decl_with_vis): Remove in_system_header_flag.
32
33 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
34
35         PR target/36822
36         * recog.c (asm_operand_ok): Change the order of the extra
37         memory constraint checks.
38
39 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
40
41         PR tree-opt/36879
42         * tree-switch-conversion.c (build_one_array): Call
43         varpool_mark_needed_node and varpool_finalize_decl 
44         instead of assemble_variable.
45
46 2008-07-19  Jan Hubicka  <jh@suse.cz>
47
48         * cgraph.c (cgraph_add_new_function): Do early local passes.
49         * tree-nrv.c (gate_pass_return_slot): New gate.
50         (pass_nrv): Add the gate.
51         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
52         functions.
53         (coalesce_ssa_name): Coalesce SSA names.
54         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
55         not optimizing so unused user vars remains visible.
56         * common.opt (flag_tree_ter): Always enable by default.
57         * tree-ssa-ter.c: Include flags.h
58         (is_replaceable_p): Check that locations match; when aliasing is missing
59         be conservative about loads.
60         * tree-optimize.c (gate_init_datastructures): Remove.
61         (pass_init_datastructures): New.
62         * passes.c: Reorder passes so we always go into SSA.
63
64 2008-07-19  Jan Hubicka  <jh@suse.cz>
65
66         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
67         * doc/invoke.texi (--combine): Likewise.
68         (-finline-functions-called-once): Update levels when enabled.
69         (-funit-at-a-time): Document new behaviour.
70         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
71         -fno-section-anchors when disabled explicitly.
72         (inline params): They are not ignored now.
73         (precompiled headers): Remove unit-at-a-time as being incompatible.
74         * opts.c (decode_options): Handle unit-at-a-time as alias;
75         imply -fno-section-anchors when toplevel reorder is disabled
76         explicitly.
77         * common.opt (ftoplevel-reorder): Set default value to 2.
78         (funit-at-a-time): Set default value to 1.
79         * config/rs6000/rs6000.c (optimization_options): Set section anchors
80         to 2.
81
82 2008-07-19  Jan Hubicka  <jh@suse.cz>
83
84         * builtins.c (expand_builtin_int_roundingfn,
85         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
86         it is not useful.
87
88 2008-07-19  Richard Guenther  <rguenther@suse.de>
89
90         PR bootstrap/36864
91         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
92         * tree-ssa-sccvn.c (get_constant_value_id): New function.
93         * tree-ssa-pre.c (get_expr_value_id): For newly created
94         constant value-ids make sure to add the expression to its
95         expression-set.
96
97 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
98
99         PR middle-end/36877
100         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
101         return value of the builtin is ignored.
102
103 2008-07-19  Olivier Hainque  <hainque@adacore.com>
104
105         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
106         bits, a C conformant malloc implementation has to provide.
107         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
108
109 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
110
111         PR target/36780
112         PR target/36827
113         * reload.c (find_reloads_subreg_address): Only reload address if
114         reloaded == 0, not for reloaded != 1.
115
116         Revert:
117         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
118         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
119         (m32c_legitimate_address_p): Handle "++rii" addresses created by
120         m32c_legitimize_reload_address.
121
122         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
123         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
124         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
125
126 2008-07-19  Olivier Hainque  <hainque@adacore.com>
127
128         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
129         argument, saying whether nested array are to be collapsed
130         into a single array type DIE with multiple subscripts.
131         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
132         issues, centralize the nested array types collapsing control and
133         disable the transformation for Ada.
134         
135 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
136
137         PR target/36786
138         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
139         x86_64_shift_adj.
140         (x86_64_shift_adj_2): New expander.
141         (x86_64_shift_adj_3): Ditto.
142         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
143         to split TImode operands.
144         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
145         (ix86_split_lshr): Ditto.
146
147 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
148
149         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
150         and __CHAR32_TYPE__.
151         * c-typeck.c (digest_init): Support char16_t and char32_t.
152         (set_nonincremental_init_from_string): Idem.
153
154 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
155
156         PR middle-end/36859
157         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
158         PREFERRED_STACK_BOUNDARY.
159         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
160
161 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
162
163         PR middle-end/36858
164         * function.c (locate_and_pad_parm): Cap boundary earlier.
165
166 2008-07-17  Julian Brown  <julian@codesourcery.com>
167
168         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
169         no-op for targets which don't use DLLs.
170
171 2008-07-17  Martin Jambor  <mjambor@suse.cz>
172
173         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
174         that nodes are relevant by examining the node->analyzed flag.
175         (ipcp_init_stage): Check which nodes are relevant, assert that the
176         relevant ones are also required.
177         (ipcp_propagate_stage): Check on the side arrays are properly
178         allocated.
179         (ipcp_print_all_jump_functions): Make sure not to touch any node
180         that is not analyzed or an edge that does not have a corresponding
181         entry in the on-the-side vectors.
182         (ipcp_function_scale_print): Likewise.
183         (ipcp_update_callgraph): Check that the node is relevant.
184         (ipcp_insert_stage): Check that the node is relevant.  Check there is
185         an info for every node and edge.
186         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
187         (ipa_print_all_tree_maps): Likewise and a new variable info.
188         (ipa_print_all_params_modified): Likewise.
189         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
190
191 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
192
193         PR target/25343
194         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
195
196 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
197
198         PR rtl-optimization/36753
199         * fwprop.c (use_killed_between): Don't shortcut
200         single-definition global registers.
201
202 2008-07-16  Jan Hubicka  <jh@suse.cz>
203
204         * cgraph.h (varpool_empty_needed_queue): Declare.
205         * cgraphunit.c (output_in_order): Mark all variables as needed;
206         empty the queue.
207         * varpool.c (varpool_assemble_node): Update debug queue.
208         (varpool_assemble_pending_decls): Don't do it here.
209         (varpool_empty_needed_queue):  New function.
210
211 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
212
213         * recog.c (peephole2_optimize): Fix formatting.
214
215 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
216
217         * c-pch.c (get_ident): Avoid C++ keywords.
218         * combine-stack-adj.c (single_set_for_csa): Likewise.
219         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
220         output_asm_insn): Likewise.
221         * reload.c (push_secondary_reload, find_reusable_reload,
222         push_reload, combine_reloads, find_reloads,
223         debug_reload_to_stream): Likewise.
224         * reload.h (struct reload): Likewise.
225         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
226         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
227         emit_output_reload_insns): Likewise.
228         * targhooks.c (default_secondary_reload): Likewise.
229         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
230
231 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
232
233         * recog.c (validate_change_1, validate_change,
234         validate_unshare_change, validate_replace_rtx_1, struct
235         funny_match, constrain_operands, peephole2_optimize): Avoid C++
236         keywords.
237         * reload.c (push_secondary_reload, secondary_reload_class,
238         scratch_reload_class, find_valid_class, find_reusable_reload,
239         push_reload, find_dummy_reload, find_reloads_address_1,
240         find_reloads_address_part, find_equiv_reg): Likewise.
241         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
242         choose_reload_regs): Likewise.
243         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
244         Likewise.
245         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
246         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
247         * sched-rgn.c (concat_INSN_LIST): Likewise.
248         * stor-layout.c (mode_for_size, mode_for_size_tree,
249         smallest_mode_for_size): Likewise.
250
251 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
252
253         * cfg.c (dump_reg_info): Avoid C++ keywords.
254         * dwarf2asm.c (dw2_force_const_mem,
255         dw2_asm_output_encoded_addr_rtx): Likewise.
256         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
257         * expmed.c (expand_shift): Likewise.
258         * global.c (find_reg): Likewise.
259         * graph.c (draw_edge): Likewise.
260         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
261         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
262         widen_clz, widen_bswap, expand_parity, expand_unop,
263         emit_cmp_and_jump_insn_1): Likewise.
264         * postreload.c (reload_cse_simplify_operands): Likewise.
265         * ra.h (add_neighbor): Likewise.
266         * reg-stack.c (remove_regno_note, change_stack): Likewise.
267         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
268         record_reg_classes, copy_cost, record_address_regs,
269         invalid_mode_change_p): Likewise.
270         * regrename.c (regrename_optimize, scan_rtx_reg,
271         dump_def_use_chain, find_oldest_value_reg,
272         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
273
274 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
275
276         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
277         MASK_POWERPC64 for power4 in previous commit.
278
279 2008-07-16  Olivier Hainque  <hainque@adacore.com>
280
281         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
282         instead of bare conversion to cast const-ness away.
283
284 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
285
286         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
287         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
288         * config/xtensa/xtensa.c (xtensa_function_value): New function.
289         (TARGET_FUNCTION_VALUE): Define.
290
291 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
292
293         * config/rs6000/rs6000.c (processor_target_table): Add
294         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
295
296 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
297
298         PR target/36827
299         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
300         (m32c_legitimate_address_p): Handle "++rii" addresses created by
301         m32c_legitimize_reload_address.
302
303 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
304
305        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
306        DECL_IN_SYSTEM_HEADER in sync.
307
308 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
309
310         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
311         * tree-ssa-pre.c (pre_expr_eq): Ditto
312         (get_constant_for_value_id): Take a type as an argument.
313         (fully_constant_expression): Pass in type.
314         (find_or_generate_expression): Short circuit constant case.
315         (create_expression_by_pieces): Remove special casing of
316         pointer_plus.
317         (do_regular_insertion): Short circuit constant case.
318         (do_partial_partial_insertion): Ditto.
319
320 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
321
322         PR target/36782
323         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
324
325 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
326         
327         * config/xtensa/libgcc-xtensa.ver: New file.
328         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
329         
330 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
331
332         * df-problems.c (df_set_note): Avoid C++ keywords.
333         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
334         * dse.c (record_store, remove_useless_values): Likewise.
335         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
336         gen_reg_rtx_offset, operand_subword, change_address_1,
337         change_address, adjust_address_1, offset_address,
338         widen_memory_access, emit_copy_of_insn_after): Likewise.
339         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
340         * fwprop.c (should_replace_address, propagate_rtx_1,
341         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
342         Likewise.
343         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
344         gcse_emit_move_after, update_ld_motion_stores): Likewise.
345         * lcm.c (compute_insert_delete, pre_edge_lcm,
346         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
347         * lower-subreg.c (resolve_reg_notes): Likewise.
348         * mode-switching.c (optimize_mode_switching): Likewise.
349
350 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
351
352         * bt-load.c (add_btr_def, migrate_btr_def,
353         branch_target_load_optimize): Avoid C++ keywords.
354         * caller-save.c (insert_restore, insert_save, insert_one_insn):
355         Likewise.
356         * combine.c (subst, simplify_set, make_extraction,
357         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
358         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
359         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
360
361 2008-07-15  Richard Guenther  <rguenther@suse.de>
362
363         PR middle-end/36369
364         * c-common.c (strict_aliasing_warning): Do not warn for
365         TYPE_REF_CAN_ALIAS_ALL pointers.
366         (c_common_get_alias_set): may_alias types are not special.
367         * tree.c (build_pointer_type_for_mode): Look up the may_alias
368         attribute and set can_ref_all accordingly.
369         (build_reference_type_for_mode): Likewise.
370         * doc/extend.texi (may_alias): Clarify.
371
372 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
373
374         PR target/36780
375         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
376         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
377
378 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
379
380         PR target/31568
381         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
382         gcc_assert, instead call output_operand_lossage.
383
384 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
385
386         * builtins.c (std_canonical_va_list): Treat structure based
387         va_list types.
388
389 2008-07-15  Ben Elliston  <bje@au.ibm.com>
390
391         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
392
393 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
394
395         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
396         is set.
397
398 2008-07-14  Jan Hubicka  <jh@suse.cz>
399
400         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
401         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
402         fix predicates and constraints.
403         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
404         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
405
406 2008-07-14  Doug Kwan  <dougkwan@google.com>
407
408         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
409         additional option file arm/eabi.opt.
410         * config/arm/eabi.h (File): New configuration file for EABI targets.
411         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
412         SUBSUBTARGET_EXTRA_SPECS.
413         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
414         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
415         from STARTFILE_SPEC so that it can be referenced in an override.
416         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
417         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
418         can be referenced in an override.
419         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
420         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
421         so that it can be referenced in an override.
422         (LINK_SPEC): Use BPABI_LINK_SPEC.
423         * config/arm/eabi.opt (File): New.
424
425 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
426
427         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
428         (FIXED_VALUE_H): New variable.
429         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
430         input.h, fixed-value.h.
431         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
432         (BASIC_BLOCK_H): Use $(BITMAP_H).
433         (FUNCTION_H): Add varray.h.
434         (IPA_REFERENCE_H): Use $(BITMAP_H).
435         (CGRAPH_H): Add $(BASIC_BLOCK_H).
436         (DF_H): Use $(BITMAP_H).
437         (GGC_H): Add statistics.h.
438         (INSN_ADDR_H): New.
439         (INSN_ATTR_H): Use it.
440         (SYSTEM_H): Add safe-ctype.h, filenames.h.
441         (INPUT_H): New.
442         (SYMTAB_H): Add $(OBSTACK_H).
443         (CPP_INTERNAL_H): New.
444         (TREE_DUMP_H): Add tree-pass.h.
445         (TREE_FLOW_H): Use $(BITMAP_H)
446         (PRETTY_PRINT_H): Use $(INPUT_H).
447         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
448         (GSTAB_H): New.
449         (BITMAP_H): New.
450         (many object files): Fix lots of header dependencies throughout.
451
452 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
453
454         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
455         New macros.
456         (s-gtyp-input): Use them to write tmp-gi.list.
457         (echo_to_gi.list): Remove.
458
459 2008-07-14  Richard Guenther  <rguenther@suse.de>
460
461         * tree-ssa-sccvn.c (pre_info): Remove.
462         (switch_to_PRE_table): Likewise.
463         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
464         (set_hashtable_value_ids): Do not create value-ids for the
465         optimistic tables.
466         (run_scc_vn): Remove double test.  Remove bogus special-case
467         in value-number printing.
468         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
469         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
470         SSA_NAME_VALUE.
471         * tree-flow-inline.h (get_value_handle): Remove.
472         * tree-flow.h (get_value_handle): Remove.
473
474 2008-07-14  Martin Jambor  <mjambor@suse.cz>
475
476         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
477         in which we generate arithmetics is not a subrange.
478
479 2008-07-14  Martin Jambor  <mjambor@suse.cz>
480
481         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
482
483 2008-07-14  Richard Guenther  <rguenther@suse.de>
484
485         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
486
487 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
488
489         PR target/36745
490         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
491         reload for symbol refs moved to r0 with -fPIC.
492         (legitimize_pic_address): Use the target register as temporary
493         reg if possible.
494         (emit_symbolic_move): Adjust comment.
495         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
496         New expanders.
497
498 2008-07-14  Ben Elliston  <bje@au.ibm.com>
499
500         * c-common.h (C_CPP_HASHNODE): New macro.
501         * coretypes.h (struct cpp_token): Forward declare.
502         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
503         the context-sensitive keyword method.
504         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
505         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
506         expand_bool_pixel): New.
507         (altivec_categorize_keyword): New function.
508         (init_vector_keywords): New function.
509         (rs6000_macro_to_expand): Likewise.
510         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
511         compiling an ISO C dialect.
512
513 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
514
515         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
516         (create_expression_by_pieces): Fix typo.
517         (do_regular_insertion): Use debug counter here too.
518
519 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
520
521         PR target/35492.
522         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
523         CONST_OK_FOR_LETTER_P.  All port-local users changed.
524         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
525         implement Kp matching power-of-two.
526         (CONSTRAINT_LEN): Define to match.
527         * config/cris/cris.md: Replace all use of constraint K with Kc.
528         ("*btst*): Use Kp for operand 0 of last alternative.
529
530 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
531
532         PR testsuite/36440
533         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
534         and quad formats.
535
536 2008-07-13  Jan Hubicka  <jh@suse.cz>
537
538         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
539         to be mangled too.
540
541 2008-07-13  Richard Guenther  <rguenther@suse.de>
542
543         PR middle-end/36811
544         * langhooks.c (lhd_print_error_function): Deal with recursive
545         BLOCK trees.
546
547 2008-07-12  Jan Hubicka  <jh@suse.cz>
548
549         * cgraph.c (assembler_name_hash): New static var.
550         (hash_node_by_assembler_name, eq_assembler_name): New.
551         (cgraph_node_for_asm): Use hashtable.
552         (cgraph_remove_node): Maintain hashtable.
553         (change_decl_assembler_name): Sanity check that names are not changing
554         after aliasing was processed.
555         * cgraph.h (varpoon_node): Add next GGC marker.
556         * tree.c (decl_assembler_name_equal): Constify.
557         (decl_assembler_name_hash): New.
558         * tree.h (decl_assembler_name_equal): Constify.
559         (decl_assembler_name_hash): Update.
560
561 2008-07-12  David Daney  <ddaney@avtrex.com>
562
563         * config/mips/driver-native.c (host_detect_local_cpu): Handle
564         sb1 and r5000 cpus.
565
566 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
567
568         * doc/md.texi: Document the MIPS "v" constraint.
569         * config/mips/mips.h (reg_class): Revert last change.
570         (REG_CLASS_NAMES): Likewise.
571         (REG_CLASS_CONTENTS): Likewise.
572         * config/mips/mips.c (mips_regno_to_class): Likewise.
573         * config/mips/constraints.md (v): Likewise, but add documentation.
574         Add a comment to say that this constraint should not be used in
575         gcc code.
576
577 2008-07-11  DJ Delorie  <dj@redhat.com>
578
579         * config/h8300/h8300.md (length): Fix branch offset limit.
580
581 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
582
583         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
584         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
585         (avr_hard_regno_scratch_ok): New function.
586         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
587         * config/avr/avr.md (all peepholes that request a scratch register):
588         Remove avr_peep2_scratch_safe use.
589
590 2008-07-11  Tom Tromey  <tromey@redhat.com>
591             Ian Lance Taylor  <iant@google.com>
592
593         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
594         (struct c_common_resword): Define.
595         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
596         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
597         (c_common_reswords, num_c_common_reswords): Declare.
598         * c-common.c (c_common_reswords): New global const array.
599         (num_c_common_reswords): New const int.
600         * c-parser.c (struct resword, reswords): Don't define.
601         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
602         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
603         than reswords.  If warning about C++ keywords, give them a special
604         RID code.
605         (c_lex_one_token): Warn about C++ keywords.  Call
606         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
607         (c_parser_external_declaration): Look for RID_xxx rather than
608         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
609         (c_parser_statement_after_labels): Likewise.
610         (c_parser_objc_class_instance_variables): Likewise.
611         (c_parser_objc_class_declaration): Likewise.
612         (c_parser_objc_try_catch_statement): Likewise.
613         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
614         (declspecs_add_type): Likewise.
615
616 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
617
618         * ggc-page.c (alloc_page):
619         Substituting xmalloc, xcalloc with
620         XNEWVEC and XCNEWVAR macros which add the
621         needed casts.
622
623 2008-07-11  Richard Guenther  <rguenther@suse.de>
624
625         PR tree-optimization/36765
626         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
627         aliases from HEAP vars to SMTs.
628
629 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
630
631         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
632         * configure.ac (loose_warn): Move -Wc++-compat from here...
633         (strict_warn): ...to here.
634         * configure: Regenerate.
635
636 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
637
638         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
639         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
640         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
641         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
642         excluding more specific h8300-*-* and sh-*-* targets.
643
644 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
645
646         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
647         (eliminate): Ditto.
648         (execute_pre): Call loop_optimizer_finalize in early exit.
649
650 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
651
652         PR middle-end/36790
653         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
654         uids in the bitmap, not just VAR_DECL uids.
655
656         PR rtl-optimization/36419
657         * combine-stack-adj.c (adjust_frame_related_expr): New function.
658         (combine_stack_adjustments_for_block): Call it if needed.  Delete
659         correct insn.
660         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
661         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
662         prologue sp adjustment.
663
664 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
665
666         PR other/28322
667         * opts.c (print_ignored_options): Report postponed diagnostics for
668         unknown -Wno-* options as warnings, not errors.
669         (postpone_unknown_option_error): Renamed to...
670         (postpone_unknown_option_warning): ... this.
671
672 2008-07-09  Doug Kwan  <dougkwan@google.com>
673
674         Revert:
675         2008-07-08  Doug Kwan  <dougkwan@google.com>
676
677         * config/arm/arm.opt (mandroid): New option.
678         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
679         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
680         (CC1_SPEC): Same.
681         (CC1PLUS_SPEC): Same.
682         (LIB_SPEC): Same.
683         (STARTFILE_SPEC): Same.
684         (ENDFILE_SPEC): Same.
685         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
686         used.
687
688 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
689
690         PR target/35802
691         * config/mips/mips.h (reg_class): Remove V1_REG.
692         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
693         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
694         instead of V1_REGS.
695         (mips_get_tp): New function.
696         (mips_legitimize_tls_address): Use it.
697         * config/mips/constraints.md (v): Delete.
698         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
699         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
700         After reload, split into a move and ...
701         (*tls_get_tp_<mode>_split): ...this new instruction.
702
703 2008-07-09  David Daney  <ddaney@avtrex.com>
704
705         * config/mips/driver-native.c: Include coretypes.h and tm.h.
706
707 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
708
709         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
710         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
711         Add c argument.
712         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
713         htab_delete should be called.  Don't free c.
714         (lookup_tmp_var): Create temp_htab lazily.
715         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
716         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
717         callers.
718         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
719         lower_omp_ordered, lower_omp_critical, lower_omp_for,
720         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
721         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
722         * tree-sra.c (generate_element_init): Likewise.
723         * tree-mudflap.c (execute_mudflap_function_ops,
724         execute_mudflap_function_decls): Likewise.
725         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
726         * tree-gimple.h (struct gimplify_ctx): New type.
727         (push_gimplify_context): Adjust prototype.
728
729 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
730
731         * tree-ssa-pre.c (phi_translate_1): Update placement of
732         add_to_value calls.
733
734 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
735
736         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
737         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
738         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
739         * targhooks.c (default_hard_regno_scratch_ok): New function.
740         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
741         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
742         * recog.c:  Include "target.h".
743         (peep2_find_free_register): Add check for global regs. Add target
744         specific check.
745         * Makefile.in (recog.o): Depend on target.h.
746
747 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
748
749         * config/sh/sh.c (sh_canonical_va_list_type): New.
750         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
751
752 2008-07-09  Raksit Ashok <raksit@google.com>
753
754         * doc/invoke.texi (Option Summary): Mention new option
755         -Wdisallowed-function-list=...
756         (Warning Options): Document -Wdisallowed-function-list=...
757         * common.opt (Wdisallowed-function-list=): New flag.
758         * flags.h (warn_disallowed_functions): External definition of new
759         boolean warning flag.
760         (warn_if_disallowed_function_p): Declare new function.
761         * opts.c (warning_disallowed_functions): New static variable.
762         (warn_disallowed_functions): New boolean warning flag.
763         (warn_if_disallowed_function_p): New function.
764         (add_comma_separated_to_vector): Rename
765         add_instrument_functions_exclude_list to this.
766         (common_handle_option): Handle new option. Rename calls to
767         add_instrument_functions_exclude_list into calls to
768         add_comma_separated_to_vector.
769         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
770         based on flag warn_disallowed_functions.
771
772 2008-07-09  Christian Bruel  <christian.bruel@st.com>
773
774         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
775          instead of get_attr_length.
776
777 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
778
779         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
780         keywords.
781         * genemit.c (gen_insn): Likewise.
782         * gengtype.c (note_def_vec): Likewise.
783         * gengtype.h (note_def_vec): Likewise.
784         * genoutput.c (struct data, output_insn_data, process_template,
785         gen_expand, gen_split, note_constraint): Likewise.
786         * genrecog.c (new_decision, add_to_sequence, factor_tests,
787         make_insn_sequence): Likewise.
788         * gensupport.c (record_insn_name): Likewise.
789
790 2008-07-08  Doug Kwan  <dougkwan@google.com>
791
792         * config/arm/arm.opt (mandroid): New option.
793         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
794         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
795         (CC1_SPEC): Same.
796         (CC1PLUS_SPEC): Same.
797         (LIB_SPEC): Same.
798         (STARTFILE_SPEC): Same.
799         (ENDFILE_SPEC): Same.
800         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
801         used.
802
803 2008-07-08  Raksit Ashok  <raksit@google.com>
804
805         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
806         (set_storage_via_setmem): Fix expected_align parameter.
807         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
808         missing from the list.
809         * doc/md.texi (movmem): Explicitly state that expected alignment is
810         to be expressed in bytes.
811         (setmem): Explicitly state that expected alignment is to be expressed
812         in bytes.
813
814 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
815
816         * reload.c (find_reloads_subreg_address): Do not require validity
817         of address in original mode before reloading address.
818
819 2008-07-07  Tianwei Sheng  <tianweis@google.com>
820
821         * df-core.c (df_remove_problem): Adjust the access to avoid out of
822         bounds array access.
823
824 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
825
826         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
827
828 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
829         
830         Fix PR tree-optimization/23455
831         Fix PR tree-optimization/35286
832         Fix PR tree-optimization/35287
833         * Makefile.in (OBJS-common): Remove tree-vn.o.
834         (tree-vn.o): Remove.
835         * dbgcnt.def: Add treepre_insert debug counter.
836         * gcc/tree-flow.h (add_to_value): Updated for other changes.
837         (debug_value_expressions): Ditto.
838         (print_value_expressions): Ditto.
839         * tree-pretty-print.c (dump_generic_node): Updated for
840         VALUE_HANDLE removal.
841         * tree-ssa-dom.c (record_equality): Ditto.
842         (cprop_operand): Ditto.
843         (lookup_avail_expr): Ditto.
844         * tree-ssa-threadedge.c
845         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
846         (simplify_control_stmt_condition): Ditto.
847         * tree.c (tree_code_size): Ditto.
848         (tree_node_structure): Ditto.
849         (iterative_hash_expr): Ditto.
850         * tree.def: Ditto.
851         * tree.h (VALUE_HANDLE_ID): Ditto.
852         (VALUE_HANDLE_EXPR_SET): Ditto.
853         (struct tree_value_handle): Ditto.
854         (union tree_node): Ditto.
855         * treestruct.def: Ditto.
856         * tree-vn.c: Removed.
857         * tree-ssa-pre.c: Rewritten entirely.
858         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
859         (constant_value_ids): Ditto.
860         (vn_nary_op_t): Moved to header.
861         (vn_phi_t): Ditto.
862         (vn_reference_op_t): Ditto
863         (vn_reference_t): Ditto.
864         (next_value_id): New variable.
865         (VN_INFO): Add an assert.
866         (vn_constant_eq): New function.
867         (vn_constant_hash): Ditto.
868         (get_or_alloc_constant_value_id): Ditto.
869         (value_id_constant_p): Ditto.
870         (vn_reference_compute_hash): De-staticify.
871         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
872         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
873         (valueize_refs): Update opcode if it changes from ssa name to constant.
874         (vn_reference_lookup_1): Add new argument.
875         (vn_reference_lookup):  Ditto.
876         (vn_reference_lookup_pieces): New function.
877         (vn_reference_insert): Add return type. Modify to deal with value ids.
878         (vn_reference_insert_pieces):  New function.
879         (vn_nary_op_compute_hash): De-staticify.
880         (vn_nary_op_eq): Ditto.
881         (vn_nary_op_lookup_pieces): New function.
882         (vn_nary_op_lookup): Add new argument.  
883         (vn_nary_op_insert_pieces): New function.
884         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
885         (vn_phi_insert): Ditto.
886         (visit_unary_op): Update for callee changes.
887         (visit_binary_op): Ditto.
888         (visit_reference_op_load): Ditto.
889         (visit_reference_op_store): Ditto.
890         (init_scc_vn): Init next_value_id, constant_to_value_id and
891         constant_value_ids. 
892         (free_scc_vn): Free them.
893         (set_hashtable_value_ids): New function.
894         (run_scc_vn): Use it.
895         (get_max_value_id): New function.
896         (get_next_value_id): Ditto.
897         (expressions_equal_p): Moved from tree-vn.c
898         (sort_vuses): Ditto.
899         (sort_vuses_heap): Ditto.
900         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
901         above).
902         * tree.c (iterative_hash_hashval_t): Made non-static
903         * tree.h (iterative_hash_hashval_t): Declare it.
904         
905 2008-07-08  Martin Jambor  <mjambor@suse.cz>
906
907         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
908         instead of ipa_create_node_params.
909         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
910         ipa_check_create_edge_args, free them with
911         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
912
913         * ipa-prop.c: Include flags.h and tree-inline.h.
914         (ipa_node_params_vector): New variable.
915         (ipa_edge_args_vector): New variable.
916         (edge_removal_hook_holder): New variable.
917         (node_removal_hook_holder): New variable.
918         (edge_duplication_hook_holder): New variable.
919         (node_duplication_hook_holder): New variable.
920         (ipa_detect_param_modifications): Check for presence of modified flags.
921         (ipa_compute_jump_functions): Check for presence of jump functions.
922         (ipa_free_edge_args_substructures): New function.
923         (ipa_create_node_params): Removed.
924         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
925         (ipa_free_node_params_substructures): New function.
926         (ipa_free_all_node_params): Changed to deallocate the on-the-side
927         vector.
928         (ipa_edge_removal_hook): New function.
929         (ipa_node_removal_hook): New function.
930         (duplicate_array): New function.
931         (ipa_edge_duplication_hook): New function.
932         (ipa_node_duplication_hook): New function.
933         (ipa_register_cgraph_hooks): New function.
934         (ipa_unregister_cgraph_hooks): New function.
935         (free_all_ipa_structures_after_ipa_cp): New function.
936         
937         * ipa-prop.h: Include vec.h.
938         (ipa_node_params_t): New typedef with vector types for it.
939         (ipa_edge_args_t):  New typedef with vector types for it.
940         (IPA_NODE_REF): Changed to access an on-the-side vector.
941         (IPA_EDGE_REF): Changed to access an on-the-side vector.
942         (ipa_check_create_node_params): New function.
943         (ipa_check_create_edge_args): New function.
944         
945         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
946         all users.
947         
948 2008-07-07  Tom Tromey  <tromey@redhat.com>
949
950         * configure, config.in: Rebuilt.
951         * configure.ac: Don't check for scandir or alphasort.
952
953 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
954
955         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
956         types immediately after creating them.
957
958 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
959
960         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
961
962 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
963
964         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
965         dump_constraint_graph.
966         (dump_constraint_edge): New function.
967         (dump_constraint_graph): New function.
968         (debug_constraint_graph): New function.
969         (dump_constraint): Removed useless comparison.
970         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
971         (dump_constraint_graph): Declare.
972         (debug_constraint_graph): Declare.
973         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
974
975 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
976
977         * config/i386/i386.c (is_va_list_char_pointer): New.
978         (ix86_va_start): Replace compare with ms_va_list_type_node
979         by is_va_list_char_pointer.
980         (ix86_gimplify_va_arg): Likewise.
981
982 2008-07-07  Martin Jambor  <mjambor@suse.cz>
983
984         * cgraph.c (cgraph_edge_max_uid): New variable.
985         (struct cgraph_edge_hook_list): New type.
986         (struct cgraph_node_hook_list): New type.
987         (struct cgraph_2edge_hook_list): New type.
988         (struct cgraph_2node_hook_list): New type.
989         (first_cgraph_edge_removal_hook): New variable.
990         (first_cgraph_node_removal_hook): New variable.
991         (first_cgraph_edge_duplicated_hook): New variable.
992         (first_cgraph_node_duplicated_hook): New variable.
993         (cgraph_add_edge_removal_hook): New function.
994         (cgraph_remove_edge_removal_hook): New function.
995         (cgraph_call_edge_removal_hooks):  New function.
996         (cgraph_add_node_removal_hook):  New function.
997         (cgraph_remove_node_removal_hook):  New function.
998         (cgraph_call_node_removal_hooks):  New function.
999         (cgraph_add_edge_duplication_hook):  New function.
1000         (cgraph_remove_edge_duplication_hook):  New function.
1001         (cgraph_call_edge_duplication_hooks):  New function.
1002         (cgraph_add_node_duplication_hook):  New function.
1003         (cgraph_remove_node_duplication_hook):  New function.
1004         (cgraph_call_node_duplication_hooks):  New function.
1005         (cgraph_create_edge): Assign to edge uid.
1006         (cgraph_remove_edge): Call edge removal hooks.
1007         (cgraph_node_remove_callees): Call edge removal hooks.
1008         (cgraph_node_remove_callers): Call edge removal hooks.
1009         (cgraph_remove_node): Call node removal hooks.
1010         (cgraph_clone_edge): Call edge duplication hooks.
1011         (cgraph_clone_node): Call node duplication hooks.
1012
1013         * cgraph.h (cgraph_edge): New field uid.
1014         (cgraph_edge_hook): New type.
1015         (cgraph_node_hook): New type.
1016         (cgraph_2edge_hook): New type.
1017         (cgraph_2node_hook): New type.
1018
1019 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
1020
1021         * config.in: Regenerate.
1022
1023 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
1024
1025         * gcc.c (print_sysroot): New.
1026         (option_map, display_help, process_command): Handle the
1027         -print-sysroot option.
1028         (main): Print the sysroot if requested.
1029         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
1030         
1031 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1032
1033         PR target/34780
1034         * unwind-pe.h (size_of_encoded_value): add attribute unused.
1035
1036 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
1037
1038         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
1039         (assign_parm_setup_block_p): Also check mode of entry_parm.
1040
1041 2008-07-07  Richard Guenther  <rguenther@suse.de>
1042
1043         * tree-ssa-structalias.h (set_used_smts): Remove.
1044         * tree-ssa-structalias.c (used_smts): Likewise.
1045         (set_used_smts): Likewise.
1046         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
1047         call to set_used_smts.
1048
1049 2008-07-07  Richard Guenther  <rguenther@suse.de>
1050
1051         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
1052         (new_var_info): Set it to false.
1053         (solution_set_add): Correctly handle pointers outside a var and
1054         inside a field.
1055         (type_safe): Treat variables with is_full_var properly.
1056         (do_sd_constraint): Likewise.
1057         (do_ds_constraint): Likewise.
1058         (process_constraint): Remove zeroing offset for !use_field_sensitive.
1059         (get_constraint_for_ptr_offset): New function.
1060         (get_constraint_for_component_ref): For addresses at least include
1061         the last field of the variable.  Handle is_full_vars properly.
1062         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
1063         (handle_ptr_arith): Remove.
1064         (find_func_aliases): Simplify assignment handling.
1065         (create_function_info_for): For parameter and result varinfos set
1066         is_full_var flag.
1067         (create_variable_info_for): Set is_full_var flag whenever we
1068         just created a single varinfo for a decl.
1069         (init_alias_vars): Initialize use_field_sensitive from
1070         max-fields-for-field-sensitive parameter.
1071
1072 2008-07-07  Richard Guenther  <rguenther@suse.de>
1073
1074         PR tree-optimization/36713
1075         * tree-flow-inline.h (is_call_used): New function.
1076         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
1077         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1078         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
1079
1080 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1081
1082         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
1083         
1084 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
1085
1086         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
1087
1088 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1089             Nathan Sidwell  <nathan@codesourcery.com>
1090
1091         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
1092         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
1093         tmake_file.
1094         * config/m68k/t-linux: New.
1095         * doc/install.texi: Document m68k-*-linux is now multilibbed by
1096         default.
1097
1098 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
1099
1100         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
1101         * config/m68k/m68k-devices.def: Remove multilibs that only differ
1102         by MAC/EMAC.
1103
1104 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1105
1106         * gcc.c (execute): Fix -Wc++-compat warning.
1107
1108 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1109
1110         PR target/36720
1111         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
1112         constant for little endian.
1113
1114 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
1115
1116         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
1117         mips_base_mips16 instead of TARGET_MIPS16.
1118         (mips_base_mips16): Declare.
1119         * config/mips/mips.c (mips_base_mips16): Make global.
1120         (was_mips16_p): Remove GTY marker.
1121         (was_mips16_pch_p): New variable.
1122         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
1123         (mips_override_options): Force to non-MIPS16 mode initially.
1124         Do not complain about MIPS16 PIC incompatibilities here.
1125         Only allow -mgpopt if -mexplicit-relocs is in force for
1126         non-MIPS16 code.
1127
1128 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
1129
1130         * configure.ac: Check for caddr_t, define to char * if not defined.
1131         * configure: Regenerate.
1132         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
1133         (mmap_gt_pch_use_address): Likewise.
1134         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
1135
1136 2008-07-06  Richard Guenther  <rguenther@suse.de>
1137
1138         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
1139         (new_var_info): Deal with it.
1140         (solution_set_add): Likewise.
1141         (bitpos_of_field): Make signed, fix.
1142         (struct fieldoff): Remove type and decl fields.  Make size field
1143         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
1144         flags.
1145         (fieldoff_compare): Deal with it.
1146         (push_fields_onto_fieldstack): Remove has_union argument, glob
1147         adjacent non-pointer fields together.
1148         (create_function_info_for): Do not set has_union.
1149         (create_variable_info_for): Simplify.
1150
1151 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
1152
1153         * config.gcc (extra_headers): Add cross-stdarg.h for target
1154         x86_64-*-* and i?86-*-*.
1155         * config/i386/cross-stdarg.h: New.
1156         * builtins.c (std_fn_abi_va_list): New.
1157         (std_canonical_va_list_type): New.
1158         (stabilize_va_list): Replace va_list_type_node use by
1159         mtarget.canonical_va_list_type.
1160         (gimplify_va_arg_expr): Likewise.
1161         (expand_builtin_va_copy): Replace va_list_type_node use by
1162         mtarget.fn_abi_va_list.
1163         * tree-sra.c (is_va_list_type): New helper.
1164         (decl_can_be_decomposed_p): Replace
1165         va_list_type_node use by is_va_list_type.
1166         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1167         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1168         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1169         * config/i386/i386-protos.h (ix86_get_valist_type): New.
1170         (ix86_enum_va_list): New.
1171         * config/i386/i386.c (sysv_va_list_type_node): New.
1172         (ms_va_list_type_node): New.
1173         (ix86_function_type_abi): Remove sorry.
1174         (ix86_build_builtin_va_list_abi): New.
1175         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1176         for 64-bit targets.
1177         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1178         (ix86_init_builtins_va_builtins_abi): New.
1179         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1180         for 64-bit targets.
1181         (ix86_handle_abi_attribute): New.
1182         (attribute_spec): Add sysv_abi and ms_abi.
1183         (ix86_fn_abi_va_list): New.
1184         (ix86_canonical_va_list_type): New.
1185         (ix86_enum_va_list): New.
1186         (TARGET_FN_ABI_VA_LIST): New.
1187         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1188         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1189         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1190         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1191         (TARGET_ENUM_VA_LIST): New.
1192         * expr.h (std_fn_abi_va_list): New.
1193         (std_canonical_va_list_type): New.
1194         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1195         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1196         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1197         TARGET_CANONICAL_VA_LIST_TYPE.
1198         * target.h (struct gcc_target): Add fn_abi_va_list hook
1199         and canonical_va_list_type hook.
1200
1201 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1202
1203         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1204         integral and pointer types.
1205
1206 2008-07-04  Roger Sayle  <roger@eyesopen.com>
1207
1208         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
1209         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1210
1211 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1212
1213         PR target/36684
1214         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
1215
1216 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
1217
1218         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1219         build_gimple_modify_stmt.
1220         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
1221         gimple operand.  Use fold_build* instead of build*.
1222
1223 2008-07-04  Richard Guenther  <rguenther@suse.de>
1224
1225         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1226         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1227         properly to compute the reachability set if we do field-sensitive PTA.
1228         * invoke.texi (max-fields-for-field-sensitive): Document default.
1229         * opts.c (decode_options): Set max-fields-for-field-sensitive to
1230         100 for optimize >= 2.
1231
1232 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1233
1234         * ggc-zone.c (lookup_page_table_if_allocated,
1235         set_page_table_entry, zone_find_object_size, alloc_small_page,
1236         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1237         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1238         -Wc++-compat and/or -Wcast-qual warnings.
1239
1240 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
1241
1242         PR target/36634
1243         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1244         pic_offset_table_rtx to be marked as used here.
1245         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1246         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1247         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1248         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
1249         !TARGET_SECURE_PLT.
1250
1251 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1252
1253         * alloc-pool.c (hash_descriptor, eq_descriptor,
1254         alloc_pool_descriptor): Fix -Wc++-compat warnings.
1255         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
1256         Likewise.
1257         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
1258         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
1259         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
1260         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
1261         Likewise.
1262
1263 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1264
1265         * tree-flow.h (loop_only_exit_p): Declare.
1266         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
1267         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
1268         the number of iterations if it is constant.  Otherwise, if this is the
1269         only possible exit of the loop, use the conservative estimate on the
1270         number of iterations of the entire loop if available.
1271
1272 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
1273
1274         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
1275         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
1276         Add synchronization functions.
1277         * config/sync.c: New file.
1278         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
1279         (LIBGCC_SYNC_CFLAGS): Likewise.
1280
1281 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
1282
1283         PR target/36710
1284         * config/i386/i386.md (mode): Add TF to "mode" attribute.
1285         (*pushtf_sse): New insn pattern.
1286         (pushtf splitters): New splitters.
1287
1288 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
1289
1290         PR middle-end/35736
1291         * predict.c (build_predict_expr): Use void_type_node for the tree
1292         type, instead of NULL_TREE.
1293
1294 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
1295
1296         * config/i386/i386.c (contains_aligned_value_p): Return true
1297         for TCmode.
1298         (ix86_data_alignment): Align TCmode to 128bits.
1299         (ix86_local_alignment): Likewise.
1300
1301 2008-07-03  Andrew Haley  <aph@redhat.com>
1302
1303         PR bootstrap/33304
1304         * vec.h (VEC_TA): New.
1305         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
1306         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
1307         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
1308         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
1309         (C_COMMON_FIXED_TYPES): Remove first arg.
1310         (C_COMMON_FIXED_MODE_TYPES): Likewise.
1311         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
1312         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
1313         not to use empty macro arguments.
1314
1315 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
1316
1317         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
1318         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
1319         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
1320         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
1321         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
1322         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
1323         config/ia64/crtn.asm, config/m68hc11/larith.asm,
1324         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
1325         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
1326         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1327         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1328         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1329         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
1330         config/rs6000/e500crtres64gpr.asm,
1331         config/rs6000/e500crtres64gprctr.asm,
1332         config/rs6000/e500crtrest32gpr.asm,
1333         config/rs6000/e500crtrest64gpr.asm,
1334         config/rs6000/e500crtresx32gpr.asm,
1335         config/rs6000/e500crtresx64gpr.asm,
1336         config/rs6000/e500crtsav32gpr.asm,
1337         config/rs6000/e500crtsav64gpr.asm,
1338         config/rs6000/e500crtsav64gprctr.asm,
1339         config/rs6000/e500crtsavg32gpr.asm,
1340         config/rs6000/e500crtsavg64gpr.asm,
1341         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
1342         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
1343         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
1344         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
1345         config/sparc/sol2-cn.asm: Remove .file directives.
1346
1347 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
1348
1349         * resource.c (mark_referenced_resources): Look inside
1350         UNSPEC_VOLATILEs and ASM_INPUTs.
1351
1352 2008-07-02  Ian Lance Taylor  <iant@google.com>
1353
1354         * rtlanal.c (add_reg_note): New function.
1355         * rtl.h (add_reg_note): Declare.
1356         * auto-inc-dec.c (attempt_change): Use add_reg_note.
1357         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
1358         * builtins.c (expand_builtin_longjmp): Likewise.
1359         (expand_builtin_nonlocal_goto): Likewise.
1360         * calls.c (emit_call_1, expand_call): Likewise.
1361         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1362         * cfglayout.c (fixup_reorder_chain): Likewise.
1363         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1364         (commit_one_edge_insertion): Likewise.
1365         * combine.c (move_deaths, distribute_notes): Likewise.
1366         * df-problems.c (df_set_note): Likewise.
1367         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
1368         (set_unique_reg_note): Likewise.
1369         (emit_copy_of_insn_after): Likewise.
1370         * expr.c (expand_expr_real): Likewise.
1371         * gcse.c (add_label_notes): Likewise.
1372         * haifa-sched.c (create_check_block_twin): Likewise.
1373         * jump.c (mark_jump_label_1): Likewise.
1374         * loop-doloop.c (add_test, doloop_modify): Likewise.
1375         * loop-unswitch.c (compare_and_jump_seq): Likewise.
1376         * lower-subreg.c (move_eh_region_note): Likewise.
1377         * optabs.c (emit_libcall_block): Likewise.
1378         * predict.c (predict_insn): Likewise.
1379         (combine_predictions_for_insn): Likewise.
1380         * recog.c (peephole2_optimize): Likewise.
1381         * regmove.c (try_auto_increment): Likewise.
1382         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
1383         * reload.c (find_reloads): Likewise.
1384         * reload1.c (fixup_eh_region_note): Likewise.
1385         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
1386         * reorg.c (delete_prior_computation): Likewise.
1387         (delete_computation, dbr_schedule): Likewise.
1388         * config/pa/pa.c (legitimize_pic_address): Likewise.
1389         * config/sh/sh.c (sh_reorg): Likewise.
1390
1391 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1392
1393         PR target/36669
1394         * config/libgcc-glibc.ver: Add %exclude.
1395         * config/m32r/libgcc-glibc.ver: Likwise.
1396         * config/s390/libgcc-glibc.ver: Likwise.
1397         * config/sh/libgcc-glibc.ver: Likwise.
1398         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
1399
1400         * config/i386/libgcc-glibc.ver: New.
1401
1402         * config/i386/libgcc-x86_64-glibc.ver: Removed.
1403
1404 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1405
1406         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
1407         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
1408         i[34567]86-*-linux*, x86_64-*-linux*.  Add
1409         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
1410         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
1411         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
1412         i[34567]86-*-linux*, x86_64-*-linux*.
1413
1414         * libgcc-std.ver: Add empty GCC_4.4.0.
1415
1416         * mkmap-symver.awk: Support multiple versions per symbol.
1417
1418         * config/i386/i386.c (ix86_init_builtins): Always define
1419         __builtin_fabsq and __builtin_copysignq with fallbacks.
1420         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
1421         and __builtin_copysignq if SSE2 isn't available.
1422
1423         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
1424         (LIBGCC2_TF_CEXT): Likwise.
1425         (TF_SIZE): Likwise.
1426
1427         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
1428
1429         * config/i386/sfp-machine.h: Moved to libgcc.
1430
1431         * config/i386/sfp-machine.h: New.
1432         * config/i386/t-linux: Likwise.
1433
1434         * config/i386/t-darwin: Remove softfp_wrap_start and
1435         softfp_wrap_end.
1436         * config/i386/t-darwin64: Likewise.
1437
1438         * config/i386/t-fprules-softfp64: Renamed to ...
1439         * config/i386/t-fprules-softfp: This.
1440
1441         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
1442         and softfp_wrap_end.
1443
1444 2008-07-02  Jason Merrill  <jason@redhat.com>
1445
1446         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
1447
1448         * tree.c (ctor_to_list): New fn.
1449         * tree.h: Declare it.
1450         (CONSTRUCTOR_ELT): New macro.
1451         (CONSTRUCTOR_NELTS): New macro.
1452
1453 2008-07-02  Richard Guenther  <rguenther@suse.de>
1454
1455         * tree-ssa-structalias.c (struct variable_info): Reorder
1456         to fill padding on 64bit hosts.  Make collapsed_to an int.
1457         (get_varinfo_fc): Deal with that.
1458         (new_var_info): Likewise.
1459         (collapse_rest_of_var): Likewise.
1460
1461 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
1462
1463         * doc/install.texi (--enable-java-home): Document.
1464         (--enable-aot-compile-rpm): Likewise.
1465         (--with-arch-directory): Likewise.
1466         (--with-os-directory): Likewise.
1467         (--with-origin-name): Likewise.
1468         (--with-arch-suffix): Likewise.
1469         (--with-jvm-root-dir): Likewise.
1470         (--with-jvm-jar-dir): Likewise.
1471         (--with-python-dir): Likewise.
1472
1473 2008-07-02  Richard Guenther  <rguenther@suse.de>
1474
1475         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1476         from decls explicitly.  Merge operand checking from tuples.
1477
1478 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1479
1480         * tree-switch-conversion.c: Included timevar.h which I forgot before.
1481         
1482 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1483
1484         * tree-switch-conversion.c: Included timevar.h
1485         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
1486
1487         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
1488
1489 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1490
1491         * tree-switch-conversion.c: Corrected various comments and
1492         whitespace issues
1493         (build_constructors): Fixed minor formatting mistakes.
1494
1495         * invoke.texi (Optimize Options): Corrected the
1496         switch-conversion-max-branch-ratio parameter.
1497
1498 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
1499
1500         * final.c (asm_insn_count): Return zero for an empty asm body.
1501
1502 2008-07-02  Richard Guenther  <rguenther@suse.de>
1503
1504         * bitmap.h (bitmap_set_bit): Return bool.
1505         (bitmap_clear_bit): Likewise.
1506         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
1507         write to the bitmap if it would.
1508         (bitmap_clear_bit): Likewise.
1509         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
1510         bitmap_set_bit return value.
1511         (add_pred_graph_edge): Likewise.
1512         (add_graph_edge): Likewise.
1513         (do_sd_constraint): Likewise.
1514         (do_ds_constraint): Likewise.
1515
1516 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1517
1518         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
1519         Fix -Wc++-compat and/or -Wcast-qual warnings.
1520         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
1521         gen_regparm_prefix): Likewise.
1522         * vmsdbgout.c (write_modbeg, lookup_filename,
1523         vmsdbgout_source_line, vmsdbgout_init): Likewise.
1524
1525 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
1526
1527         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
1528         defaults.h definition apply.
1529
1530 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1531
1532         * function.c (assign_parm_remove_parallels): New.
1533         (assign_parm_setup_block_p): Do not return true for non-BLKmode
1534         PARALLELs.
1535         (assign_parm_setup_block): Do not handle them.
1536         (assign_parm_setup_reg, assign_parm_setup_stack): Call
1537         assign_parm_remove_parallels.
1538
1539 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1540
1541         * c-typeck.c (convert_for_assignment): Use
1542         vector_targets_convertible_p.
1543         * c-common.c (vector_targets_convertible_p): New.
1544         * c-common.h (vector_targets_convertible_p): New prototype.
1545         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
1546         opaque_p_V2SI_type_node.
1547
1548 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
1549
1550         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
1551         RFmode constants.
1552
1553 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
1554
1555         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
1556         TFmode constants via two element DImode vector for hosts with
1557         HOST_BITS_PER_WIDE_INT < 64.
1558         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
1559         also for HOST_BITS_PER_WIDE_INT < 64.
1560
1561 2008-07-01  Richard Guenther  <rguenther@suse.de>
1562
1563         PR tree-optimization/36666
1564         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
1565         (get_constraint_exp_from_ssa_var): Split into ...
1566         (get_constraint_exp_for_temp): ... this ...
1567         (get_constraint_for_ssa_var): ... and that.
1568         Return constraint expressions for all touched sub-fields
1569         if the results address is not taken.
1570         (process_constraint): Remove assertion that aggregate
1571         assignments do not happen at this place.
1572         (get_constraint_for_component_ref): Add address_p argument.
1573         Return constraint expressions for all touched sub-fields
1574         if the results address is not taken.
1575         (do_deref): Use get_constraint_exp_for_temp.
1576         (get_constraint_for_1): Rename from ...
1577         (get_constraint_for): ... this.  Add the old function as wrapper.
1578         (do_structure_copy): Use get_constraint_for_1.
1579
1580 2008-07-01  Martin Jambor  <mjambor@suse.cz>
1581
1582         * Makefile.in (tree-switch-conversion.o): Add.
1583         (OBJS-common): Add tree-swtch-conversion.o.
1584         * passes.c (init_optimization_passes): Add pass_convert_switch.
1585         * tree-pass.h: (pass_convert_switch): Add.
1586         * tree-switch-conversion.c: New file.
1587         * gcc.dg/tree-ssa/cswtch.c: New testcase.
1588         * common.opt (ftree-cswtch): New option.
1589         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1590         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1591         * opts.c (decode_options): Set flag_tree_switch_conversion when
1592         optimization level is >= 2.
1593         * doc/invoke.texi (Optimize Options): Added description of
1594         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
1595
1596 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1597
1598         * config/darwin-driver.c (darwin_default_min_version): Fix
1599         -Wc++-compat warnings.
1600
1601 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
1602
1603         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
1604         of operand 0.
1605
1606 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1607
1608         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
1609         
1610 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1611
1612         PR rtl-optimization/34744
1613         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
1614         (df_scan_free_internal): Free data structures not
1615         allocated in storage pools.
1616         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
1617         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
1618         df_scan_free_mws_vec.
1619         * dse.c (dse_step6): Free offset_map_p and offset_map_n
1620         unconditionally.
1621
1622 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
1623
1624         * config/i386/i386.c (contains_aligned_value_p): Return true
1625         for __float128.
1626         (ix86_function_arg_boundary): Return its natural boundary
1627         for __float128.
1628         (return_in_memory_32): Don't check TDmode.
1629         (ix86_split_to_parts): Support splitting into 4 parts and
1630         support TFmode for 32bit target.
1631         (ix86_split_long_move): Support splitting into 4 parts.
1632         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
1633         for SSE2.
1634         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
1635         (ix86_init_builtins): Here.
1636         (ix86_scalar_mode_supported_p): Always return true for TFmode.
1637         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
1638         'q' and 'w', respectively. 
1639
1640         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
1641         TARGET_64BIT.
1642         (movtf_internal): Likewise.
1643         (<code>tf2): Likewise.
1644         (*absnegtf2_sse): Likewise.
1645         (copysign<mode>3): Likewise.
1646         (copysign<mode>3_const): Likewise.
1647         (copysign<mode>3_var): Likewise.
1648         (define_split UNSPEC_COPYSIGN): Likewise.
1649         * config/i386/sse.md (*nandtf3): Likewise.
1650         (<code>tf3): Likewise.
1651         (*<code>tf3): Likewise.
1652
1653 2008-06-30  Joey Ye  <joey.ye@intel.com>
1654             H.J. Lu  <hongjiu.lu@intel.com>
1655
1656         * global.c (compute_regsets): Set frame_pointer_needed here.
1657         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1658
1659 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1660
1661         * doc/install.texi (specific): Expand Windows build notes.
1662
1663 2008-06-30  Ira Rosen  <irar@il.ibm.com>
1664
1665         PR tree-optimization/36648
1666         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1667         number of prolog iterations by step. Fix the comment.
1668
1669 2008-06-30  Richard Guenther  <rguenther@suse.de>
1670
1671         PR middle-end/36671
1672         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1673         handle calls from ECF_MALLOC functions.
1674         (handle_pure_call): ECF_MALLOC functions do not return
1675         call-used memory.
1676         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1677
1678 2008-06-29  Andreas Schwab  <schwab@suse.de>
1679
1680         * config/m68k/m68k.c (print_operand): Always print a float
1681         constant in hex.
1682         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1683         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1684         Remove macros.
1685
1686         * config/rs6000/x-linux64: Remove never used file.
1687
1688 2008-06-29  Richard Guenther  <rguenther@suse.de>
1689
1690         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1691         prototype.
1692         (struct alias_info): Move ...
1693         * tree-ssa-alias.c: ... here.
1694         (update_alias_info): Declare.
1695         (compute_may_aliases): Call it.
1696         (update_alias_info): New function.
1697         * tree-ssa-structalias.c (update_alias_info): Move ...
1698         * tree-ssa-alias.c (update_alias_info_1): ... here.
1699         * tree-ssa-structalias.c (process_constraint_1): Remove
1700         unused from_call argument.  Rename to ...
1701         (process_constraint): ... this.  Delete old wrapper.
1702         (make_constraint_to): Adjust callers.
1703         (handle_const_call): Likewise.
1704         (handle_pure_call): Likewise.
1705         (init_base_vars): Likewise.
1706         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
1707         (find_func_aliases): We don't need structure copies for
1708         complex types.
1709         (make_constraint_from_anything): Remove.
1710         (create_variable_info_for): For globals make constraints
1711         from escaped, not from anything.
1712         (compute_points_to_sets): Do not call update_alias_info.
1713         (ipa_pta_execute): Use make_constraint_from.
1714
1715 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1716
1717         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1718         (bitmap.o-warn, dominance.o-warn): New.
1719         * configure.ac (cxx_compat_warn): Delete.
1720         (loose_warn): Add -Wcast-qual and -Wc++-compat.
1721         * system.h: Remove #pragma diagnostic for -Wcast-qual and
1722         -Wc++-compat.
1723         * configure: Regenerate.
1724
1725         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1726         warnings.
1727
1728 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1729
1730         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1731         * df-scan.c (df_notes_rescan): Likewise.
1732         * ggc-page.c (set_page_table_entry): Likewise.
1733         * intl.c (gcc_gettext_width): Likewise.
1734         * varasm.c (get_unnamed_section, get_noswitch_section,
1735         get_section): Likewise.
1736
1737 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
1738
1739         * regrename.c (build_def_use): Don't copy RTX.
1740
1741 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
1742
1743         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1744         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
1745         punctuation.  Use @ref instead of @xref.
1746         (Function Names): Remove stray @display/@end display.
1747         (C++ Attributes): Use @ref instead of @xref.
1748         (Deprecated Features): Fix punctuation around @xref.
1749         (Backwards Compatibility): Likewise.
1750         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1751
1752 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
1753
1754         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1755         constants for E500 double.
1756
1757 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1758
1759         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1760         element type of const_vector.
1761
1762 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
1763
1764         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1765         Remove FLAGS_REG clobber from expander pattern.
1766         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1767         (anddi3, andsi3, andhi3, andqi3): Ditto.
1768         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1769         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1770         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1771         (ashlsi3, ashlhi3, ashlqi3): Ditto.
1772         (ashrsi3, ashrhi3, ashrqi3): Ditto.
1773         (lshrsi3, lshrhi3, lshrqi3): Ditto.
1774         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1775         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1776
1777 2008-06-28  Richard Guenther  <rguenther@suse.de>
1778
1779         * tree-ssa-structalias.c (callused_id, var_callused,
1780         callused_tree): Add.
1781         (handle_pure_call): New function.
1782         (find_func_aliases): Call it.
1783         (find_what_p_points_to): Handle the call-used set.
1784         (clobber_what_escaped): Likewise.
1785         (compute_call_used_vars): New function.
1786         (init_base_vars): Init the call-used variable.
1787         (do_sd_constraint): Do not propagate the solution from CALLUSED
1788         but use CALLUSED as a placeholder.
1789         (solve_graph): Likewise.
1790         * tree-flow-inline.h (gimple_call_used_vars): New function.
1791         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1792         (compute_call_used_vars): Declare.
1793         * tree-ssa-alias.c (set_initial_properties): Call
1794         compute_call_used_vars.
1795         (reset_alias_info): Clear call-used variables.
1796         (add_call_clobber_ops): Assert we are not called for const/pure
1797         functions.  Remove handling of them.
1798         (add_call_read_ops): Handle pure functions by adding the
1799         call-used set of variables as VUSEs.
1800         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1801         (delete_tree_ssa): Free it.
1802         * tree-dfa.c (remove_referenced_var): Clear the var from the
1803         call-used bitmap.
1804
1805 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
1806
1807         * tree.c (build_varargs_function_type_list): New.
1808         (build_function_type_list_1): New.
1809         (build_function_type_list): Use build_function_type_list_1.
1810         * tree.h (build_varargs_function_type_list): New.
1811
1812 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1813
1814         PR target/34856
1815         * config/spu/spu.c (spu_builtin_splats): Do not generate
1816         invalid CONST_VECTOR expressions.
1817         (spu_expand_vector_init): Likewise.
1818
1819 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
1820
1821         * optabs.c (libfunc_decls): New variable.
1822         (libfunc_decl_hash, libfunc_decl_eq): New functions.
1823         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1824         for the same function twice.
1825
1826 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
1827
1828         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1829         ix86_expand_binary_operator directly.
1830         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
1831         for operand 2.
1832         (*ashrti3_1): Ditto.
1833         (*lshrti3_1): Ditto.
1834         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1835         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1836         using only one splitter.  Conditionaly execute splitter before or
1837         after peephole2 pass.
1838         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1839         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
1840         Use only one alternative in asm template.
1841         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1842         in asm template.
1843         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1844         "J" operand constraint for operand 2.
1845         (*ashldi3_cconly_rex64): Ditto.
1846         (*ashrdi3_cmp_rex64): Ditto.
1847         (*ashrdi3_cconly_rex64): Ditto.
1848         (*lshrdi3_cmp_rex64): Ditto.
1849         (*lshrdi3_cconly_rex64): Ditto.
1850         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1851         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1852         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1853         gen_x86_shrd_1.
1854
1855 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1856
1857         * gimplify.c (omp_is_private): Don't return true if decl is not
1858         already private on #pragma omp for or #pragma omp parallel for.
1859
1860         PR debug/36617
1861         * tree-cfg.c (struct move_stmt_d): Replace block field with
1862         orig_block and new_block fields.
1863         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1864         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1865         (move_block_to_fn): Replace vars_map and new_label_map arguments
1866         with struct move_stmt_d pointer.
1867         (replace_block_vars_by_duplicates): New function.
1868         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
1869         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
1870         all subblocks of ORIG_BLOCK to the new function.  Call
1871         replace_block_vars_by_duplicates.
1872         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1873         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1874         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
1875         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1876         (expand_omp): Temporarily set input_location to the location of
1877         region's controlling stmt.
1878         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1879         BIND_EXPR, push ctx->block_vars and gimplification vars into
1880         the BIND_EXPR and its block's BLOCK_VARS instead of directly
1881         into dest function.
1882         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1883         there are any BLOCK_VARS.
1884         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1885         OMP_PARALLEL or OMP_TASK stmt.
1886         (lower_omp): Save and restore input_location around the lower_omp_1
1887         call.
1888
1889 2008-06-27  Richard Guenther  <rguenther@suse.de>
1890
1891         PR tree-optimization/36400
1892         PR tree-optimization/36373
1893         PR tree-optimization/36344
1894         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1895         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1896         (update_alias_info): Remove call clobbering code.
1897         (make_constraint_to): New helper function.
1898         (make_escape_constraint): Likewise.
1899         (handle_rhs_call): Use it on all pointer containing arguments.
1900         Also mark the static chain escaped.
1901         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1902         instead of ANYTHING.
1903         (make_constraint_from): New helper split out from ...
1904         (make_constraint_from_anything): ... here.
1905         (find_func_aliases): Add constraints for escape sites.
1906         (intra_create_variable_infos): Make constraints from NONLOCAL
1907         for parameters.
1908         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1909         as ANYTHING.
1910         (clobber_what_p_points_to): Remove.
1911         (clobber_what_escaped): New function.
1912         (init_base_vars): Init NONLOCAL and ESCAPED.
1913         (do_sd_constraint): Do not propagate the solution from ESCAPED
1914         but use ESCAPED as a placeholder.
1915         (solve_graph): Likewise.
1916         * tree-flow.h (clobber_what_p_points_to): Remove.
1917         (clobber_what_escaped): Declare.
1918         * tree-ssa-alias.c (set_initial_properties): Call it.
1919         Remove code clobbering escaped pointers.
1920
1921 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1922
1923         * function.c (allocate_struct_function): Only allocate a unique
1924         funcdef_no if the decl is nonzero.
1925
1926 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1927
1928         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1929         * config/mips/mips.c (mips_split_const_insns): New function.
1930         * config/mips/mips.md (move_type): New attribute.
1931         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
1932         (dword_mode): New attribute.
1933         (type): Avoid long line.  Map "move_type"s to "type"s,
1934         choosing "multi" for doubleword moves if appropriate.
1935         Swap MTC/MFC comments to match their declaration order.
1936         (extended_mips16): Default to "yes" if "move_type" is "sll0",
1937         "type" is "branch" or "jal" is "direct".
1938         (length): Handle "extended_mips16" first.  Make the default
1939         "0" for "ghost" instructions.  Set the length from "move_type".
1940         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1941         of "type", with "sll0" for the register alternative.  Remove the
1942         "extended_mips16" attribute.
1943         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1944         of "type", with "shift_shift" for the register alternative.
1945         Remove the "length" attribute.
1946         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1947         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1948         of "type", with "andi" for the register alternative.
1949         (*zero_extendqihi2): Likewise.
1950         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1951         of "andi" instead of a "type" of "arith".
1952         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1953         instead of "type".
1954         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1955         (mov_<store>r, *mov<mode>_ra): Likewise.
1956         (extendsidi2): Use "move_type" instead of "type", with "move"
1957         for the register alternative.
1958         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1959         of "type", with "signext" for the register alternative.
1960         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1961         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1962         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1963         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1964         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1965         (unnamed branch insn): Likewise.
1966         (*movdi_gp32_fp64): Fold into...
1967         (*movdi_32bit): ...here.
1968         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1969         (*movdf_hardfloat): ...this new pattern.
1970         (*movdf_softfloat): Remove redundant FPR alternatives.
1971         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1972         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1973         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
1974         the "move" attribute.
1975         (*movdi_32bit): Use "move_type" instead of "type" and remove the
1976         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
1977         and "store" for COP loads and stores.
1978         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1979         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1980         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1981         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1982         (*movtf_mips16, *movv2sf): Likewise.
1983         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1984         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1985         (mfhc1<mode>): Use "move_type" instead of "move".
1986         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1987         (loadgp_blockage): Remove the "length" attribute.
1988         (blockage, set_got_version, update_got_version): Likewise.
1989         (call_internal): Remove the "extended_mips16" attribute.
1990         (call_value_internal, call_value_multiple_internal): Likewise.
1991         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1992         instead of "move".
1993         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1994         the "length" attribute.
1995
1996 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1997
1998         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1999         -Wcast-qual warnings.
2000         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2001         handle_pragma_pop_macro): Likewise.
2002         * collect2.c (resolve_lib_name): Likewise.
2003         * config/arc/arc.c (arc_init): Likewise.
2004         * config/arm/arm.c (neon_builtin_compare,
2005         locate_neon_builtin_icode): Likewise.
2006         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2007         * config/bfin/bfin.c (bfin_init_machine_status,
2008         bfin_optimize_loop): Likewise.
2009         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
2010         * config/cris/cris.c (cris_init_expanders): Likewise.
2011         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
2012         * config/darwin.c (machopic_indirection_eq,
2013         machopic_indirection_name, machopic_output_indirection): Likewise.
2014         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
2015         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
2016         frv_optimize_membar): Likewise.
2017         * config/i386/cygwin.h (mingw_scan,
2018         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
2019         * config/i386/cygwin1.c (mingw_scan): Likewise.
2020         * config/i386/i386.c (machopic_output_stub): Likewise.
2021         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
2022         i386_pe_unique_section): Likewise.
2023         * config/ia64/ia64.c (ia64_init_machine_status,
2024         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
2025         Likewise.
2026         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
2027         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
2028         * config/m68k/m68k.c (m68k_handle_option,
2029         m68k_sched_md_init_global): Likewise.
2030         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
2031         mcore_unique_section): Likewise.
2032         * config/mips/mips.c (mips_block_move_straight,
2033         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
2034         Likewise.
2035         * config/mmix/mmix.c (mmix_init_machine_status,
2036         mmix_encode_section_info): Likewise.
2037         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
2038         * config/rs6000/rs6000.c (rs6000_init_machine_status,
2039         print_operand_address, output_toc, redefine_groups,
2040         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
2041         * config/s390/s390.c (s390_init_machine_status): Likewise.
2042         * config/score/score.c (score_block_move_straight,
2043         score_block_move_loop_body): Likewise.
2044         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
2045         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
2046         * emit-rtl.c (find_auto_inc): Likewise.
2047         * gcc.c (translate_options, process_command): Likewise.
2048         * reorg.c (dbr_schedule): Likewise.
2049         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
2050         * xcoffout.c (xcoffout_declare_function): Likewise.
2051
2052 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
2053
2054         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
2055         ipa-pta working again.
2056
2057 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
2058
2059         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
2060         genautomata.
2061
2062 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
2063
2064         * config.gcc (powerpc*-*-*): Add new core e500mc.
2065         * config/rs6000/e500mc.md: New file.
2066         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2067         e500mc.
2068         (rs6000_override_options): Add e500mc case to
2069         processor_target_table. Altivec and Spe options not allowed
2070         with e500mc. Add isel instruction to e500mc by
2071         default. Initialize rs6000_cost for e500mc.
2072         (rs6000_issue_rate): Set issue rate for e500mc.
2073         * config/rs6000/rs6000.h (processor_type): Add
2074         PROCESSOR_PPCE500MC.
2075         (ASM_CPU_SPEC): Add e500mc.
2076         Set TARGET_ISEL to rs6000_isel.
2077         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
2078         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
2079         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
2080         Include e500mc.md.
2081         * doc/invoke.texi: Add e500mc to list of cpus.
2082
2083 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2084
2085         PR c/34867
2086         * c-lex.c (lex_charconst): Initialize unsignedp.
2087
2088 2008-06-27  Olivier Hainque  <hainque@adacore.com>
2089
2090         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
2091         documented assumptions.
2092
2093 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
2094
2095         * dwarf2out.c: Remove trailing white spaces.  Break long line
2096         in comments.
2097
2098 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
2099
2100         * libfuncs.h (LTI_synchronize): New libfunc_index.
2101         (synchronize_libfunc): Declare.
2102         * builtins.c (expand_builtin_synchronize): Consider using
2103         synchronize_libfunc before falling back on an asm blockage.
2104         * config/mips/mips.c: Include libfuncs.h
2105         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
2106
2107 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
2108
2109         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
2110         parameter.  Copy stack_reg to r11 where appropriate.
2111         (no_global_regs_above): Add gpr parameter.
2112         (rs6000_stack_info): Only add padding for SPE save area if we
2113         are saving SPE GPRs and CR.
2114         (saveres_routine_syms): New variable.
2115         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
2116         Define.
2117         (rs6000_savres_routine_sym): New function.
2118         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
2119         split out of...
2120         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
2121         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
2122         Tweak FPR out-of-line saving.
2123         (rs6000_make_savres_rtx): New function.
2124         (rs6000_use_multiple_p): New function.
2125         (rs6000_savres_strategy): New function.
2126         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
2127         out-of-line if appropriate.
2128         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
2129         if we are optimizing for size.
2130         (GP_SAVE_INLINE): Define.
2131         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
2132         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
2133         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
2134         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
2135         (*save_fpregs_<mode>): Add use of r11.
2136         (*restore_gpregs_<mode>): New insn.
2137         (*return_and_restore_gpregs_<mode>): New insn.
2138         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
2139         use r11.
2140         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
2141         (*restore_gpregs_spe): New insn.
2142         (*return_and_restore_gpregs_spe): New insn.
2143         * config/rs6000/predicates.md (save_world_operation): Fix check.
2144
2145 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2146
2147         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
2148         this point, so assert that.
2149
2150 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
2151
2152         * cfganal.c: Include vec.h and vecprim.h.
2153         (compute_idf): Import from...
2154         * tree-into-ssa (compute_idf): ...here.
2155         * basic-block.h (compute_idf): Export.
2156
2157 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
2158
2159         * c-decl.c (merge_decls): Use !current_function_decl to check for
2160         extern declaration of C99 inline function being at file scope.
2161
2162 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2163
2164         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2165
2166 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2167
2168         * alias.c (record_alias_subset, init_alias_analysis): Fix
2169         -Wc++-compat and/or -Wcast-qual warnings.
2170         * attribs.c (lookup_attribute_spec): Likewise.
2171         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2172         copy_bb, connect_traces,
2173         find_rarely_executed_basic_blocks_and_cr): Likewise.
2174         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2175         note_btr_set, migrate_btr_defs): Likewise.
2176         * builtins.c (result_vector, expand_builtin_memcpy,
2177         expand_builtin_mempcpy_args, expand_builtin_strncpy,
2178         builtin_memset_read_str, expand_builtin_printf,
2179         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2180         Likewise.
2181         * caller-save.c (mark_set_regs): Likewise.
2182         * calls.c (expand_call, emit_library_call_value_1): Likewise.
2183         * cgraph.c (cgraph_edge): Likewise.
2184         * combine.c (likely_spilled_retval_1): Likewise.
2185         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2186         htab_counts_entry_del, get_coverage_counts): Likewise.
2187         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2188         new_cselib_val): Likewise.
2189         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2190         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2191         Likewise.
2192         * df-core.c (df_compact_blocks): Likewise.
2193         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2194         * df-scan.c (df_grow_reg_info, df_ref_create,
2195         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2196         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2197         df_record_entry_block_defs, df_record_exit_block_uses,
2198         df_bb_verify): Likewise.
2199         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2200         DF_REF_EXTRACT_MODE_CONST): New.
2201         * dominance.c (get_immediate_dominator, get_dominated_by,
2202         nearest_common_dominator, root_of_dom_tree,
2203         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2204         -Wc++-compat and/or -Wcast-qual warnings.
2205         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2206         record_store, replace_read, check_mem_read_rtx, scan_insn,
2207         dse_step1, dse_record_singleton_alias_set): Likewise.
2208         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2209
2210 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2211
2212         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2213         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2214         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2215         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2216         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2217         add_ranges_num, add_ranges_by_labels, file_info_cmp,
2218         file_name_acquire, output_file_names, add_const_value_attribute,
2219         premark_used_types_helper, file_table_eq, file_table_hash,
2220         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2221         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2222         -Wcast-qual warnings.
2223         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2224         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2225         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2226         gen_reg_rtx, start_sequence, init_emit): Likewise.
2227         * et-forest.c (et_new_occ, et_new_tree): Likewise.
2228         * except.c (init_eh_for_function, gen_eh_region,
2229         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2230         arh_to_landing_pad, arh_to_label, add_action_record,
2231         add_call_site, switch_to_exception_section): Likewise.
2232         * expmed.c (synth_mult): Likewise.
2233         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2234         store_expr): Likewise.
2235         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2236         Likewise.
2237         * function.c (assign_stack_temp_for_type,
2238         allocate_struct_function, match_asm_constraints_1): Likewise.
2239         * gcov-io.c (gcov_allocate): Likewise.
2240         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2241         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2242         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2243         record_one_set, insert_expr_in_table, insert_set_in_table,
2244         dump_hash_table, compute_hash_table_work, alloc_hash_table,
2245         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2246         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2247         -Wcast-qual warnings.
2248
2249 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2250
2251         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
2252         -Wcast-qual warnings.
2253         * gcc.c (process_command): Likewise.
2254         * genattrtab.c (oballoc): Use XOBNEW.
2255         (oballocvec): Define.
2256         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
2257         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
2258         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
2259         -Wc++-compat and/or -Wcast-qual warnings.
2260         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
2261         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
2262         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2263         gen_presence_absence_set, gen_automaton, gen_regexp_el,
2264         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2265         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
2266         add_excls, process_presence_absence_names,
2267         process_presence_absence_patterns, add_presence_absence,
2268         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
2269         get_free_state, add_arc, get_free_automata_list_el,
2270         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
2271         transform_3, cache_presence, create_ainsns, create_automata,
2272         create_state_ainsn_table, dfa_insn_code_enlarge,
2273         output_trans_func, output_min_issue_delay_func,
2274         output_dead_lock_func, output_reset_func,
2275         output_get_cpu_unit_code_func, output_dfa_start_func,
2276         expand_automata): Likewise.
2277         * genextract.c (gen_insn): Likewise.
2278         * gengtype-lex.l: Likewise.
2279         * gengtype.c (read_input_list, adjust_field_type,
2280         process_gc_options): Likewise.
2281         * genoutput.c (note_constraint): Likewise.
2282         * genpreds.c (mangle, add_constraint): Likewise.
2283         * genrecog.c (process_define_predicate, new_decision,
2284         add_to_sequence): Likewise.
2285         * gensupport.c (record_insn_name): Likewise.
2286
2287 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2288
2289         * config/i386/driver-i386.c (detect_caches_amd,
2290         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
2291         and/or -Wcast-qual warnings.
2292         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
2293         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
2294         gt_pch_save): Likewise.
2295         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
2296         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
2297         * global.c (compute_regsets): Likewise.
2298         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2299         finish_graph_dump_file): Likewise.
2300         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
2301         unlink_bb_notes): Likewise.
2302         * integrate.c (get_hard_reg_initial_val): Likewise.
2303         * ipa-prop.c (ipa_push_func_to_list): Likewise.
2304         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
2305         * local-alloc.c (update_equiv_regs): Likewise.
2306         * loop-invariant.c (check_invariant_table_size,
2307         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
2308         Likewise.
2309         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
2310         altered_reg_used, mark_altered): Likewise.
2311         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
2312         insert_var_expansion_initialization,
2313         combine_var_copies_in_loop_exit, apply_opt_in_copies,
2314         release_var_copies): Likewise.
2315         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
2316         analyze_matrix_decl, add_allocation_site, analyze_transpose,
2317         analyze_accesses_for_phi_node, check_var_notmodified_p,
2318         check_allocation_function, find_sites_in_func,
2319         record_all_accesses_in_func, transform_access_sites,
2320         transform_allocation_sites): Likewise.
2321         * omp-low.c (new_omp_region, create_omp_child_function_name,
2322         check_omp_nesting_restrictions, check_combined_parallel,
2323         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
2324         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
2325         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2326         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
2327         Likewise.
2328         * opts-common.c (prune_options): Likewise.
2329         * opts.c (add_input_filename, print_filtered_help,
2330         get_option_state): Likewise.
2331         * params.c (add_params): Likewise.
2332         * passes.c (set_pass_for_id, next_pass_1,
2333         do_per_function_toporder, pass_fini_dump_file): Likewise.
2334         * postreload.c (reload_cse_simplify_operands): Likewise.
2335         * predict.c (tree_predicted_by_p, tree_predict_edge,
2336         clear_bb_predictions, combine_predictions_for_bb): Likewise.
2337
2338 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2339
2340         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
2341         warnings.
2342         * recog.c (check_asm_operands, validate_change_1): Likewise.
2343         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
2344         subst_asm_stack_regs): Likewise.
2345         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
2346         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
2347         * regmove.c (reg_is_remote_constant_p): Likewise.
2348         * regrename.c (regrename_optimize, scan_rtx_reg,
2349         kill_clobbered_value, kill_set_value, kill_autoinc_value):
2350         Likewise.
2351         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
2352         regstat_compute_calls_crossed): Likewise.
2353         * reload1.c (init_reload, new_insn_chain,
2354         has_nonexceptional_receiver, reload, copy_reloads,
2355         calculate_needs_all_insns, init_elim_table): Likewise.
2356         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
2357         * rtl.c (shallow_copy_rtx_stat): Likewise.
2358         * rtlanal.c (parms_set): Likewise.
2359         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
2360         sbitmap_resize, sbitmap_vector_alloc): Likewise.
2361         * sched-ebb.c (earliest_block_with_similiar_load,
2362         add_deps_for_risky_insns): Likewise.
2363         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
2364         schedule_region): Likewise.
2365         * see.c (eq_descriptor_pre_extension,
2366         hash_descriptor_pre_extension, hash_del_pre_extension,
2367         eq_descriptor_properties, hash_descriptor_properties,
2368         hash_del_properties, see_seek_pre_extension_expr,
2369         see_initialize_data_structures, see_print_register_properties,
2370         see_print_pre_extension_expr, see_delete_merged_def_extension,
2371         see_delete_unmerged_def_extension, see_emit_use_extension,
2372         see_pre_delete_extension, see_map_extension, see_commit_changes,
2373         see_analyze_merged_def_local_prop,
2374         see_analyze_merged_def_local_prop,
2375         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
2376         see_set_prop_merged_def, see_set_prop_unmerged_def,
2377         see_set_prop_unmerged_use, see_print_one_extension,
2378         see_merge_one_use_extension, see_merge_one_def_extension,
2379         see_store_reference_and_extension, see_update_uses_relevancy,
2380         see_update_defs_relevancy): Likewise.
2381         * statistics.c (hash_statistics_hash, hash_statistics_eq,
2382         hash_statistics_free, curr_statistics_hash): Likewise.
2383         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
2384         expand_asm_operands, expand_return, case_bit_test_cmp,
2385         expand_case): Likewise.
2386         * stor-layout.c (start_record_layout): Likewise.
2387         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
2388         gt_pch_save_stringpool): Likewise.
2389         * tree-data-ref.c (hash_stmt_vertex_info,
2390         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
2391         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
2392
2393 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
2394
2395         PR target/36627
2396         * config/i386/i386.md : Change constraints of HImode and QImode
2397         immediate operands from "i" to "n".  Change SImode "ni" constraint to
2398         "i" and SImode "rmi" constraint to "g".  Remove all constraints
2399         from const0_operand and const1_operand predicated operands.
2400         (i): Change QImode and HImode attribute from "i" to "n".
2401         (*subqi_2): Change HImode operands to QImode.
2402         (*subqi_3): Ditto.
2403
2404 2008-06-25  Olivier Hainque  <hainque@adacore.com>
2405
2406         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
2407         sed substitutions.
2408
2409 2008-06-25  Richard Guenther  <rguenther@suse.de>
2410
2411         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
2412         not overflow the result type.
2413
2414 2008-06-25  Richard Guenther  <rguenther@suse.de>
2415
2416         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
2417         (vn_lookup): Likewise.
2418
2419 2008-06-25  Richard Guenther  <rguenther@suse.de>
2420
2421         PR tree-optimization/35518
2422         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
2423         * tree-sra.c (instantiate_element): Use fold_build3 to build
2424         BIT_FIELD_REFs.
2425         (try_instantiate_multiple_fields): Likewise.
2426
2427 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2428
2429         * config/rs6000/rs6000.md: Change all string instruction's clobber to
2430         be early clobbers.
2431
2432 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2433
2434         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
2435         use_backchain_to_restore_sp to true
2436         if the offset of the link register save area would go over the 32k - 1
2437         offset limit of the load
2438         instructions.
2439
2440 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
2441
2442         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
2443         anchor for the type-punning blurb.  Cross-reference "Structures
2444         unions enumerations and bit-fields implementation".  Provide a
2445         cast-through-pointer example.  Make final sentence self-contained.
2446         * doc/implement-c.texi (Structures unions enumerations and
2447         bit-fields implementation): Cross-reference the type-punning blurb
2448         in the -fstrict-aliasing documentation.
2449
2450 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2451
2452         PR middle-end/36594
2453         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
2454         the memory instead of the memory itself for the save area.
2455
2456 2008-06-24  Olivier Hainque  <hainque@adacore.com>
2457             Nicolas Roche  <roche@adacore.com>
2458
2459         * gengtype.c (srcdir_len): size_t instead of int.
2460         (get_file_realbasename): New function.  For F a filename, the real
2461         basename of F, with all the path components stripped.
2462         (get_file_srcdir_relative_path): New function.  For F a filename, the
2463         relative path to F from $(srcdir).
2464         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
2465         get_file_realbasename.  Adjust the head comment.
2466         (get_prefix_langdir_index): New function. For F a filename, return the
2467         lang_dir_names[] relative index of the language directory that is
2468         a prefix in F.
2469         (get_file_langdir): For F a filename, return the name of the language
2470         directory where F is located.
2471         (get_file_gtfilename): New function. The gt- output file name for an
2472         input filename F.
2473         (get_output_file_with_visibility): Replace in-line computations with
2474         uses of get_file_gtfilename and get_prefix_langdir_index.
2475         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
2476
2477 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
2478
2479         PR tree-optimization/36504
2480         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
2481         references without base address.
2482
2483 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         PR middle-end/36584
2486         * calls.c (expand_call): Increase alignment for recursive functions.
2487
2488 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
2489
2490         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
2491         (TARGET_FUNCTION_VALUE): New define.
2492         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
2493         * config/avr/avr.h (FUNCTION_VALUE): Remove.
2494
2495 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2496
2497         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
2498         (fmod<mode>3): Ditto.
2499         (remainderxf3): Ditto.
2500         (remainder<mode>3): Ditto.
2501
2502 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
2503
2504         PR target/36533
2505         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
2506         REG is a hard register.
2507
2508         PR tree-optimization/36508
2509         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
2510         499, don't check it at all in release compilers.
2511
2512 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2513
2514         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
2515         together with SSE_TARGET_MATH to disable insn pattern.
2516         (*fop_<MODEF:mode>_2_i387): Ditto.
2517         (*fop_<MODEF:mode>_3_i387): Ditto.
2518
2519 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
2520
2521         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
2522         
2523 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2524
2525         PR middle-end/34906
2526         * gimplify.c (gimplify_asm_expr): Check the return code of
2527         parse_output_constraint call, set function return and is_inout
2528         value if it failed.
2529
2530 2008-06-22  Ian Lance Taylor  <iant@google.com>
2531
2532         * c-lex.c (narrowest_unsigned_type): Change itk to int.
2533         (narrowest_signed_type): Likewise.
2534         * c-typeck.c (c_common_type): Change local variable mclass to enum
2535         mode_class, twice.
2536         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
2537         tcc_comparison, not the tree code itself.
2538         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
2539         (c_expand_expr): Cast modifier to enum expand_modifier.
2540         * c-common.h (C_RID_CODE): Add casts.
2541         (C_SET_RID_CODE): Define.
2542         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
2543         (c_lex_one_token): Add cast to avoid warning.
2544         (c_parser_objc_type_name): Rename local typename to type_name.
2545         (check_no_duplicate_clause): Change code parameter to enum
2546         omp_clause_code.
2547         (c_parser_omp_var_list_parens): Change kind parameter to enum
2548         omp_clause_code.
2549         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
2550         c_parser_omp_list_var_parens.
2551         (c_parser_omp_threadprivate): Likewise.
2552         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
2553         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
2554         * c-format.c (NO_FMT): Define.
2555         (printf_length_specs): Use NO_FMT.
2556         (asm_fprintf_length_specs): Likewise.
2557         (gcc_diag_length_specs): Likewise.
2558         (scanf_length_specs): Likewise.
2559         (strfmon_length_specs): Likewise.
2560         (gcc_gfc_length_specs): Likewise.
2561         (printf_flag_specs): Change 0 to STD_C89.
2562         (asm_fprintf_flag_specs): Likewise.
2563         (gcc_diag_flag_specs): Likewise.
2564         (gcc_cxxdiag_flag_specs): Likewise.
2565         (scanf_flag_specs): Likewise.
2566         (strftime_flag_specs): Likewise.
2567         (strfmon_flag_specs): Likewise.
2568         (print_char_table): Likewise.
2569         (asm_fprintf_char_table): Likewise.
2570         (gcc_diag_char_table): Likewise.
2571         (gcc_tdiag_char_table): Likewise.
2572         (gcc_cdiag_char_table): Likewise.
2573         (gcc_cxxdiag_char_table): Likewise.
2574         (gcc_gfc_char_table): Likewise.
2575         (scan_char_table): Likewise.
2576         (time_char_table): Likewis.
2577         (monetary_char_table): Likewise.
2578         * c-format.h (BADLEN): Likewise.
2579
2580 2008-06-21  Ian Lance Taylor  <iant@google.com>
2581
2582         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
2583         Define END_OF_BASE_TREE_CODES around inclusion.
2584         * tree.c (tree_code_type): New global array.
2585         (tree_code_length, tree_code_name): Likewise.
2586         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
2587         $(lang_tree_files).
2588         (all-tree.def, s-alltree): New targets.
2589         (gencheck.h, s-gencheck): Remove.
2590         (tree.o): Depend upon all-tree.def.
2591         (build/gencheck.o): Remove gencheck.h dependency.
2592         (mostlyclean): Don't remove gencheck.h.
2593         * c-common.h (enum c_tree_code): Remove.
2594         * c-lang.c (tree_code_type): Remove.
2595         (tree_code_length, tree_code_name): Remove.
2596         * gencheck.c (tree_codes): Include all-tree.def, rather than
2597         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
2598         after it is used.
2599         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
2600         than tree.def.
2601         * cp/cp-tree.h (enum cplus_tree_code): Remove.
2602         (operator_name_info): Size to MAX_TREE_CODES.
2603         (assignment_operator_name_info): Likewise.
2604         * cp/cp-lang.c (tree_code_type): Remove.
2605         (tree_code_length, tree_code_name): Remove.
2606         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
2607         (assignment_operator_name_info): Likewise.
2608         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
2609         MAX_TREE_CODES.
2610         * cp/mangle.c (write_expression): Likewise.
2611         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
2612         * fortran/f95-lang.c (tree_code_type): Remove.
2613         (tree_code_length, tree_code_name): Remove.
2614         * java/java-tree.h (enum java_tree_code): Remove.
2615         * java/lang.c (tree_code_type): Remove.
2616         (tree_code_length, tree_code_name): Remove.
2617         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
2618         * objc/objc-act.h (enum objc_tree_code): Remove.
2619         * objc/objc-lang.c (tree_code_type): Remove.
2620         (tree_code_length, tree_code_name): Remove.
2621         * objcp/objcp-lang.c (tree_code_type): Remove.
2622         (tree_code_length, tree_code_name): Remove.
2623         * ada/ada-tree.h (enum gnat_tree_code): Remove.
2624         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
2625         * ada/misc.c (tree_code_type): Remove.
2626         (tree_code_length, tree_code_name): Remove.
2627
2628 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2629
2630         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
2631         the grand_bitmap_obstack.
2632
2633 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2634
2635         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
2636         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
2637         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
2638         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
2639         move_stmt_r, new_label_mapper): Likewise.
2640         * tree-complex.c (cvc_lookup): Likewise.
2641         * tree-dfa.c (create_function_ann): Likewise.
2642         * tree-dump.c (dump_register): Likewise.
2643         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
2644         find_phi_replacement_condition): Likewise.
2645         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
2646         tree_function_versioning): Likewise.
2647         * tree-into-ssa.c (cmp_dfsnum): Likewise.
2648         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
2649         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
2650         get_nonlocal_debug_decl, convert_nonlocal_reference,
2651         convert_nonlocal_omp_clauses, get_local_debug_decl,
2652         convert_local_reference, convert_local_omp_clauses,
2653         convert_nl_goto_reference, convert_nl_goto_receiver,
2654         convert_tramp_reference, convert_call_expr): Likewise.
2655         * tree-outof-ssa.c (contains_tree_r): Likewise.
2656         * tree-parloops.c (reduction_phi, initialize_reductions,
2657         eliminate_local_variables_1, add_field_for_reduction,
2658         add_field_for_name, create_phi_for_local_result,
2659         create_call_for_reduction_1, create_loads_for_reductions,
2660         create_stores_for_reduction, create_loads_and_stores_for_name):
2661         Likewise.
2662         * tree-phinodes.c (allocate_phi_node): Likewise.
2663         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2664         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2665         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2666         * tree-ssa-coalesce.c (compare_pairs): Likewise.
2667         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2668         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2669         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2670         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
2671         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2672         vn_nary_op_insert): Likewise.
2673         * tree-ssa.c (redirect_edge_var_map_add,
2674         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2675         * tree-vectorizer.c (vectorize_loops): Likewise.
2676         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2677         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2678         tree_cons_stat, build1_stat, build_variant_type_copy,
2679         decl_init_priority_lookup, decl_fini_priority_lookup,
2680         decl_priority_info, decl_restrict_base_lookup,
2681         decl_restrict_base_insert, decl_debug_expr_lookup,
2682         decl_debug_expr_insert, decl_value_expr_lookup,
2683         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2684         type_hash_add, get_file_function_name, tree_check_failed,
2685         tree_not_check_failed, tree_range_check_failed,
2686         omp_clause_range_check_failed, build_omp_clause,
2687         build_vl_exp_stat): Likewise.
2688         * value-prof.c (gimple_histogram_value,
2689         gimple_duplicate_stmt_histograms): Likewise.
2690         * var-tracking.c (attrs_list_insert, attrs_list_copy,
2691         unshare_variable, variable_union_info_cmp_pos, variable_union,
2692         dataflow_set_different_1, dataflow_set_different_2,
2693         vt_find_locations, variable_was_changed, set_variable_part,
2694         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2695         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2696         section_entry_hash, object_block_entry_eq,
2697         object_block_entry_hash, create_block_symbol,
2698         initialize_cold_section_name, default_function_rodata_section,
2699         strip_reg_name, set_user_assembler_name, const_desc_eq,
2700         build_constant_desc, output_constant_def, lookup_constant_def,
2701         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2702         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2703         default_internal_label): Likewise.
2704         * varray.c (varray_init, varray_grow): Likewise.
2705         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2706
2707 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
2708
2709         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2710         operators for "test" insn.  Macroize insn using SWI mode macro.
2711         (*jcc_fused_2): Ditto.
2712         (*jcc_fused_3): Macroize insn using SWI mode macro.
2713         (*jcc_fused_4): Ditto.
2714
2715 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
2716
2717         * tree-ssa-pre.c: Fix typo in comment.
2718         (init_antic, fini_antic): Add explicit funtions for
2719         initializing and deinitializing ANTIC and AVAIL sets.
2720         (create_expression_by_pieces): Fix typo in comment.
2721         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2722         (execute_pre): Eventually dump details about ANTIC_IN.
2723
2724 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2725
2726         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2727         * gcc.c (translate_options, init_spec, store_arg, read_specs,
2728         add_to_obstack, file_at_path, find_a_file, execute,
2729         add_preprocessor_option, add_assembler_option, add_linker_option,
2730         process_command, insert_wrapper, do_option_spec, do_self_spec,
2731         spec_path, do_spec_1, is_directory, main, used_arg,
2732         getenv_spec_function): Likewise.
2733         * tlink.c (symbol_hash_lookup, file_hash_lookup,
2734         demangled_hash_lookup, symbol_push, file_push, frob_extension):
2735         Likewise.
2736
2737 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2738
2739         * doc/rtl.texi: Updated subreg section.
2740
2741 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2742
2743         PR c++/36523
2744         * cgraphunit.c (cgraph_process_new_functions): Don't clear
2745         node->needed and node->reachable.
2746         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2747         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2748         (expand_task_call): Don't call expand_task_copyfn.
2749         (expand_task_copyfn): Renamed to...
2750         (finalize_task_copyfn): ... this.
2751
2752 2008-06-19  Jan Hubicka  <jh@suse.cz>
2753
2754         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2755         clobbering framepointer.
2756
2757 2008-06-19  Jan Hubicka  <jh@suse.cz>
2758
2759         * tree-optimize.c (execute_early_local_optimizations): Set
2760         cgraph_state only at first invocation.
2761
2762 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2763
2764         * system.h (-Wc++-compat): Activate as a warning, no an error.
2765
2766 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2767
2768         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2769         instead of "#" in insn asm template.
2770         (*jcc_fused_2): Ditto.
2771
2772 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2773
2774         * config/i386/i386.h (ix86_tune_indices)
2775         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2776         (TARGET_FUSE_CMP_AND_BRANCH): New define.
2777         * config/i386/i386.md (*jcc_fused_1): New insn pattern
2778         (*jcc_fused_2): Ditto.
2779         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2780         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2781         (print operand): Handle 'E' and 'e' code.
2782
2783 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
2784
2785         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2786         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2787         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2788
2789 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
2790
2791         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2792         node->decl.
2793         (cgraph_expand_function): Use local copy of decl.
2794         (cgraph_expand_all_functions): Remove redundant initialization of
2795         order_pos.
2796         (cgraph_optimize): Reword internal_error message.
2797
2798 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
2799
2800         * arm-protos.h (arm_return_in_memory): Remove public
2801         arm_return_in_memory() prototype.
2802         * arm.c (arm_return_in_memory): Add static prototype, add target
2803         hook macro, change definition and comments.
2804         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2805
2806 2008-06-19  Ben Elliston  <bje@au.ibm.com>
2807
2808         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2809         real.c: Remove references to IEEE 754R.
2810         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2811         * doc/libgcc.texi (Decimal float library routines): Likewise.
2812
2813 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2814
2815         * targhooks.h (struct gcc_target): New member unwind_word_mode.
2816         (default_unwind_word_mode): Add prototype.
2817         * targhooks.c (default_unwind_word_mode): New function.
2818         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2819         instead of word_mode.
2820         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2821         (TARGET_INITIALIZER): Use it.
2822
2823         * c-common.c (handle_mode_attribute): Support "unwind_word"
2824         mode attribute.
2825         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2826
2827         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2828         word_mode to access SjLj_Function_Context member "data".
2829         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
2830         conversion from targetm.eh_return_filter_mode () to
2831         targetm.unwind_word_mode () if they differ.
2832
2833         * builtin-types.def (BT_UNWINDWORD): New primitive type.
2834         (BT_FN_UNWINDWORD_PTR): New function type.
2835         (BT_FN_WORD_PTR): Remove.
2836         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2837         * except.c (expand_builtin_extend_pointer): Convert pointer to
2838         targetm.unwind_word_mode () instead of word_mode.
2839
2840         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2841         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2842         (spu_unwind_word_mode): New function.
2843         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2844         (TARGET_UNWIND_WORD_MODE): Define.
2845         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2846
2847 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2848
2849         * config/spu/spu.c (reg_align): Remove.
2850         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2851         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2852         (spu_split_store): Likewise.
2853
2854 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
2855
2856         * gcc/tree-vn.c: Fix typo in comment.
2857
2858 2008-06-18  Jan Hubicka  <jh@suse.cz>
2859
2860         * cgraphunit.c (cgraph_optimize): Output debug info when doing
2861         toplevel reorder too.
2862
2863 2008-06-18  Jan Hubicka  <jh@suse.cz>
2864
2865         * c-opts.c (c_common_post_options): PCH is not compatible with
2866         no-unit-at-a-time.
2867         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2868         -fno-toplevel-reorder by default now.
2869
2870 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2871
2872         PR documentation/30739
2873         * doc/install.texi (Prerequisites): Document dependency on awk.
2874
2875 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
2876             Ian Lance Taylor  <iant@google.com>
2877
2878         PR rtl-optimization/35604
2879         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2880         only want to change jump destinations, not eventual label comparisons.
2881
2882 2008-06-16  Jan Hubicka  <jh@suse.cz>
2883
2884         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2885         syntax errors.
2886         (cgraph_analyze_function): Likewise.
2887
2888 2008-06-16  Jan Hubicka  <jh@suse.cz>
2889
2890         * cgraph.h (cgraph_mark_if_needed): New function.
2891         * cgraphunit.c (cgraph_mark_if_needed): New function.
2892         * c-decl.c (duplicate_decl): Use it.
2893
2894 2008-06-16  Jan Hubicka  <jh@suse.cz>
2895
2896         * cgraph.c (cgraph_add_new_function): When in expansion state, do
2897         lowering.
2898
2899 2008-06-16  Jan Hubicka  <jh@suse.cz>
2900
2901         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2902
2903 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
2904             Kazu Hirata  <kazu@codesourcery.com>
2905             Maxim Kuvyrkov  <maxim@codesourcery.com
2906
2907         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2908         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2909         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2910         EXTRA_SPEC_FUNCTIONS.
2911         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2912         (DRIVER_SELF_SPECS): Adjust.
2913         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2914         * config/mips/st.h, config/mips/t-st: New.
2915         * config/mips/driver-native.c, config/mips/x-native: New.
2916         * doc/invoke.texi (MIPS): Document 'native' value for -march and
2917         -mtune options.
2918
2919 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2920
2921         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2922         from it.
2923         (ISA_HAS_FP_CONDMOVE): New macro.
2924         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2925         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2926         (ISA_HAS_NMADD3_NMSUB3): New macro.
2927         * config/mips/mips.c (mips_rtx_costs): Update.
2928         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2929         compiling for ST Loongson 2E/2F.
2930         (madd<mode>): Rename to madd4<mode>.  Update.
2931         (madd3<mode>): New pattern.
2932         (msub<mode>): Rename to msub4<mode>.  Update.
2933         (msub3<mode>): New pattern.
2934         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
2935         (nmadd3<mode>): New pattern.
2936         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
2937         (nmadd3<mode>_fastmath): New pattern.
2938         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
2939         (nmsub3<mode>): New pattern.
2940         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
2941         (nmsub3<mode>_fastmath): New pattern.
2942         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2943
2944 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
2945
2946         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2947         (DF_REF_INSN_INFO): New.
2948         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2949         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2950         with a NULL DF_REF_INSN_INFO.
2951         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2952         DF_INSN_SET.
2953         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2954         DF_INSN_INFO_EQ_USES): New.
2955         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2956         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2957         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2958         * df-core.c: Update comment for above changes.
2959         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2960         DF_INSN_UID_* macros.
2961         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2962         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2963         insn rtx.  Update all callers.
2964         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2965         df_ref_create_structure, df_insn_refs_collect): Likewise.
2966         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2967         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2968         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2969         macros to access the insn refs.
2970         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2971         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2972         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2973         for accessing the refs.
2974         (try_fwprop_subst): Likewise.
2975         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2976         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2977         for accessing the refs.
2978         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2979         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2980         to look at the insn refs.
2981         (record_uses): Likewise.
2982         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2983         function anymore.
2984         (mark_artificial_uses): Don't mark_insn for artificial refs.
2985         (mark_reg_rependencies): Likewise.
2986
2987         * doc/rtl.texi: Remove documentation of ADDRESSOF.
2988
2989 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2990
2991         * configure: Regenerate.
2992
2993 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2994
2995         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2996         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2997         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2998
2999 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3000
3001         * config/avr/avr.c (avr_mcu_t): Add attiny167.
3002         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3003         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3004
3005 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3006
3007         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
3008         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3009         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3010
3011 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3012
3013         * tree-ssa-sccvn.c: Fix format of comments.
3014
3015 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
3016
3017         * cgraph.c: Remove unneeded forward declarations of eq_node()
3018         and hash_node().
3019
3020 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
3021
3022         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
3023         REG_RETVAL notes.
3024         (see_update_relevancy): Likewise.
3025         * fwprop.c (try_fwprop_subst): Likewise.
3026         * rtlanal.c (noop_move_p): Likewise.
3027         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
3028         notes to non-existing libcall blocks.
3029         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
3030         Remove orig_set.
3031         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
3032         (dead_libcall_p): Remove.
3033         (delete_trivially_dead_insns): Don't use it.
3034         * web.c (union_defs): Remove comment about keeping nops.
3035         * gcse.c (hash_scan_insn): Don't take libcall pointers.
3036         (compute_hash_table_work): Don't track libcall notes.
3037         (do_local_cprop): Don't take libcall pointers.  Don't update
3038         libcall notes.
3039         (adjust_libcall_notes): Deleted.
3040         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
3041         ever have existed in the first place).
3042         (replace_store_insn): Don't try to remove libcall notes.
3043         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
3044         (resolve_reg_notes): Don't call them.
3045         (resolve_simple_move): Likewise.
3046         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
3047         Don't remove REG_RETVAL notes.
3048         * emit-rtl.c (try_split): Don't update libcall notes.
3049         (emit_copy_of_insn_after): Dito.
3050         * cselib.c (cselib_current_insn_in_libcall): Remove.
3051         (cselib_process_insn): Don't set/clear it.
3052         (new_elt_loc_list): Don't record it.
3053         (cselib_init): Don't initialize it.
3054         * cselib.c (struct elt_loc_list): Remove in_libcall field.
3055         * loop-invariant.c (find_invariant_insn): Don't look for libcall
3056         notes.
3057         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
3058         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
3059         (init_deps): Don't initialize it.
3060         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
3061         * combine.c (delete_noop_moves): Don't update libcall notes.
3062         (can_combine_p): Remove now pointless #if 0 block.
3063         (try_combine): Remove another obsolete #if 0 block.
3064         (distribute_notes): Don't distribute libcall notes.
3065         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
3066         * dce.c (libcall_dead_p): Remove.
3067         (delete_unmarked_insns): Don't handle libcall blocks.
3068         (preserve_libcall_for_dce): Remove.
3069         (prescan_insns_for_dce): Don't special-case libcall block insns.
3070         * reload1 (reload): Don't handle libcall notes. 
3071         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
3072         documentation.
3073
3074 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3075
3076         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
3077         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3078         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
3079
3080 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
3081
3082         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
3083         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
3084         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3085
3086 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3087
3088         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
3089
3090 2008-06-16  Ira Rosen  <irar@il.ibm.com>
3091
3092         PR tree-optimization/36493
3093         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
3094         the arguments list. Use VECTYPE to create vector pointer.
3095         (vectorizable_store): Fail if accesses through a pointer to vectype
3096         do not alias the original memory reference operands.
3097         Call vect_create_data_ref_ptr without the removed argument.
3098         (vectorizable_load): Likewise.
3099         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
3100         removed argument.
3101
3102 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
3103
3104         PR target/36336
3105         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
3106         reg_equiv_constant.
3107
3108 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
3109
3110         * config/mips/loongson2ef.md: New file.
3111         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
3112         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
3113         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
3114         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
3115         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
3116         and loongson_2f.
3117         (loongson2ef.md): New include.
3118         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
3119         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
3120         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
3121         (loongson_gt_<mode>, loongson_extract_halfword)
3122         (loongson_insert_halfword_0, loongson_insert_halfword_2)
3123         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
3124         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
3125         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
3126         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
3127         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
3128         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
3129         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
3130         (vec_interleave_low<mode>): Define type attribute.
3131         * config/mips/mips.c (mips_ls2): New static variable.
3132         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
3133         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
3134         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
3135         Implement target scheduling hooks.
3136         (mips_multipass_dfa_lookahead): Update to handle tuning for
3137         Loongson 2E/2F.
3138         (mips_sched_init): Initialize data for Loongson scheduling.
3139         (mips_ls2_variable_issue): New static function.
3140         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
3141         Add sanity check.
3142         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
3143         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
3144         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
3145         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
3146         Handle ST Loongson 2E/2F cores.
3147         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
3148
3149 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3150
3151         * omp-low.c (extract_omp_for_data): Fix comment typo.
3152         * c.opt: Fix typo.
3153
3154 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3155
3156         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3157         FIXME note about gcc/config.guess.
3158         * doc/options.texi (Option file format): Remove non-ASCII bytes.
3159         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3160         * doc/cppopts.texi: Likewise.
3161         * doc/extend.texi: Likewise.
3162         * doc/gcc.texi: Likewise.
3163         * doc/gccint.texi: Likewise.
3164         * doc/gcov.texi: Likewise.
3165         * doc/gty.texi: Likewise.
3166         * doc/hostconfig.texi: Likewise.
3167         * doc/install.texi: Likewise.
3168         * doc/invoke.texi: Likewise.
3169         * doc/loop.texi: Likewise.
3170         * doc/makefile.texi: Likewise.
3171         * doc/md.texi: Likewise.
3172         * doc/passes.texi: Likewise.
3173         * doc/tm.texi: Likewise.
3174         * doc/tree-ssa.texi: Likewise.
3175         * doc/trouble.texi: Likewise.
3176
3177 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
3178             Nathan Sidwell  <nathan@codesourcery.com>
3179             Maxim Kuvyrkov  <maxim@codesourcery.com>
3180             Richard Sandiford  <rdsandiford@googlemail.com>
3181         
3182         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3183         * config/mips/mips-protos.h (mips_expand_vector_init): New.
3184         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3185         builtins.
3186         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3187         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3188         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3189         V8QImode cases.
3190         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3191         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3192         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3193         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3194         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3195         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3196         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3197         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3198         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3199         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3200         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3201         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3202         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3203         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3204         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3205         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3206         (mips_builtins): Add Loongson builtins.
3207         (mips_loongson_2ef_bdesc): New.
3208         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3209         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3210         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3211         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3212         New.
3213         (mips_expand_vector_init): New.
3214         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3215         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3216         if appropriate.
3217         * config/mips/mips.md: Add unspec numbers for Loongson
3218         builtins.  Include loongson.md.
3219         (MOVE64): Include Loongson vector modes.
3220         (SPLITF): Include Loongson vector modes.
3221         (HALFMODE): Handle Loongson vector modes.
3222         * config/mips/loongson.md: New.
3223         * config/mips/loongson.h: New.
3224         * config.gcc: Add loongson.h header for mips*-*-* targets.
3225         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3226
3227 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
3228
3229         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3230         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3231         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3232         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3233         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3234         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3235         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3236         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3237         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3238         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3239         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3240         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3241         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3242         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3243         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3244         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3245         Remove use_fixproto=yes.
3246         (ia64*-*-hpux*): Remove comment about using fixproto.
3247         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3248
3249 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3250
3251         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
3252         library rebuilds.
3253         * configure: Regenerate.
3254
3255 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3256
3257         PR middle-end/36520
3258         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
3259         before evaluating it.
3260
3261 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
3262
3263         PR c/36507
3264         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
3265         nested inline functions.
3266         (start_decl, start_function): Don't invert DECL_EXTERNAL
3267         for nested inline functions.
3268
3269 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3270
3271         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
3272         splits that must be made for correctness.
3273
3274 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3275
3276         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
3277         (AVAIL_NON_MIPS16): Likewise.
3278         (mips_builtin_description): Replace target_flags with a predicate.
3279         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
3280         (dspr2_32): New availability predicates.
3281         (MIPS_BUILTIN): New macro.
3282         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
3283         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
3284         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
3285         Replace the TARGET_FLAGS parameters with AVAIL parameters.
3286         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
3287         (mips_dsp_32only_bdesc): Merge into...
3288         (mips_builtins): ...this new array.
3289         (mips_bdesc_map, mips_bdesc_arrays): Delete.
3290         (mips_init_builtins): Update after above changes.
3291         (mips_expand_builtin_1): Merge into...
3292         (mips_expand_builtin): ...here and update after above changes.
3293
3294 2008-06-12  Paul Brook  <paul@codesourcery.com>
3295
3296         * longlong.h (__arm__): Define count_leading_zeros.
3297         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
3298         (clzsi2, clzdi2): New functions.
3299         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
3300         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
3301         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
3302         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
3303         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
3304         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
3305         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
3306         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3307         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
3308         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
3309
3310 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
3311
3312         * config/m68k/m68k.c (m68k_tune_flags): New.
3313         (override_options): Compute m68k_tune_flags.
3314         (MULL_COST, MULW_COST): Update for various variants of CFV2.
3315         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
3316
3317 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3318
3319         PR middle-end/36506
3320         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3321
3322 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3323
3324         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
3325         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
3326
3327 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3328
3329         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
3330         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
3331
3332 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3333
3334         PR middle-end/36506
3335         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
3336         reductions.
3337
3338 2008-06-12  Richard Guenther  <rguenther@suse.de>
3339
3340         PR tree-optimization/36345
3341         * tree-flow.h (struct ptr_info_def): Align escape_mask,
3342         add memory_tag_needed flag.
3343         (may_alias_p): Declare.
3344         * tree-ssa-alias.c (may_alias_p): Export.
3345         (set_initial_properties): Use memory_tag_needed flag.
3346         (update_reference_counts): Likewise.
3347         (reset_alias_info): Reset memory_tag_needed flag.
3348         (create_name_tags): Check memory_tag_needed flag.
3349         (dump_points_to_info_for): Dump it.
3350         * tree-ssa-structalias.c (struct variable_info): Remove
3351         directly_dereferenced flag.
3352         (new_var_info): Do not initialize it.
3353         (process_constraint_1): Do not set it.
3354         (update_alias_info): Set is_dereferenced flag.
3355         (set_uids_in_ptset): Use may_alias_p.
3356         (set_used_smts): Check memory_tag_needed flag.
3357         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
3358         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
3359         memory_tag_needed flag.
3360         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
3361         from broken design.
3362
3363 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
3364
3365         * config/i386/i386.c (ix86_compute_frame_layout): Disable
3366         red zone for w64 abi.
3367         (ix86_expand_prologue): Likewise.
3368         (ix86_force_to_memory): Likewise.
3369         (ix86_free_from_memory): Likewise.
3370
3371 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
3372
3373         PR target/36425
3374         * config/rs6000/rs6000.c (rs6000_override_options): Set
3375         rs6000_isel conditionally to the absence of comand line override.
3376         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3377         Remove duplicate rs6000_isel setting.
3378         * config/rs6000/eabispe.h: Ditto.
3379
3380 2008-06-11  Richard Guenther  <rguenther@suse.de>
3381
3382         * alias.c (get_alias_set): Use the element alias-set for arrays.
3383         (record_component_aliases): For arrays and vectors do nothing.
3384         * c-common.c (strict_aliasing_warning): Handle the cases
3385         of alias set zero explicitly.
3386         * Makefile.in (dfp.o-warn): Add -Wno-error.
3387
3388 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3389
3390         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
3391         tune_32 tune_64.
3392         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
3393         tune_32 tune_64 to supported_defaults.  Allow values not
3394         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
3395         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
3396         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
3397         with_cpu_64 to generic for 64-bit-supporting configurations, not
3398         with_cpu.  Remove FIXMEs.
3399         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
3400         --with-arch-64, --with-tune-32, --with-tune-64): Document.
3401         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
3402         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
3403         arch_32 and arch_64.
3404
3405 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
3406             Olivier Hainque  <hainque@adacore.com>
3407
3408         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
3409         Use DECL_SIZE_UNIT to retrieve the size of the field.
3410
3411 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3412
3413         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
3414         with function calls after declarations.  Lay out
3415         neon_float_type_node before further use.
3416
3417 2008-06-11  Richard Guenther  <rguenther@suse.de>
3418
3419         * tree-flow.h (may_point_to_global_var): Declare.
3420         * tree-ssa-alias.c (may_point_to_global_var): New function.
3421         * tree-ssa-sink.c (is_hidden_global_store): Use it.
3422
3423 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
3424
3425         * configure.ac: Teach that fido supports .debug_line.
3426         * configure: Regenerate.
3427
3428 2008-06-10  Tom Tromey  <tromey@redhat.com>
3429
3430         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
3431         debug hook.
3432
3433 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
3434
3435         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
3436         (encode_decimal64, decode_decimal64, encode_decimal128,
3437         decode_decimal128): Reverse order of 32-bit parts of value if host
3438         and target endianness differ.
3439
3440 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
3441
3442         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
3443         Avoid division by 0.
3444         (tree_mod_pow2_value_transform): Likewise.
3445         (tree_ic_transform): Likewise.
3446         (tree_stringops_transform): Likewise.
3447         (tree_mod_subtract_transform): Likewise.
3448         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
3449         (copy_edges_for_bb): Likewise.
3450         (initialize_cfun): Likewise.
3451
3452 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
3453
3454         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
3455         nonmemory_operand. Add "N" operand constraint.
3456         (*btsi): Ditto.
3457         (*jcc_btdi_mask_rex64): New instruction and split pattern.
3458         (*jcc_btsi_mask): Ditto.
3459         (*jcc_btsi_mask_1): Ditto.
3460
3461 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
3462
3463         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
3464         TYPE_CANONICAL for copied element type.
3465
3466 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
3467
3468         PR target/36473
3469         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
3470         Add m_CORE2 and m_GENERIC.
3471         * config/i386/predicates.md (bt_comparison_operator): New predicate.
3472         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
3473         (*btsi): Ditto.
3474         (*jcc_btdi_rex64): New instruction and split pattern.
3475         (*jcc_btsi): Ditto.
3476         (*jcc_btsi_1): Ditto.
3477         (*btsq): Fix Intel asm dialect operand order.
3478         (*btrq): Ditto.
3479         (*btcq): Ditto.
3480
3481 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3482
3483         PR middle-end/36447
3484         * simplify-rtx.c (simplify_subreg): Add check for shift count 
3485         greater than size.
3486
3487 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
3488
3489         * doc/md.texi: Synchronize with later constraints.md change.
3490         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
3491         with a C implementation.
3492         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
3493         MFLO handling.
3494         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
3495         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
3496         when moving to and from MD_REGNUM.
3497         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
3498         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
3499         Handle byte and halfword moves.
3500         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
3501         separately.
3502         * config/mips/constraints.md (h): Turn into NO_REGS.
3503         (l, x): Update documentation.
3504         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
3505         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
3506         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
3507         (HILO): New mode iterator.
3508         (MOVE128): Add TI.
3509         (any_div): New code iterator.
3510         (u): Extend code attribute to div and udiv.
3511         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
3512         d_operand in the splitters.  Remove redundant CONST_INT checks.
3513         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
3514         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
3515         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
3516         accordingly, using normal moves instead of unspecs to move LO into
3517         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
3518         (<u>mulsidi3): Handle expansion in C code.
3519         (<u>mulsidi3_32bit_internal): Rename to...
3520         (<u>mulsidi3_32bit): ...this.
3521         (<u>mulsidi3_32bit_r4000): Fix insn separator.
3522         (*<u>mulsidi3_64bit): Rename to...
3523         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
3524         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
3525         to set LO and HI to the multiplication result.  Use a normal move
3526         for MFLO and an unspec for MFHI.
3527         (*<u>mulsidi3_64bit_parts): Replace with...
3528         (<u>mulsidi3_64bit_hilo): ...this new instruction.
3529         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
3530         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
3531         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
3532         instead of HI.  Split the instruction into a separate multiplication
3533         and MFHI if !TARGET_FIX_R4000.
3534         (<su>muldi3_highpart): Likewise.
3535         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
3536         and the "=h" clobber.
3537         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
3538         (<u>mulditi3): New expander.
3539         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
3540         (madsi): Remove "=h" clobber.
3541         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
3542         Force the modulus result to be a GPR and split the instruction into
3543         a division followed by an MFHI after reload.
3544         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
3545         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
3546         the MIPS16 HIGH define_split.
3547         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
3548         of acc<->gpr moves to "multi".
3549         (*movdi_64bit): Replace the single "x" alternative with
3550         alternatives for moving into and out of "a".
3551         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
3552         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
3553         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
3554         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
3555         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
3556         (movti): New expander.
3557         (*movti, *movti_mips16): New insns.
3558         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
3559         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
3560         (mthi<GPR:mode>_<HILO:mode>): Likewise.
3561         * config/mips/predicates.md (fpr_operand): Delete.
3562         (d_operand): New predicate.
3563
3564 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
3565
3566         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
3567         failure on some Bourne shells.
3568         (x86_64-*-*): Ditto.
3569
3570 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
3571
3572         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
3573
3574 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3575
3576         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
3577         (sparc-sun-solaris2*): Likewise.
3578
3579 2008-06-09  Arnaud Charlet  <charlet@adacore.com
3580
3581         * doc/install.texi: Update requirements to build the Ada compiler.
3582
3583 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
3584
3585         * df-scan.c (struct df_scan_problem_data): Remove the
3586         mw_link_pool alloc pool.
3587         (df_scan_free_internal): Don't free it.
3588         (df_scan_alloc): Don't allocate it.
3589         * df.h (struct df_link): Update comment.
3590
3591 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
3592
3593         * except.h: Correct checks for when SJLJ exceptions must be used.
3594
3595 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3596
3597         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
3598         default.
3599         
3600 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
3601
3602         PR tree-optimization/36218
3603         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
3604         configure for the build system.
3605         (BUILD_LDFLAGS): Define.
3606         * configure: Regenerate.
3607         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
3608
3609 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
3610
3611         PR target/36424
3612         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
3613         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
3614         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
3615
3616 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
3617
3618         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
3619
3620 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
3621
3622         * config.gcc (Obsolete configurations): Remove list of
3623         configurations.
3624         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
3625         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
3626         targets matched by those patterns.
3627         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
3628         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
3629         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
3630         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
3631         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3632         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3633         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
3634         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
3635         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
3636         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
3637         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
3638         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
3639         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
3640         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
3641         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
3642         Make code for Solaris 7 and greater unconditional for Solaris.
3643         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
3644         Remove --with-* handling.
3645         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
3646         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
3647         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
3648         LINK_OS_WINDISS_SPEC): Remove.
3649         * config/rs6000/sysv4.opt (mwindiss): Remove.
3650         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
3651         * configure: Regenerate.
3652         * doc/cpp.texi: Don't mention BeOS.
3653         * doc/extend.texi (interrupt): Don't mention MS1.
3654         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
3655         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
3656         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
3657         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
3658         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
3659         Remove.
3660         * doc/invoke.texi (MT Options): Remove.
3661         (-mwindiss): Remove.
3662         (CRIS Options): Remove cris-axis-aout references.
3663         (HPPA Options): Don't mention hppa1.1-*-pro.
3664         * doc/md.texi: (MorphoTech family): Remove.
3665         * libgcc2.c: Don't handle UWIN.
3666         * config/alpha/t-unicosmk: Remove.
3667         * config/alpha/unicosmk.h: Remove.
3668         * config/arm/kaos-arm.h: Remove.
3669         * config/arm/kaos-strongarm.h: Remove.
3670         * config/arm/strongarm-coff.h: Remove.
3671         * config/arm/strongarm-elf.h: Remove.
3672         * config/arm/strongarm-pe.h: Remove.
3673         * config/arm/t-strongarm-pe: Remove.
3674         * config/arm/t-xscale-coff: Remove.
3675         * config/arm/t-xscale-elf: Remove.
3676         * config/arm/xscale-coff.h: Remove.
3677         * config/arm/xscale-elf.h: Remove.
3678         * config/chorus.h: Remove.
3679         * config/cris/aout.h: Remove.
3680         * config/cris/aout.opt: Remove.
3681         * config/cris/t-aout: Remove.
3682         * config/i386/beos-elf.h: Remove.
3683         * config/i386/kaos-i386.h: Remove.
3684         * config/i386/ptx4-i.h: Remove.
3685         * config/i386/sco5.h: Remove.
3686         * config/i386/sco5.opt: Remove.
3687         * config/i386/sysv4-cpp.h: Remove.
3688         * config/i386/sysv5.h: Remove.
3689         * config/i386/t-beos: Remove.
3690         * config/i386/t-sco5: Remove.
3691         * config/i386/t-uwin: Remove.
3692         * config/i386/uwin.asm: Remove.
3693         * config/i386/uwin.h: Remove.
3694         * config/kaos.h: Remove.
3695         * config/mips/windiss.h: Remove.
3696         * config/mt: Remove directory.
3697         * config/pa/pa-osf.h: Remove.
3698         * config/pa/pa-pro-end.h: Remove.
3699         * config/pa/t-pro: Remove.
3700         * config/ptx4.h: Remove.
3701         * config/rs6000/beos.h: Remove.
3702         * config/rs6000/kaos-ppc.h: Remove.
3703         * config/rs6000/t-beos: Remove.
3704         * config/rs6000/windiss.h: Remove.
3705         * config/sh/kaos-sh.h: Remove.
3706         * config/sol2-6.h: Remove.
3707         * config/sparc/sol26-sld.h: Remove.
3708         * config/sparc/sysv4-only.h: Remove.
3709         * config/vax/bsd.h: Remove.
3710         * config/vax/t-memfuncs: Remove.
3711         * config/vax/ultrix.h: Remove.
3712         * config/vax/vaxv.h: Remove.
3713         * config/windiss.h: Remove.
3714
3715 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
3716
3717         PR rtl-optimization/36438
3718         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3719         for vector shifts with constant scalar shift operands.
3720
3721 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
3722
3723         * doc/invoke.texi: Document -march=xlr.
3724         * config/mips/xlr.md: New file.
3725         * config/mips/mips.md: Include it.
3726         (cpu): Add "xlr".
3727         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3728         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3729         (mips_rtx_cost_data): Likewise.
3730
3731 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3732
3733         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3734         PRE_INC and PRE_DEC cases.
3735
3736 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3737
3738         PR rtl-optimization/36419
3739         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3740         the emitting jump insn.
3741
3742         PR target/36362
3743         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3744         is not bool, boolify the whole *expr_p and convert to the desired type.
3745
3746 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3747
3748         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3749         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3750         Add omp_private_outer_ref hook, add another argument to
3751         omp_clause_default_ctor hook.
3752         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3753         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3754         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3755         hook_tree_tree_tree_tree_null.
3756         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3757         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3758         * hooks.c (hook_tree_tree_tree_tree_null): New function.
3759         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3760         * tree.def (OMP_TASK): New tree code.
3761         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3762         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3763         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3764         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3765         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3766         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3767         OMP_CLAUSE_COLLAPSE_EXPR): Define.
3768         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3769         (OMP_DIRECTIVE_P): Add OMP_TASK.
3770         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3771         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3772         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3773         and OMP_CLAUSE_UNTIED entries.
3774         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
3775         num_ops to 2.
3776         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3777         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3778         * tree-pretty-print.c (dump_omp_clause): Handle
3779         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3780         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3781         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3782         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
3783         warning about unsigned iterators.  Change decl/init/cond/incr
3784         arguments to TREE_VECs, check arguments for all collapsed loops.
3785         (c_finish_omp_taskwait): New function.
3786         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3787         ws_clauses.
3788         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
3789         default_function_array_conversion on init.  Add par_clauses argument.
3790         If decl is present in parallel's lastprivate clause, change it to
3791         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3792         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
3793         collapse count in clauses.
3794         (c_parser_omp_for, c_parser_omp_parallel): Adjust
3795         c_parser_omp_for_loop callers.
3796         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3797         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3798         (c_parser_omp_clause_name): Handle collapse and untied clauses.
3799         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3800         functions.
3801         (c_parser_omp_clause_schedule): Handle schedule(auto).
3802         Include correct location in the error message.
3803         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3804         and PRAGMA_OMP_CLAUSE_UNTIED.
3805         (OMP_TASK_CLAUSE_MASK): Define.
3806         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3807         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3808         * tree-nested.c (convert_nonlocal_omp_clauses,
3809         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3810         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3811         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3812         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3813         OMP_CLAUSE_DECL.
3814         (conver_nonlocal_reference, convert_local_reference,
3815         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
3816         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
3817         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
3818         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
3819         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
3820         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
3821         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
3822         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
3823         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3824         OMP_CLAUSE_UNTIED.
3825         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
3826         * c-common.h (c_finish_omp_taskwait): New prototype.
3827         * gimple-low.c (lower_stmt): Handle OMP_TASK.
3828         * tree-parloops.c (create_parallel_loop): Create 1 entry
3829         vectors for OMP_FOR_{INIT,COND,INCR}.
3830         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3831         (make_edges): Handle OMP_TASK.
3832         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
3833         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3834         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
3835         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
3836         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
3837         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3838         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3839         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
3840         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
3841         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
3842         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
3843         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
3844         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
3845         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
3846         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
3847         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
3848         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
3849         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
3850         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
3851         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
3852         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
3853         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
3854         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
3855         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
3856         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
3857         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
3858         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
3859         original iterator is present in lastprivate clause or if
3860         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
3861         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3862         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
3863         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
3864         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
3865         if it is set, lookup var in outer contexts too.  Handle
3866         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
3867         to be implicitly determined firstprivate for task regions.
3868         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
3869         if it is set, lookup var in outer contexts too.  Set
3870         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
3871         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
3872         OMP_CLAUSE_UNTIED.  Take region_type as last argument
3873         instead of in_parallel and in_combined_parallel.
3874         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3875         Adjust callers.
3876         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
3877         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
3878         (new_omp_context): Set default_kind to
3879         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
3880         (omp_region_type): New enum.
3881         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
3882         fields, add region_type.
3883         (new_omp_context): Take region_type as argument instead of is_parallel
3884         and is_combined_parallel.
3885         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
3886         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
3887         ctx->is_combined_parallel checks.
3888         (gimplify_omp_task): New function.
3889         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3890         OMP_CLAUSE_UNTIED.
3891         * omp-low.c (extract_omp_for_data): Use schedule(static)
3892         for schedule(auto).  Handle pointer and unsigned iterators.
3893         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
3894         Add loops argument.  Extract data for collapsed OMP_FOR loops.
3895         (expand_parallel_call): Assert sched_kind isn't auto,
3896         map runtime schedule to index 3.
3897         (struct omp_for_data_loop): New type.
3898         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
3899         Add loop, loops, collapse and iter_type fields.
3900         (workshare_safe_to_combine_p): Disallow combined for if
3901         iter_type is unsigned long long.  Don't combine collapse > 1 loops
3902         unless all bounds and steps are constant.  Adjust extract_omp_for_data
3903         caller.
3904         (expand_omp_for_generic): Handle pointer, unsigned and long long
3905         iterators.  Handle collapsed OMP_FOR loops.  Adjust
3906         for struct omp_for_data changes.  If libgomp function doesn't return
3907         boolean_type_node, add comparison of the return value with 0.
3908         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
3909         pointer, unsigned and long long iterators.  Adjust for struct
3910         omp_for_data changes.
3911         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
3912         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
3913         unsigned long long.  Allocate loops array, pass it to
3914         extract_omp_for_data.  For collapse > 1 loops use always
3915         expand_omp_for_generic.
3916         (omp_context): Add sfield_map and srecord_type fields.
3917         (is_task_ctx, lookup_sfield): New functions.
3918         (use_pointer_for_field): Use is_task_ctx helper.  Change first
3919         argument's type from const_tree to tree.  Clarify comment.
3920         In OMP_TASK disallow copy-in/out sharing.
3921         (build_sender_ref): Call lookup_sfield instead of lookup_field.
3922         (install_var_field): Add mask argument.  Populate both record_type
3923         and srecord_type if needed.
3924         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
3925         in srecord_type.
3926         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
3927         and DECL_FIELD_OFFSET.
3928         (scan_sharing_clauses): Adjust install_var_field callers.  For
3929         firstprivate clauses on explicit tasks allocate the var by value in
3930         record_type unconditionally, rather than by reference.
3931         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
3932         Use is_taskreg_ctx instead of is_parallel_ctx.
3933         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3934         (create_omp_child_function_name): Add task_copy argument, use
3935         *_omp_cpyfn* names if it is true.
3936         (create_omp_child_function): Add task_copy argument, if true create
3937         *_omp_cpyfn* helper function.
3938         (scan_omp_parallel): Adjust create_omp_child_function callers.
3939         Rename parallel_nesting_level to taskreg_nesting_level.
3940         (scan_omp_task): New function.
3941         (lower_rec_input_clauses): Don't run constructors for firstprivate
3942         explicit task vars which are initialized by *_omp_cpyfn*.  
3943         Pass outer var ref to omp_clause_default_ctor hook if
3944         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
3945         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
3946         OMP_CLAUSE_REDUCTION_INIT.
3947         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
3948         avoid duplicate setting of fields.  Handle
3949         OMP_CLAUSE_PRIVATE_OUTER_REF.
3950         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
3951         copy-out if TREE_READONLY, only copy-in.
3952         (expand_task_copyfn): New function.
3953         (expand_task_call): New function.
3954         (struct omp_taskcopy_context): New type.
3955         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
3956         New functions.
3957         (lower_omp_parallel): Rename to...
3958         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3959         Call create_task_copyfn if srecord_type is needed.  Adjust
3960         sender_decl type.
3961         (task_shared_vars): New variable.
3962         (check_omp_nesting_restrictions): Warn if work-sharing,
3963         barrier, master or ordered region is closely nested inside OMP_TASK.
3964         Add warnings for barrier if closely nested inside of work-sharing,
3965         ordered, or master region.
3966         (scan_omp_1): Call check_omp_nesting_restrictions even for
3967         GOMP_barrier calls.  Rename parallel_nesting_level to
3968         taskreg_nesting_level.  Handle OMP_TASK.
3969         (lower_lastprivate_clauses): Even if some lastprivate is found on a
3970         work-sharing construct, continue looking for them on parent parallel
3971         construct.
3972         (lower_omp_for_lastprivate): Add lastprivate clauses
3973         to the beginning of dlist rather than end.  Adjust for struct
3974         omp_for_data changes.
3975         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
3976         not after it.  Handle collapsed OMP_FOR loops, adjust for
3977         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
3978         (get_ws_args_for): Adjust extract_omp_for_data caller.
3979         (scan_omp_for): Handle collapsed OMP_FOR
3980         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3981         (lower_omp_single_simple): If libgomp function doesn't return
3982         boolean_type_node, add comparison of the return value with 0.
3983         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
3984         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
3985         (parallel_nesting_level): Rename to...
3986         (taskreg_nesting_level): ... this.
3987         (is_taskreg_ctx): New function.
3988         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
3989         of is_parallel_ctx.
3990         (execute_lower_omp): Rename parallel_nesting_level to
3991         taskreg_nesting_level.
3992         (expand_omp_parallel): Rename to...
3993         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3994         Call omp_task_call for OMP_TASK regions.
3995         (expand_omp): Adjust caller, handle OMP_TASK.
3996         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
3997
3998         * bitmap.c (bitmap_default_obstack_depth): New variable.
3999         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
4000         if argument is NULL and bitmap_default_obstack is already initialized.
4001         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
4002         at the end.
4003         * matrix-reorg.c (matrix_reorg): Likewise.
4004
4005 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
4006
4007         * config/i386/i386.md (*indirect_jump): Macroize using P
4008         mode iterator.  Remove !TARGET_64BIT from insn constraints.
4009         (*tablejump_1): Ditto.
4010         (*indirect_jump_rex64): Remove insn pattern.
4011         (*tablejump_1_rex64): Ditto.
4012         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
4013         and eh_return_si insn patterns.
4014
4015 2008-06-06  Richard Guenther  <rguenther@suse.de>
4016
4017         * tree-ssa-structalias.c (merge_smts_into): Remove.
4018         (find_what_p_points_to): Do not bother to compute the
4019         points-to set for pt_anything pointers.
4020         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
4021         for pt_anything pointers is ok.
4022
4023 2008-06-06  Jan Hubicka  <jh@suse.cz>
4024
4025         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
4026
4027 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4028
4029         * cgraph.c: Fix typos in comments.
4030         (cgraph_availability_names): Fix string typo.
4031         * fold-const.c: Fix typos in comments.
4032         (fold_binary): Fix typo in warning.
4033         * genautomata.c: Fix typos in comments.
4034         (check_presence_pattern_sets): Fix typo in local variable.
4035         (output_description): Fix typo in output.
4036         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
4037         * hwint.h: Likewise.
4038         * matrix-reorg.c (check_allocation_function): Likewise.
4039         * omega.c (smooth_weird_equations): Likewise.
4040         * auto-inc-dec.c: Fix typos in comments.
4041         * bb-reorder.c: Likewise.
4042         * builtins.c: Likewise.
4043         * c-common.c: Likewise.
4044         * c-cppbuiltin.c: Likewise.
4045         * c-parser.c: Likewise.
4046         * c-pretty-print.c: Likewise.
4047         * cfgcleanup.c: Likewise.
4048         * cfgexpand.c: Likewise.
4049         * cfghooks.c: Likewise.
4050         * cfglayout.c: Likewise.
4051         * cfgloopmanip.c: Likewise.
4052         * cgraphunit.c: Likewise.
4053         * coverage.c: Likewise.
4054         * dbxout.c: Likewise.
4055         * df-byte-scan.c: Likewise.
4056         * df-core.c: Likewise.
4057         * df-problems.c: Likewise.
4058         * df-scan.c: Likewise.
4059         * dfp.c: Likewise.
4060         * dominance.c: Likewise.
4061         * domwalk.c: Likewise.
4062         * dse.c: Likewise.
4063         * dwarf2out.c: Likewise.
4064         * emit-rtl.c: Likewise.
4065         * et-forest.c: Likewise.
4066         * function.c: Likewise.
4067         * function.h: Likewise.
4068         * gcc.c: Likewise.
4069         * gcov-io.c: Likewise.
4070         * gcov.c: Likewise.
4071         * gcse.c: Likewise.
4072         * genattrtab.c: Likewise.
4073         * ggc-page.c: Likewise.
4074         * gimplify.c: Likewise.
4075         * gthr-lynx.h: Likewise.
4076         * haifa-sched.c: Likewise.
4077         * ipa-cp.c: Likewise.
4078         * ipa-inline.c: Likewise.
4079         * ipa-prop.h: Likewise.
4080         * ipa-pure-const.c: Likewise.
4081         * ipa-struct-reorg.c: Likewise.
4082         * ipa-struct-reorg.h: Likewise.
4083         * ipa-type-escape.c: Likewise.
4084         * ipa.c: Likewise.
4085         * loop-doloop.c: Likewise.
4086         * mips-tfile.c: Likewise.
4087         * mkmap-flat.awk: Likewise.
4088         * mkmap-symver.awk: Likewise.
4089         * modulo-sched.c: Likewise.
4090         * omp-low.c: Likewise.
4091         * optabs.c: Likewise.
4092         * optabs.h: Likewise.
4093         * opts.c: Likewise.
4094         * passes.c: Likewise.
4095         * postreload-gcse.c: Likewise.
4096         * postreload.c: Likewise.
4097         * predict.c: Likewise.
4098         * pretty-print.h: Likewise.
4099         * profile.c: Likewise.
4100         * protoize.c: Likewise.
4101         * ra-conflict.c: Likewise.
4102         * real.c: Likewise.
4103         * recog.c: Likewise.
4104         * regclass.c: Likewise.
4105         * regs.h: Likewise.
4106         * reload.c: Likewise.
4107         * rtl-error.c: Likewise.
4108         * rtlanal.c: Likewise.
4109         * scan.h: Likewise.
4110         * sched-rgn.c: Likewise.
4111         * see.c: Likewise.
4112         * stmt.c: Likewise.
4113         * target.h: Likewise.
4114         * tree-dfa.c: Likewise.
4115         * tree-eh.c: Likewise.
4116         * tree-flow-inline.h: Likewise.
4117         * tree-inline.c: Likewise.
4118         * tree-into-ssa.c: Likewise.
4119         * tree-loop-distribution.c: Likewise.
4120         * tree-nested.c: Likewise.
4121         * tree-parloops.c: Likewise.
4122         * tree-pass.h: Likewise.
4123         * tree-pretty-print.c: Likewise.
4124         * tree-profile.c: Likewise.
4125         * tree-scalar-evolution.c: Likewise.
4126         * tree-sra.c: Likewise.
4127         * tree-ssa-alias-warnings.c: Likewise.
4128         * tree-ssa-ccp.c: Likewise.
4129         * tree-ssa-coalesce.c: Likewise.
4130         * tree-ssa-dom.c: Likewise.
4131         * tree-ssa-dse.c: Likewise.
4132         * tree-ssa-forwprop.c: Likewise.
4133         * tree-ssa-live.c: Likewise.
4134         * tree-ssa-live.h: Likewise.
4135         * tree-ssa-loop-im.c: Likewise.
4136         * tree-ssa-loop-ivopts.c: Likewise.
4137         * tree-ssa-loop-niter.c: Likewise.
4138         * tree-ssa-loop-prefetch.c: Likewise.
4139         * tree-ssa-phiopt.c: Likewise.
4140         * tree-ssa-phiprop.c: Likewise.
4141         * tree-ssa-sccvn.c: Likewise.
4142         * tree-ssa-ter.c: Likewise.
4143         * tree-ssa-threadupdate.c: Likewise.
4144         * tree-ssa.c: Likewise.
4145         * tree-vect-analyze.c: Likewise.
4146         * tree-vect-transform.c: Likewise.
4147         * tree-vectorizer.c: Likewise.
4148         * tree-vn.c: Likewise.
4149         * tree-vrp.c: Likewise.
4150         * tree.c: Likewise.
4151         * tree.def: Likewise.
4152         * tree.h: Likewise.
4153         * unwind-dw2-fde.c: Likewise.
4154         * unwind.inc: Likewise.
4155         * value-prof.c: Likewise.
4156         * vmsdbgout.c: Likewise.
4157
4158 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
4159
4160         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
4161         always place FP constants in the TOC for TARGET_POWERPC64.
4162         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
4163
4164 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
4165
4166         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
4167         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
4168         enable for TARGET_E500_DOUBLE.
4169         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
4170         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
4171         floating-point modes like integer modes for E500 double.
4172         (rs6000_legitimate_offset_address_p): Likewise.
4173         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
4174         addressing for DDmode for E500 double.
4175         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
4176         modes as using 64-bits of registers for E500 double.
4177         (spe_build_register_parallel): Do not handle DDmode or TDmode.
4178         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
4179         specially for E500 double.
4180         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
4181         TDmode for E500 double.
4182         (rs6000_gimplify_va_arg): Only handle SDmode in registers
4183         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
4184         (rs6000_split_multireg_move): Do not handle TDmode specially for
4185         E500 double.
4186         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
4187         using 64-bit registers for E500 double.
4188         (emit_frame_save): Do not handle DDmode specially for E500 double.
4189         (gen_frame_mem_offset): Likewise.
4190         (rs6000_function_value): Do not call spe_build_register_parallel
4191         for DDmode or TDmode.
4192         (rs6000_libcall_value): Likewise.
4193         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
4194         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
4195         for E500 double.
4196
4197 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
4198
4199         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
4200         in comments.
4201
4202 2008-06-04  Junjie Gu <jgu@tensilica.com>
4203
4204         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
4205         comparison for frame pointers.
4206
4207 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4208
4209         PR target/27386
4210         * config/avr/avr.h (PUSH_ROUNDING): Remove.
4211
4212 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
4213
4214         PR target/30243
4215         * builtins.c (expand_builtin_signbit): Don't take lowpart when
4216         register is already smaller or equal to required mode. 
4217
4218 2008-06-04  Xinliang David Li  <davidxl@google.com>
4219
4220         * tree-call-cdce.c: New file. 
4221         (cond_dead_built_in_calls): New static variable.
4222         (input_domain): New struct.
4223         (check_pow): New function.
4224         (check_builtin_call): Ditto.
4225         (check_target_format): Ditto.
4226         (is_call_dce_candidate): Ditto.
4227         (gen_one_condition): Ditto.
4228         (gen_conditions_for_domain): Ditto.
4229         (get_domain): Ditto.
4230         (gen_conditions_for_pow_cst_base): Ditto.
4231         (gen_conditions_for_pow_int_base): Ditto.
4232         (gen_conditions_for_pow): Ditto.
4233         (get_no_error_domain): Ditto.
4234         (gen_shrink_wrap_conditions): Ditto.
4235         (shrink_wrap_one_built_in_call): Ditto.
4236         (shink_wrap_conditional_dead_built_in_calls): Ditto.
4237         (tree_call_cdce): Ditto.
4238         (gate_call_cdce): Ditto.
4239         (pass_call_cdce): New gimple pass.
4240         * passes.c: (init_optimization_passes): New pass.
4241         * tree-pass.h: New pass declaration.
4242         * opts.c (decode_options): New flag setting.
4243         * common.opt: Add -ftree-builtin-call-dce flag.
4244         * Makefile.in: Add new source file.
4245         * tempvar.def: New tv_id.
4246         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
4247
4248 2008-06-04  Richard Guenther  <rguenther@suse.de>
4249
4250         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
4251         (is_call_clobbered): Always check var_ann->call_clobbered.
4252         (mark_call_clobbered): Always set var_ann->call_clobbered.
4253         (clear_call_clobbered): Always clear var_ann->call_clobbered.
4254         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
4255         (reset_alias_info): Clear call clobbering info on MTAGs and
4256         globals as well.
4257         (set_pt_anything): Set pt_global_mem.
4258         (create_tag_raw): Adjust comment.
4259         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
4260
4261 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
4262             Maxim Kuvyrkov  <maxim@codesourcery.com>
4263
4264         * config/m68k/m68k.opt (mxgot): New option.
4265         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
4266         (m68k_output_addr_const_extra): New.
4267         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
4268         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
4269         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
4270         * doc/invoke.texi (M680x0 Options): Document -mxgot.
4271
4272 2008-06-04  Richard Guenther  <rguenther@suse.de>
4273
4274         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
4275         negative or non-representable offsets.
4276
4277 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
4278
4279         * config/i386/i386.c (ix86_gen_leave): New.
4280         (ix86_gen_pop1): Likewise.
4281         (ix86_gen_add3): Likewise.
4282         (ix86_gen_sub3): Likewise.
4283         (ix86_gen_sub3_carry): Likewise.
4284         (ix86_gen_one_cmpl2): Likewise.
4285         (ix86_gen_monitor): Likewise.
4286         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
4287         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
4288         ix86_gen_one_cmpl2 and ix86_gen_monitor.
4289         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
4290         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
4291         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
4292         (ix86_expand_epilogue): Updated.
4293         (print_operand): Handle integer register operand for 'z'.
4294         (ix86_expand_strlensi_unroll_1): Likewise.
4295         (ix86_expand_strlen): Likewise.
4296         (ix86_expand_builtin): Likewise.
4297         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
4298         mov{q}/mov{l} and add{q}/add{l}.
4299
4300 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4301
4302         * config/i386/i386.md (P): New mode iterator.
4303         (SFmode push_operand splitter): Macroize DImode and SImode pushes
4304         using P mode iterator.
4305         (DFmode push_operand splitter): Ditto.
4306         (XFmode push_operand splitter): Ditto.
4307         (DFmode float_extend SFmode push_operand splitter): Ditto.
4308         (XFmode float_extend SFmode push_operand splitter): Do not generate
4309         SImode pushes for 64bit target.  Macroize Dimode and SImode
4310         pushes using P mode iterator.
4311         (XFmode float_extend DFmode push_operand splitter): Ditto.
4312
4313 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4314
4315         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
4316         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
4317         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
4318         return type to int.
4319         (ix86_call_abi_override): Remove check for call_used_regs.
4320
4321 2008-06-03  Richard Guenther  <rguenther@suse.de>
4322
4323         * tree-ssa-structalias.c (find_func_aliases): Add constraints
4324         for the lhs of calls if the return type contains pointers.
4325
4326 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
4327
4328         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
4329         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
4330         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
4331         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
4332         of cfun and DEFAULT_ABI to deceide abi mode.
4333         (DEFAULT_ABI): New.
4334         (REG_PARM_STACK_SPACE): Removed.
4335         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
4336         (STACK_BOUNDARY): Use default target to deceide stack boundary.
4337         * config/i386/i386-protos.h (ix86_cfun_abi): New.
4338         (ix86_function_abi): Likewise.
4339         (ix86_function_type_abi): Likewise.
4340         (ix86_call_abi_override): Likewise.
4341         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
4342         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
4343         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
4344         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
4345         specific defines.
4346         (X86_64_REGPARM_MAX): New.
4347         (X86_64_SSE_REGPARM_MAX): New.
4348         (X64_REGPARM_MAX): New.
4349         (X64_SSE_REGPARM_MAX): New.
4350         (X86_32_REGPARM_MAX): New.
4351         (X86_32_SSE_REGPARM_MAX): New.
4352         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
4353         (ix86_function_regparm): Handle user calling abi.
4354         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
4355         by DEFAULT_ABI versus SYSV_ABI check.
4356         (ix86_reg_parm_stack_space): New.
4357         (ix86_function_type_abi): New.
4358         (ix86_call_abi_override): New.
4359         (ix86_function_abi): New.
4360         (ix86_cfun_abi): New.
4361         (init_cumulative_args): Call abi specific initialization.
4362         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
4363         (function_arg_64): Extend SSE_REGPARM_MAX check.
4364         (function_arg (): Remove TARGET_64BIT_MS_ABI.
4365         (ix86_pass_by_reference): Likewise.
4366         (ix86_function_value_regno_p): Likewise.
4367         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
4368         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
4369         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
4370         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
4371         (setup_incoming_varargs_64): Adjust regparm for call abi.
4372         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
4373         (ix86_va_start): Likewise.
4374         (ix86_gimplify_va_arg): Likewise.
4375         (ix86_expand_prologue): Likewise.
4376         (output_pic_addr_const): Likewise.
4377         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
4378         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
4379         (x86_output_mi_thunk): Likewise.
4380         (x86_function_profiler): Likewise.
4381         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
4382         (SYSV_ABI, MS_ABI): New constants.
4383         (DEFAULT_ABI): New.
4384         (init_regs): Add prototype of function in regclass.c file.
4385         (OVERRIDE_ABI_FORMAT): New.
4386         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
4387         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
4388         (OUTGOING_REG_PARM_STACK_SPACE): New.
4389         (ix86_reg_parm_stack_space): New prototype.
4390         (CUMULATIVE_ARGS): Add call_abi member.
4391         (machine_function): Add call_abi member.
4392         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
4393         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
4394
4395 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
4396
4397         PR target/34879
4398         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
4399         (avr_builtin_setjmp_frame_value): New function.
4400         * config/avr/avr.md (nonlocal_goto_receiver): Define.
4401         (nonlocal_goto): Define.
4402
4403 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
4404
4405         * config/mips/mips.c (mips_emit_loadgp): Return early if
4406         there is nothing do to, otherwise emit a blockage if
4407         !TARGET_EXPLICIT_RELOCS || crtl->profile.
4408         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
4409
4410 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4411
4412         * configure.ac: Drop unneeded backslash ending up in config.in.
4413         * acinclude.m4: Likewise.
4414         * config.in: Regenerate.
4415
4416 2008-05-26  Jan Hubicka  <jh@suse.cz>
4417
4418         * predict.c (maybe_hot_frequency_p): Break out of...
4419         (maybe_hot_bb_p): ... here.
4420         (maybe_hot_edge_p): New.
4421         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
4422         * basic-block.h (maybe_hot_edge_p): Declare.
4423
4424 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
4425
4426         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
4427         (*cmpfp_<mode>_cc): Ditto.
4428         (*fp_jcc_8<mode>_387): Ditto.
4429         (*fop_<MODEF:mode>_2_i387): Ditto.
4430         (*fop_<MODEF:mode>_3_i387): Ditto.
4431         (*fop_xf_2_i387): Ditto.
4432         (*fop_xf_3_i387): Ditto.
4433
4434 2008-06-02  Tomas Bily  <tbily@suse.cz>
4435
4436         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
4437
4438 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
4439
4440         * config/mips/mips.c (mips_valid_offset_p): New function.
4441         (mips_valid_lo_sum_p): Likewise.
4442         (mips_classify_address): Use them.
4443         (mips_force_address): New function.
4444         (mips_legitimize_address): Use it.
4445         * config/mips/mips.md (MOVE128): New mode iterator.
4446         (movtf): Require TARGET_64BIT.  Remove empty strings.
4447         (*movtf_internal): Rename to...
4448         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
4449         of "R" and use {,fp}{load,store} attributes instead of "multi".
4450         Use a separate define_split.
4451         (*movtf_mips16): New pattern.
4452
4453 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
4454
4455         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
4456         * config/mips/mips.c (mips_expand_before_return): New function.
4457         (mips_expand_epilogue): Call it.
4458         * config/mips/mips.md (return): Turn into a define_expand.
4459         (*return): New insn.
4460
4461 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
4462
4463         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
4464         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
4465         functions.  Do not emit uses and clobbers of CONCATs; individually
4466         use and clobber their operands.
4467         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
4468         gen_clobber, emit_use and gen_use.
4469         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
4470         (expand_builtin_return): Likewise.
4471         * cfgbuild.c (count_basic_blocks): Likewise.
4472         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
4473         * explow.c (emit_stack_restore): Likewise.
4474         * expmed.c (extract_bit_field_1): Likewise.
4475         * expr.c (convert_move, emit_move_complex_parts): Likewise.
4476         (emit_move_multi_word, store_constructor): Likewise.
4477         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
4478         (thread_prologue_and_epilogue_insns): Likewise.
4479         * lower-subreg.c (resolve_simple_move): Likewise.
4480         * optabs.c (widen_operand, expand_binop): Likewise.
4481         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
4482         * reload.c (find_reloads): Likewise.
4483         * reload1.c (eliminate_regs_in_insn): Likewise.
4484         * stmt.c (expand_nl_goto_receiver): Likewise.
4485         * config/alpha/alpha.md (builtin_longjmp): Likewise.
4486         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
4487         * config/arm/arm.c (arm_load_pic_register): Likewise.
4488         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
4489         * config/arm/arm.md (untyped_return): Likewise.
4490         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
4491         * config/avr/avr.c (expand_prologue): Likewise.
4492         * config/bfin/bfin.c (do_unlink): Likewise.
4493         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
4494         * config/cris/cris.c (cris_expand_prologue): Likewise.
4495         * config/darwin.c (machopic_indirect_data_reference): Likewise.
4496         (machopic_legitimize_pic_address): Likewise.
4497         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
4498         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
4499         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
4500         (ix86_expand_convert_uns_didf_sse): Likewise.
4501         (ix86_expand_vector_init_general): Likewise.
4502         * config/ia64/ia64.md (eh_epilogue): Likewise.
4503         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
4504         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
4505         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
4506         (config/iq2000/iq2000.c): Likewise.
4507         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
4508         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
4509         (builtin_longjmp): Likewise.
4510         * config/mn10300/mn10300.md (call, call_value): Likewise.
4511         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
4512         * config/pdp11/pdp11.md (abshi2): Likewise.
4513         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
4514         * config/s390/s390.c (s390_emit_prologue): Likewise.
4515         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
4516         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
4517         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
4518         * config/sh/sh.c (prepare_move_operands): Likewise.
4519         (output_stack_adjust, sh_expand_epilogue): Likewise.
4520         (sh_set_return_address, sh_expand_t_scc): Likewise.
4521         * config/sparc/sparc.c (load_pic_register): Likewise.
4522         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
4523         * config/spu/spu.c (spu_expand_epilogue): Likewise.
4524         * config/v850/v850.c (expand_epilogue): Likewise.
4525
4526 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
4527
4528         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
4529         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
4530         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
4531         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
4532         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
4533         stack pointer register.
4534         (output_movhi): Remove code for interrupt specific writing to the 
4535         stack pointer register.
4536
4537 2008-05-31  Richard Guenther  <rguenther@suse.de>
4538
4539         PR tree-optimization/34244
4540         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
4541         (tree_expr_nonzero_warnv_p): Likewise.
4542         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
4543         ssa_name_nonnegative_p.
4544         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
4545         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
4546         not tree_expr_nonzero_warnv_p.
4547
4548         PR tree-optimization/36262
4549         Revert
4550         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
4551
4552         PR tree-optimization/34244
4553         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
4554         (record_numbers_of_iterations): New function.
4555         (execute_vrp): Cache the numbers of iterations of loops.
4556         * tree-scalar-evolution.c (scev_reset_except_niters):
4557         New function.
4558         (scev_reset): Use scev_reset_except_niters.
4559         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
4560
4561 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
4562
4563         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4564         __WORKAROUND_RETS when appropriate.
4565
4566 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
4567
4568         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
4569         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
4570         mode iterator.
4571         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
4572         *fop_df_comm_sse insn patterns using MODEF mode iterator.
4573         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
4574         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
4575         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
4576         *fop_df_1_mixed insn patterns using MODEF mode iterator.
4577         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
4578         *fop_df_1_sse insn patterns using MODEF mode iterator.
4579         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
4580         *fop_df_1_i387 insn patterns using MODEF mode iterator.
4581         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
4582         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
4583         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
4584         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
4585         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
4586         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
4587         (*fop_xf_4_i387): Use <MODE> for mode attribute.
4588         (*fop_xf_5_i387): Ditto.
4589         (*fop_xf_6_i387): Ditto.
4590
4591 2008-05-30  Richard Guenther  <rguenther@suse.de>
4592
4593         * builtins.c (build_string_literal): Avoid generating
4594         a non-gimple_val result.
4595
4596 2008-05-30  DJ Delorie  <dj@redhat.com>
4597
4598         * exec-tool.in: Use an environment variable (private) instead of a
4599         file (shared) as a semaphore, so as to not break parallel builds.
4600
4601 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
4602
4603         * optabs.c (maybe_encapsulate_block): Remove.
4604         (emit_libcall_block): Adjust accordingly.
4605         * optabs.h (maybe_encapsulate_block): Remove prototype.
4606
4607         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
4608         Don't use maybe_encapsulate_block.
4609
4610 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
4611
4612         * config/rs6000/rs6000.c (rs6000_legitimize_address,
4613         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
4614         rtx is a SYMBOL_REF before calling get_pool_constant.
4615
4616 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
4617
4618         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
4619
4620 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
4621
4622         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
4623         rather than OS names to choose INO_T_EQ definition.
4624         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
4625         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
4626
4627 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
4628
4629         PR target/36348
4630         * config/darwin-f.c: New.
4631         * config/t-darwin: Added rule to build darwin-f.o.
4632         * config.gcc: Defined new variable, fortran_target_objs.
4633         (*-*-darwin*): Set fortran_target_objs.
4634         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
4635         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
4636         * configure: Regenerated.
4637
4638 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
4639
4640         PR target/35771
4641         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
4642         canonical type if needed.
4643
4644 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
4645
4646         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
4647
4648 2008-05-29  Richard Guenther  <rguenther@suse.de>
4649
4650         PR tree-optimization/36343
4651         PR tree-optimization/36346
4652         PR tree-optimization/36347
4653         * tree-flow.h (clobber_what_p_points_to): Declare.
4654         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
4655         pointed-to variable is dereferenced is irrelevant to whether
4656         the pointer can access the pointed-to variable.
4657         (clobber_what_p_points_to): New function.
4658         * tree-ssa-alias.c (set_initial_properties): Use it.
4659         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
4660         call clobber check for NMTs.
4661
4662 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
4663         
4664         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
4665         for printing gcov_type.
4666
4667 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
4668
4669         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
4670         and the eh region information.
4671         * value-prof.c (gimple_move_stmt_histograms): New function.
4672         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
4673
4674 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
4675
4676         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
4677
4678 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
4679
4680         * value-prof.c (tree_ic_transform): Print counts.
4681         * tree-profile.c (tree_gen_ic_func_profiler):
4682         Clear __gcov_indreict_call_callee variable to avoid misattribution
4683         of the profile.
4684
4685 2008-05-28  Rafael Espindola  <espindola@google.com>
4686
4687         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
4688         invalid sharing.
4689
4690 2008-05-28  Richard Guenther  <rguenther@suse.de>
4691
4692         PR tree-optimization/36339
4693         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
4694         and clobbering code out of the loop.
4695
4696 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4697
4698         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
4699         letters defined.
4700
4701         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
4702         s390_contiguous_bitmask_p, s390_symref_operand_p,
4703         s390_check_symref_alignment, s390_reload_larl_operand,
4704         s390_reload_symref_address): New functions.
4705         (s390_branch_condition_mnemonic): Support compare and branch
4706         instructions.
4707         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
4708         and 'W' constraints.
4709         (s390_secondary_reload): Add secondary reloads for unaligned
4710         symbol refs or symbol refs to floating point or QI/TI mode
4711         integer values.
4712         (legitimate_address_p): Accept symbol references as addresses.
4713         (s390_expand_insv): Use rotate and insert selected bits
4714         instruction for insv when building for z10.
4715         (print_operand_address): Handle symbol ref addresses.
4716         (print_operand): Output modifier 'c' added for signed byte values.
4717         (s390_encode_section_info): Mark symbol refs with
4718         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
4719
4720         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
4721         (length attribute): RRF, RRR have 4 byte length.
4722         (FPALL, INTALL): New mode iterators added.
4723         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
4724         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
4725         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
4726         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
4727         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
4728         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
4729         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
4730         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
4731         instructions.
4732         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
4733         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
4734         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
4735         reload<INTALL:mode><P:mode>_toreg_z10,
4736         reload<FPALL:mode><P:mode>_tomem_z10,
4737         reload<FPALL:mode><P:mode>_toreg_z10,
4738         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
4739         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
4740         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
4741         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
4742         definition.
4743         (movmem, clrmem, cmpmem): New splitters added.
4744
4745         * config/s390/predicates.md (larl_operand): Use
4746         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
4747         SYMBOL_REF_ALIGN1_P.
4748         (s390_signed_integer_comparison,
4749         s390_unsigned_integer_comparison): New predicates.
4750
4751         * config/s390/s390-protos.h (s390_check_symref_alignment,
4752         s390_contiguous_bitmask_p, s390_reload_larl_operand,
4753         s390_reload_symref_address,
4754         s390_compare_and_branch_condition_mask): Prototypes added.
4755
4756         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
4757         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
4758         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
4759
4760 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4761
4762         * config/s390/s390.c (z10_cost): New cost function for z10.
4763         (s390_handle_arch_option, override_options): Support -march=z10 switch.
4764         (s390_issue_rate): Adjust issue rate for z10.
4765         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
4766         (processor_flags): Add PF_Z10.
4767         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
4768         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
4769         * gcc/config.gcc: Add z10.
4770
4771 2008-05-28  Richard Guenther  <rguenther@suse.de>
4772
4773         PR tree-optimization/36291
4774         * tree-flow. h (struct gimple_df): Remove var_anns member.
4775         * tree-flow-inline.h (gimple_var_anns): Remove.
4776         (var_ann): Simplify.
4777         * tree-dfa.c (create_var_ann): Simplify.
4778         (remove_referenced_var): Clear alias info from var_anns of globals.
4779         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
4780         (delete_tree_ssa): Clear alias info from var_anns of globals.
4781         Do not free var_anns.
4782         (var_ann_eq): Remove.
4783         (var_ann_hash): Likewise.
4784
4785 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
4786
4787         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
4788         and loongson2f entries.
4789         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
4790         * config/mips/mips.h (processor_type): Add Loongson-2E
4791         and Loongson-2F entries.
4792         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
4793         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
4794         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
4795         * doc/invoke.texi (MIPS Options): Document loongson2e
4796         and loongson2f processor names.
4797
4798 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
4799
4800         PR target/35767
4801         PR target/35771
4802         * config/i386/i386.c (ix86_function_arg_boundary): Use
4803         alignment of canonical type.
4804         (ix86_expand_vector_move): Check unaligned memory access for
4805         all SSE modes.
4806
4807 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
4808
4809         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
4810         Moved to the front of file.
4811
4812 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
4813             H.J. Lu  <hongjiu.lu@intel.com>
4814
4815         * dwarf2out.c (current_fde): New.
4816         (add_cfi): Use it.
4817         (lookup_cfa:): Likewise.
4818         (dwarf2out_end_epilogue): Likewise.
4819         (dwarf2out_note_section_used): Likewise.
4820
4821 2008-05-27  Michael Matz  <matz@suse.de>
4822
4823         PR c++/27975
4824         * c.opt (Wenum-compare): New warning option.
4825         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
4826
4827 2008-05-27  Michael Matz  <matz@suse.de>
4828
4829         PR middle-end/36326
4830         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
4831         non-BLKmode types.
4832         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
4833         into memory as tail calls.
4834
4835 2008-05-27  Richard Guenther  <rguenther@suse.de>
4836
4837         PR tree-optimization/36339
4838         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
4839         pointers cause all addressable variables to be call clobbered.
4840
4841 2008-05-27  Richard Guenther  <rguenther@suse.de>
4842
4843         PR tree-optimization/36245
4844         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
4845
4846 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4847
4848         * config/s390/s390.md: Replace all occurences of the 'm'
4849         constraint with 'RT'.
4850
4851 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4852
4853         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
4854         definitions added.
4855         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
4856         "*movdi_64".
4857         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
4858         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
4859         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
4860
4861 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4862
4863         * reload.c: (find_reloads): Skip alternatives according to the
4864         "enabled" attribute. Constify the constraint variable.
4865         * recog.c (get_attr_enabled): Add default implementation.
4866         (extract_insn): Set the alternative_enabled_p array
4867         in the recog_data struct.
4868         (preprocess_constraints, constrain_operands): Skip
4869         alternatives according to the "enabled" attribute
4870         * recog.h (struct recog_data): New field alternative_enabled_p.
4871         (skip_alternative): New inline function.
4872         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
4873         (record_reg_classes): Skip alternative according to the
4874         "enabled" attribute.
4875
4876         * doc/md.texi: Add documention for the "enabled" attribute.
4877
4878 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
4879
4880         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
4881         * postreload.c (reload_cse_simplify_operands): Replace 'm'
4882         constraint with TARGET_MEM_CONSTRAINT.
4883         * recog.c (asm_operand_ok, preprocess_constraints,
4884         constrain_operands): Likewise.
4885         * regclass.c (record_reg_classes): Likewise.
4886         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
4887         * reload1.c (maybe_fix_stack_asms): Likewise.
4888         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
4889         * recog.h: Adjust comment.
4890         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
4891         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
4892         * doc/md.texi: Add a note to description of 'm' constraint.
4893         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
4894
4895 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4896
4897         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
4898         that the bitfield is of integral type before testing its precision.
4899
4900 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4901             Sa Liu  <saliu@de.ibm.com> 
4902
4903         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
4904         __modti3, __udivti3, __umodti3 and __udivmodti4.
4905         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
4906         that implement TImode mul and div functions.
4907         * config/spu/multi3.c: New. Implement __multi3.
4908         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
4909         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
4910         functions on SPU.
4911
4912 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
4913
4914         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
4915         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
4916         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
4917         tls_sysv_suffix): New mode and mode attribute iterators.
4918         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
4919         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
4920         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
4921         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
4922         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
4923         iterators.
4924
4925 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4926
4927         PR tree-optimization/36329
4928         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
4929         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
4930         * cgraphbuild.c (initialize_inline_failed): Use the latter
4931         macro in lieu of the former.
4932         * ipa-inline.c (cgraph_mark_inline): Likewise.
4933         (cgraph_decide_inlining_of_small_function): Likewise.
4934         (cgraph_decide_inlining): Likewise.
4935         (cgraph_decide_inlining_incrementally): Likewise.
4936
4937 2008-05-26  Tristan Gingold  <gingold@adacore.com>
4938             Anatoly Sokolov  <aesok@post.ru>
4939
4940         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
4941         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
4942         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
4943         optimization for 'avr6' architecture.
4944
4945 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
4946
4947         PR target/34932
4948         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
4949
4950 2008-05-26  Richard Guenther  <rguenther@suse.de>
4951
4952         * tree-ssa-sccvn.c (expr_has_constants): Declare.
4953         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
4954
4955 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
4956
4957         PR middle-end/36253
4958         * caller-save.c (insert_restore): Verify alignment of spill space.
4959         (insert_save): Likewise.
4960         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
4961         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
4962         (STACK_SLOT_ALIGNMENT): Likewise.
4963         * function.c (LOCAL_ALIGNMENT): Removed.
4964         (get_stack_local_alignment): New.
4965         (assign_stack_local): Use it.  Set alignment on stack slot.
4966         (assign_stack_temp_for_type): Use get_stack_local_alignment.
4967         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
4968         (STACK_SLOT_ALIGNMENT): New.
4969         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
4970         stack slot in XFmode.
4971
4972         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
4973
4974 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
4975
4976         PR/36321
4977         * config/i386/i386.md (allocate_stack_worker_64): Make sure
4978         argument operand in rax isn't removed.
4979
4980 2008-05-26  Richard Guenther  <rguenther@suse.de>
4981
4982         PR middle-end/36300
4983         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
4984         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
4985
4986 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
4987
4988         PR bootstrap/36331
4989         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
4990
4991 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
4992
4993         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
4994         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
4995
4996 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4997
4998         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
4999         build a trampoline if we don't want one.
5000         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
5001         return zero for nested functions if we don't want a trampoline.
5002
5003 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5004
5005         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
5006
5007 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5008
5009         PR fortran/18428
5010         * c.opt: Removed undocumented option '-lang-fortran'.
5011         * c-common.h: Removed global variable 'lang_fortran'.
5012         * c-opts.c (c_common_handle_option): Removed code to handle
5013         option '-lang-fortran'. Updated includes.
5014         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
5015         definition of '__GFORTRAN__'.
5016         (define__GNUC__): Reimplemented to use BASEVER and
5017         cpp_define_formatted.
5018         (builtin_define_with_value_n): Removed.
5019         * c-incpath.h: Renamed to ...
5020         * incpath.h: ... this.
5021         * c-incpath.c: Renamed to ...
5022         * incpath.c: ... this. Updated includes.
5023         * fix-header.c: Updated includes.
5024         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
5025         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
5026         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
5027
5028 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5029
5030         * tree.h: Update the table of flags used on tree nodes.
5031         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
5032         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
5033         (FORCED_LABEL): Add access check.
5034         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
5035         (ASM_INPUT_P): Likewise.
5036         (ASM_VOLATILE_P): Likewise.
5037         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
5038         (OMP_SECTION_LAST): Access private_flag directly.
5039         (OMP_RETURN_NOWAIT): Likewise.
5040         (OMP_PARALLEL_COMBINED): Likewise.
5041         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
5042         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
5043         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
5044         deprecated_flag directly.
5045
5046 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5047
5048         * final.c (frame_pointer_needed): Removed.
5049         * flags.h (frame_pointer_needed): Likewise.
5050
5051         * function.h (rtl_data): Add frame_pointer_needed.
5052         (frame_pointer_needed): New.
5053
5054 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
5055
5056         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
5057
5058 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
5059
5060         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
5061         SRC is a REG.
5062
5063 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
5064
5065         * c-common.c (strip_array_types): Move function to..
5066         * tree.c: ..here.
5067         (get_inner_array_type): Delete.
5068         * c-common.h (strip_array_types): Move declaration to..
5069         * tree.h: ..here.
5070         (get_inner_array_type): Delete.
5071         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
5072         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5073         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5074         * config/pa/pa.c (emit_move_sequence): Likewise.
5075
5076 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5077
5078         * config/i386/i386.md (*sse_prologue_save_insn): Set length
5079         attribute to 34.
5080
5081 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
5082
5083         * function.c: Include target hook for nonlocal_goto frame value.
5084
5085 2008-05-24  Richard Guenther  <rguenther@suse.de>
5086
5087         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
5088         variable can be only accessed through a pointer or a union.
5089
5090 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5091
5092         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
5093         * doc/extend.texi: Likewise.
5094
5095 2008-05-23  DJ Delorie  <dj@redhat.com>
5096
5097         * config/m32c/jump.md (untyped_call): Add.
5098
5099         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
5100         for A24 to PSImode.
5101         (m32c_address_cost): Detail costs for indirect offsets.
5102
5103 2008-05-23  Rafael Espindola  <espindola@google.com>
5104
5105         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
5106         if a node is a SUBREG.
5107         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
5108         is a SUBREG.
5109
5110 2008-05-23  Paul Brook  <paul@codesourcery.com>
5111             Carlos O'Donell  <carlos@codesourcery.com>
5112
5113         * doc/extend.texi: Clarify use of __attribute__((naked)).
5114         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5115         * target.h (gcc_target): Add allocate_stack_slots_for_args.
5116         * function.c (use_register_for_decl): Use
5117         targetm.calls.allocate_stack_slots_for_args.
5118         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
5119         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
5120         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
5121
5122 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5123
5124         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
5125
5126 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
5127
5128         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
5129         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
5130         is only rounded once.
5131
5132 2008-05-23  Richard Guenther  <rguenther@suse.de>
5133
5134         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
5135
5136 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
5137             Jakub Jelinek  <jakub@redhat.com>
5138
5139         PR target/36079
5140         * configure.ac: Handle --enable-cld.
5141         * configure: Regenerated.
5142         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
5143         * config/i386/i386.h (struct machine_function): Add needs_cld field.
5144         (ix86_current_function_needs_cld): New define.
5145         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
5146         (cld): New isns pattern.
5147         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
5148         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
5149         * config/i386/i386.opt (mcld): New option.
5150         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
5151         TARGET_CLD and ix86_current_function_needs_cld.
5152         (override_options): Use -mcld by default for 32-bit code if
5153         USE_IX86_CLD.
5154
5155         * doc/install.texi (Options specification): Document --enable-cld.
5156         * doc/invoke.texi (Machine Dependent Options)
5157         [i386 and x86-64 Options]: Add -mcld option.
5158         (Intel 386 and AMD x86-64 Options): Document -mcld option.
5159
5160 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
5161         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
5162         (return_in_memory_64): Likewise.
5163         (return_in_memory_ms_64): Likewise.
5164
5165 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5166
5167         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
5168         * builtins.c (fold_builtin_fpclassify): New.
5169         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
5170         * builtins.def (BUILT_IN_FPCLASSIFY): New.
5171         * c-common.c (handle_type_generic_attribute): Adjust to accept
5172         fixed arguments before an elipsis.
5173         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
5174         * doc/extend.texi: Document __builtin_fpclassify.
5175
5176 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
5177
5178         * omp-low.c (gate_expand_omp_ssa): Remove.
5179         (pass_expand_omp_ssa): Remove.
5180         (gate_expand_omp): Do not check for flag_openmp_ssa.
5181         * common.opt (-fopenmp-ssa): Remove.
5182         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
5183
5184 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
5185
5186         * config/sh/sh.opt (mfixed-range): New option.
5187         * config/sh/sh-protos.h (sh_fix_range): Declare.
5188         * config/sh/sh.c (sh_fix_range): New function.
5189         * config/sh/sh.h (sh_fixed_range_str): Declare.
5190         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
5191         is not empty.
5192         * doc/invoke.texi (SH Options): Document -mfixed-range.
5193
5194 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
5195
5196         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
5197         it before the redeclaration.
5198
5199 2008-05-22  Anatoly Sokolov <aesok@post.ru>
5200
5201         * config/avr/avr.c (get_sequence_length): Add new function.
5202         (expand_prologue, expand_epilogue): Remove duplicate code.
5203
5204 2008-05-22  Rafael Espindola  <espindola@google.com>
5205
5206         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
5207         sharing.
5208
5209 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
5210
5211         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
5212         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
5213
5214         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
5215         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
5216         (vect_update_misalignment_for_peel): Likewise.
5217         (vector_alignment_reachable_p): Likewise.
5218         * tree-vect-transform.c (vectorizable_load): Likewise.
5219         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
5220         (get_vectype_for_scalar_type): Pass mode of scalar_type
5221         to UNITS_PER_SIMD_WORD.
5222
5223         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
5224         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5225         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5226         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5227         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5228
5229 2008-05-22  Ira Rosen  <irar@il.ibm.com>
5230
5231         PR tree-optimization/36293
5232         * tree-vect-transform.c (vect_transform_strided_load): Don't check
5233         if the first load must be skipped because of a gap.
5234
5235 2008-05-22  Richard Guenther  <rguenther@suse.de>
5236
5237         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
5238         more cases of offset disambiguation that is possible if
5239         strict-aliasing rules apply.
5240         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
5241         for basic offset and type-based disambiguation.
5242
5243 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5244
5245         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
5246         ix86_expand_vector_set on V16QImode for SSE4.1.
5247
5248 2008-05-21  Tom Tromey  <tromey@redhat.com>
5249
5250         * c.opt (Wimport): Mark as undocumented.
5251         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
5252         -Wno-import.
5253         (Warning Options): Likewise.
5254         * doc/cppopts.texi: Don't mention -Wimport.
5255
5256 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
5257
5258         PR tree-optimization/36287
5259         PR tree-optimization/36286
5260         * lambda-code.c (build_access_matrix): Do not use the loop->num
5261         for computing the number of induction variables: use the loop depth
5262         instead.
5263
5264 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
5265
5266         PR/36280
5267         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
5268         option -f(no-)leading-underscore.
5269
5270 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5271
5272         * config/i386/i386.c (ix86_expand_vector_init_general): Use
5273         GET_MODE_NUNITS (mode).
5274
5275 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
5276
5277         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
5278         (-mmulhw): Add 464 to description.
5279         (-mdlmzb): Likewise.
5280         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
5281         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
5282         464fp entries.
5283         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
5284         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
5285         * config/rs6000/rs6000.md: Update comments for 464.
5286
5287 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
5288
5289         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
5290
5291 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5292
5293         * config/i386/sse.md (vec_extractv4sf): Removed.
5294         (vec_extractv2df): Likewise.
5295         (vec_extractv2di): Likewise.
5296         (vec_extractv4si): Likewise.
5297         (vec_extractv8hi): Likewise.
5298         (vec_extractv16qi): Likewise.
5299         (vec_extract<mode>): New.
5300
5301 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5302
5303         * config/i386/sse.md (vec_setv4sf): Removed.
5304         (vec_setv2df): Likewise.
5305         (vec_setv2di): Likewise.
5306         (vec_setv4si): Likewise.
5307         (vec_setv8hi): Likewise.
5308         (vec_setv16qi): Likewise.
5309         (vec_set<mode>): New.
5310
5311 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5312
5313         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
5314         goto for vec_concat and vec_interleave.
5315
5316 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5317
5318         * config/i386/sse.md (vec_initv4sf): Removed.
5319         (vec_initv2df): Likewise.
5320         (vec_initv2di): Likewise.
5321         (vec_initv4si): Likewise.
5322         (vec_initv8hi): Likewise.
5323         (vec_initv16qi): Likewise.
5324         (vec_init<mode>): New.
5325
5326 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
5327
5328         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
5329
5330 2008-05-21  Tom Tromey  <tromey@redhat.com>
5331
5332         * ggc-zone.c (lookup_page_table_if_allocated): New function.
5333         (zone_find_object_offset): Likewise.
5334         (gt_ggc_m_S): Likewise.
5335         (highest_bit): Likewise.
5336         * ggc-page.c (gt_ggc_m_S): New function.
5337         * stringpool.c (string_stack): Remove.
5338         (init_stringpool): Update.
5339         (ggc_alloc_string): Use ggc_alloc.
5340         (maybe_delete_ident): New function.
5341         (ggc_purge_stringpool): Likewise.
5342         (gt_ggc_m_S): Remove.
5343         * ggc-common.c (ggc_protect_identifiers): New global.
5344         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
5345         ggc_protect_identifiers.
5346         * ggc.h (ggc_protect_identifiers): Declare.
5347         (gt_ggc_m_S): Update.
5348         (ggc_purge_stringpool): Declare.
5349         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
5350         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
5351         special case.
5352         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
5353
5354 2008-05-21  David S. Miller  <davem@davemloft.net>
5355
5356         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
5357         tmake_file.
5358
5359 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
5360
5361         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
5362         once finished.
5363
5364 2008-05-20  David Daney  <ddaney@avtrex.com>
5365
5366         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
5367         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
5368         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
5369         UNSPEC_UPDATE_GOT_VERSION): Renumber.
5370         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
5371         (atomic_hiqi_op): New define_code_iterator.
5372         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
5373         mips_expand_compare_and_swap_12.
5374         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
5375         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
5376         (sync_<optab><mode>, sync_old_<optab><mode>,
5377         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
5378         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
5379         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
5380         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
5381         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
5382         (test_and_set_12): New insn.
5383         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
5384         sync_new_<optab><mode>, sync_old_nand<mode>,
5385         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
5386         clobber to operand 0 for SI and DI mode insns.
5387         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
5388         mips_gen_fn_4): New typedefs.
5389         (mips_gen_fn_ptrs): Define new union type.
5390         (mips_expand_compare_and_swap_12): Remove declaration.
5391         (mips_expand_atomic_qihi): Declare function.
5392         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
5393         (mips_expand_atomic_qihi): ... this.  Use new generator function
5394         parameter.
5395         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
5396         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
5397         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
5398         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
5399         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
5400         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
5401         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
5402         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
5403         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
5404         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
5405         New macros.
5406
5407 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
5408
5409         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
5410         the missing break.
5411
5412 2008-05-20  Anatoly Sokolov <aesok@post.ru>
5413
5414         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
5415         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
5416         (avr_attribute_table): Add 'OS_main' function attribute.
5417         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
5418         functions with 'OS_main' attribute.
5419
5420 2008-05-20  Richard Guenther  <rguenther@suse.de>
5421
5422         PR tree-optimization/35204
5423         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
5424         helper, split out from ...
5425         (DFS): ... here.  Make the DFS walk non-recursive.
5426
5427 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
5428             Jan Sjodin  <jan.sjodin@amd.com>
5429
5430         PR tree-optimization/36181
5431         * tree-parloops.c (loop_has_vector_phi_nodes): New.
5432         (parallelize_loops): Don't parallelize when the loop has vector
5433         phi nodes.
5434
5435 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
5436             Sebastian Pop  <sebastian.pop@amd.com>
5437
5438         * tree-loop-linear.c (gather_interchange_stats): Look in the access
5439         matrix, and never look at the tree representation of the memory
5440         accesses.
5441         (linear_transform_loops): Computes parameters and access matrices.
5442         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
5443         when fails.
5444         (access_matrix_get_index_for_parameter): New.
5445         * tree-data-ref.h (struct access_matrix): New.
5446         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
5447         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
5448         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
5449         am_vector_index_for_loop): New.
5450         (struct data_reference): Add field access_matrix.
5451         (DR_ACCESS_MATRIX): New.
5452         (compute_data_dependences_for_loop): Update declaration.
5453         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
5454         * lambda.h (lambda_vector_vec_p): Declared.
5455         * lambda-code.c: Depend on pointer-set.h.
5456         (lambda_collect_parameters_from_af, lambda_collect_parameters,
5457         av_for_af_base, av_for_af, build_access_matrix,
5458         lambda_compute_access_matrices): New.
5459         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
5460
5461 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
5462
5463         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
5464         $SOURCEDIR/include.
5465
5466 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
5467             Sebastian Pop  <sebastian.pop@amd.com>
5468
5469         PR tree-optimization/36206
5470         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
5471         FOLD_CONVERSIONS.
5472         (instantiate_scev_1): Rename flags to fold_conversions.
5473         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
5474         outeside instantiation_loop.
5475         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
5476         (evolution_function_is_affine_or_constant_p): Removed.
5477         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
5478         instantiate_scev.
5479         (analyze_siv_subscript): Pass in the loop nest number.
5480         Call evolution_function_is_affine_in_loop instead of 
5481         evolution_function_is_affine_p.
5482         (analyze_overlapping_iterations): Pass in the loop nest number.
5483
5484 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
5485             Sebastian Pop  <sebastian.pop@amd.com>
5486
5487         PR tree-optimization/36206
5488         * tree-chrec.h (chrec_fold_op): New.
5489         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
5490         and other trees.
5491
5492 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
5493
5494         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
5495         (DIRS_EQ): New.
5496         (remove_duplicates): Do not set inode on non-inode systems.
5497         Use DIRS_EQ.
5498
5499 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
5500
5501         * config.gcc (tm_file): Update comments about relative pathnames.
5502
5503 2008-05-20  Richard Guenther  <rguenther@suse.de>
5504
5505         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
5506         * tree-ssa-sccvn.c (process_scc): Likewise.
5507         * tree-ssa-sink.c (execute_sink_code): Likewise.
5508         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
5509         * tree-vrp.c (process_assert_insertions): Likewise.
5510         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
5511         (perform_tree_ssa_dce): Likewise.
5512         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
5513         (dump_dominator_optimization_stats): Likewise.
5514         * tree-vectorizer.c (vectorize_loops): Likewise.
5515
5516 2008-05-20  Richard Guenther  <rguenther@suse.de>
5517
5518         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
5519
5520 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
5521
5522         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
5523         (ix86_i386elf_return_in_memory): Likewise.
5524         (ix86_i386interix_return_in_memory): Likewise.
5525         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
5526         (SUBTARGET_RETURN_IN_MEMORY): New.
5527         * config/i386/i386elf.h: Likewise.
5528         * config/i386/ptx4-i.h: Likewise.
5529         * config/i386/sol2-10.h: Likewise.
5530         * config/i386/sysv4.h: Likewise.
5531         * config/i386/vx-common.h: Likewise.
5532         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
5533         * config/i386/i386.c (ix86_return_in_memory): Made static and
5534         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
5535         (ix86_i386elf_return_in_memory): Removed.
5536         (ix86_i386interix_return_in_memory): Removed.
5537         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
5538         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
5539
5540 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
5541
5542         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
5543
5544 2008-05-19  Xinliang David Li  <davidxl@google.com>
5545
5546         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
5547         * opts.c: Ditto.
5548         * common.opt: Ditto.
5549         * doc/invoke.texi: Ditto.
5550
5551 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5552
5553         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
5554         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
5555
5556 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5557
5558         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
5559         sizes of operand array from 8/4 to 4/2.
5560         (ix86_expand_vector_init_general): Change size of operand array
5561         from 32 to 16.  Remove op0, op1 and half_mode.
5562
5563 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
5564
5565         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
5566         (ix86_expand_vector_init_interleave): Likewise.
5567         (ix86_expand_vector_init_general): Use them.  Assert
5568         word_mode == SImode when n_words == 4.
5569
5570 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
5571
5572         * config/i386/i386.c (ix86_secondary_reload): New static function.
5573         (TARGET_SECONDARY_RELOAD): New define.
5574         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
5575         * config/i386/i386.md (reload_outqi): Remove.
5576
5577 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5578
5579         PR middle-end/35509
5580         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
5581         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
5582         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
5583         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
5584         (fold_builtin_1): Likewise.
5585         * builtins.def (BUILT_IN_ISINF_SIGN): New.
5586         c-common.c (check_builtin_function_arguments): Handle
5587         BUILT_IN_ISINF_SIGN.
5588         * doc/extend.texi: Document __builtin_isinf_sign.
5589         * fold-const.c (operand_equal_p): Handle COND_EXPR.
5590
5591 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
5592
5593         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
5594         EH cleanup at the end of the pass, search for those that have been
5595         turned into forwarder blocks and do the cleanup on their successor.
5596
5597 2008-05-18  Richard Guenther  <rguenther@suse.de>
5598
5599         * tree-cfg.c (verify_gimple_expr): Allow conversions from
5600         pointers to sizetype and vice versa.
5601
5602 2008-05-18 Xinliang David Li   <davidxl@google.com>
5603
5604         * gcc/tree-ssa-dce.c: Coding style fix.
5605         (check_pow): Documentation comment. 
5606         (check_log): Documenation comment. Coding style fix.
5607         (is_unnecessary_except_errno_call): Ditto.
5608         (gen_conditions_for_pow): Ditto.
5609         (gen_conditions_for_log): Ditto.
5610         (gen_shrink_wrap_conditions): Ditto.
5611         (shrink_wrap_one_built_in_calls): Ditto.
5612         * gcc/doc/invoke.texi: Better documentation string.
5613         * ChangeLog: Fix wrong change log entries from 
5614         May 17 checkin on function call DCE.
5615
5616 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5617
5618         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
5619
5620 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
5621
5622         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
5623         * df-problems.c (simulation routines): Fixed block comment to
5624         properly say how to add forwards scanning functions.
5625         
5626 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5627
5628         * tree-inline.c (setup_one_parameter): Remove dead code.
5629
5630 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5631
5632         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
5633         a BIT_AND_EXPR only for an INTEGER_TYPE.
5634
5635 2008-05-17 Xinliang David Li   <davidxl@google.com>
5636
5637         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
5638         (check_pow, check_log, is_unnecessary_except_errno_call): New 
5639         functions to check for eliminating math functions that are pure 
5640         except for setting errno.
5641         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
5642         general condition expressions for shrink-wrapping pow/log calls.
5643         (gen_shrink_wrap_conditions): Ditto.
5644         (shrink_wrap_one_built_in_call): Ditto.
5645         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
5646         (mark_operand_necessary): If debugging, output if OP is necessary.
5647         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
5648         unnecessary.
5649         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
5650         opt level >= 2.
5651         * gcc/common.opt: New user flag -ftree-builtin-dce.
5652         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
5653
5654 2008-05-16  David S. Miller  <davem@davemloft.net>
5655
5656         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
5657         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
5658
5659 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
5660
5661         PR target/36246
5662         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
5663
5664 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5665
5666         * ifcvt.c (dead_or_predicable): Rename
5667         df_simulate_one_insn_backwards to df_simulate_one_insn.
5668         * recog.c (peephole2_optimize): Ditto.
5669         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
5670         Ditto.
5671         * df.h: Rename df_simulate_one_insn_backwards to
5672         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
5673         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
5674         scanning of defs and uses.
5675         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
5676         (df_simulate_one_insn_forwards): Removed.
5677
5678 2008-05-16  Doug Kwan  <dougkwan@google.com>
5679
5680         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
5681         QNaN & SNaN.
5682         (real_from_string): Handle NaNs and Inf as approriate.
5683
5684 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
5685
5686         * doc/gty.texi (Source Files Containing Type Information): Note
5687         that headers should appear first in the gtfiles list.
5688
5689 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5690
5691         * tree.def (COND_EXEC): Properly documented this code.
5692
5693 2008-05-16  Diego Novillo  <dnovillo@google.com>
5694
5695         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
5696         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
5697         the new field.
5698
5699 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5700
5701         * tree-ssa-dse (max_stmt_uid): Removed.
5702         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
5703         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
5704         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
5705         * function.h (cfun.last_stmt_uid): New field.
5706         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
5707         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
5708         New functions.
5709         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
5710         (create_stmt_ann): Initialize the ann->uid field.
5711         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
5712         with new calls.
5713         * tree-flow.h (renumber_gimple_stmt_uids): New function.
5714
5715 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
5716
5717         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
5718         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
5719         (init_empty_tree_cfg): Call it.
5720
5721 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5722
5723         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
5724         Update all users.
5725
5726 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
5727
5728         * doc/invoke.text (-fdump-tree-*-verbose): New option.
5729         * tree-dump.c (dump_options): New verbose option.
5730         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
5731         Add verbose dump.
5732         * tree-pass.h (TDF_VERBOSE): New dump flag.
5733         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
5734         (tree-flow.h): Added include.
5735         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
5736
5737 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
5738
5739         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
5740
5741         From Jie Zhang  <jie.zhang@analog.com>
5742         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5743         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
5744         mcpu=bf561-none and mcpu=bf561-0.2.
5745         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5746         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
5747         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5748         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
5749         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
5750         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
5751         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
5752         option.
5753         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
5754         (cputype_selected): Remove.
5755         (bfin_handle_option): Don't use cputype_selected.
5756         (override_options): When no mcpu option, enable all workarounds.
5757         Don't use bfin_workarounds.
5758         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
5759         processor type.
5760         (DEFAULT_CPU_TYPE): Don't define.
5761
5762 2008-05-16  Richard Guenther  <rguenther@suse.de>
5763
5764         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
5765         on deletion of the last stmt.
5766
5767 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5768
5769         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
5770         V8HImode for SSE2 and V16QImode for SSE4.1.
5771
5772 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
5773
5774         * cgraph.h (compute_inline_parameters): Made public.
5775         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
5776         variable_generate_summary, function_write_summary,
5777         variable_write_summary, variable_read_summary.  Added generate_summary,
5778         write_summary, read_summary.
5779         * cgraphunit.c (cgraph_process_new_functions): Changed call from
5780         pass_ipa_inline.function_generate_summary, to
5781         compute_inline_parameters. 
5782         * ipa-inline.c (compute_inline_parameters): Made public and added
5783         node parameter.
5784         (compute_inline_parameters_for_current): New function.
5785         (pass_inline_param): Now calls compute_inline_parameters_for_current.
5786         (inline_generate_summary): Removed parameter and made to loop over
5787         all cgraph nodes.
5788         (pass_ipa_inline): Updated for new IPA_PASS structure.
5789         * passes.c (execute_ipa_summary_passes): Now is called once per
5790         pass rather than once per node*pass.
5791         
5792 2008-05-15  Anatoly Sokolov <aesok@post.ru>
5793
5794         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
5795         avr_have_mul_p, avr_asm_only_p): Remove variables.
5796         (avr_override_options): Remove initialization of removed variables.
5797         (avr_file_start):  Convert removed variables to fields of 
5798         'struct base_arch_s *avr_current_arch'. 
5799         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
5800         (AVR_HAVE_MUL): (Ditto.).
5801         (AVR_HAVE_MOVW): (Ditto.).
5802         (AVR_HAVE_LPMX): (Ditto.). 
5803         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
5804         avr_asm_only_p): Remove declaration.
5805
5806 2008-05-15  Diego Novillo  <dnovillo@google.com>
5807
5808         * config/arm/arm.c (arm_return_in_memory): Fix return type.
5809         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
5810
5811 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
5812
5813         PR middle-end/36194
5814         * combine.c (check_conversion): Rename back to check_promoted_subreg.
5815         Don't call record_truncated_value from here.
5816         (record_truncated_value): Turn it into a for_each_rtx callback.
5817         (record_truncated_values): New function.
5818         (combine_instructions): Call note_uses with record_truncated_values.
5819         Change name of check_conversion to check_promoted_subreg. 
5820
5821 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
5822
5823         * doc/sourcebuild.texi: Document support for torture tests.
5824
5825 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
5826
5827         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
5828         to alternative 4 of operand 2.
5829
5830 2008-05-15  Richard Guenther  <rguenther@suse.de>
5831
5832         * tree-pass.h (current_pass): Declare.
5833         (get_pass_for_id): Likewise.
5834         * passes.c (passes_by_id, passes_by_id_size): New globals.
5835         (set_pass_for_id): New function.
5836         (get_pass_for_id): Likewise.
5837         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
5838         (execute_function_todo): Flush per function statistics.
5839         * toplev.c (compile_file): Init statistics.
5840         (general_init): Do early statistics initialization.
5841         (finalize): Finish statistics.
5842         * statistics.h (statistics_early_init): Declare.
5843         (statistics_init): Likewise.
5844         (statistics_fini): Likewise.
5845         (statistics_fini_pass): Likewise.
5846         (statistics_counter_event): Likewise.
5847         (statistics_histogram_event): Likewise.
5848         * statistics.c: New file.
5849         * Makefile.in (OBJS-common): Add statistics.o.
5850         (statistics.o): Add dependencies.
5851         * doc/invoke.texi (-fdump-statistics): Document.
5852
5853         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
5854         (insert): Likewise.
5855         (execute_pre): Use statistics_counter_event.
5856         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
5857         (substitute_and_fold): Increment it.  Use statistics_counter_event.
5858
5859 2008-05-15  Diego Novillo  <dnovillo@google.com>
5860
5861         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
5862
5863         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
5864         * tree-ssa-alias.c (new_type_alias): Remove references to
5865         sub-variables from comment.
5866         * tree-ssa-operands.c (swap_tree_operands): Likewise.
5867
5868 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5869
5870         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
5871         attribute to 1 only for insertps alternative.
5872
5873 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
5874
5875         * config/bfin/bfin.md (loadbytes): New pattern.
5876         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
5877         (bfin_init_builtins): Initialize it.
5878         (bdesc_1arg): Add it.
5879
5880 2008-05-15  Sa Liu  <saliu@de.ibm.com>
5881
5882         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
5883         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
5884         * testsuite/lib/target-supports.exp: Add
5885         check_effective_target_fortran_integer_16.
5886
5887 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
5888
5889         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
5890         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
5891         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
5892         (TARGET_RETURN_IN_MEMORY): Define.
5893
5894 2008-05-15  Richard Guenther  <rguenther@suse.de>
5895
5896         PR middle-end/36244
5897         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
5898         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
5899         represent unmodifiable vars.
5900
5901 2008-05-15  Richard Guenther  <rguenther@suse.de>
5902
5903         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
5904         INDIRECT_REF and TARGET_MEM_REF.
5905         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5906         TARGET_MEM_REF.
5907
5908 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
5909             H.J. Lu  <hongjiu.lu@intel.com>
5910
5911         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
5912         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
5913         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
5914         insn alternatives.  Add missing alternatives.
5915         (*vec_concatv2di_rex64_sse4_1): Likewise.
5916         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
5917         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
5918         Require TARGET_SSE.
5919
5920 2008-05-15  Richard Guenther  <rguenther@suse.de>
5921
5922         PR tree-optimization/36009
5923         PR tree-optimization/36204
5924         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
5925         (determine_invariantness_stmt): Record the loop a store is
5926         always executed in.
5927         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
5928         dependency.
5929
5930 2008-05-15  Richard Guenther  <rguenther@suse.de>
5931
5932         PR tree-optimization/34330
5933         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
5934         through the pointer will alias the SMT.
5935
5936 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
5937
5938         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
5939
5940 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
5941
5942         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
5943
5944 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
5945             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5946
5947         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
5948         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
5949         (vashl_optab): New optab for vector/vector shifts.
5950         (vashr_optab): Ditto.
5951         (vlshr_optab): Ditto.
5952         (vrotl_optab): Ditto.
5953         (vrotr_optab): Ditto.
5954         (optab_subtype): New enum for optab_for_tree_code call.
5955         (optab_for_tree_code): Add enum optab_subtype argument.
5956
5957         * optabs.c (optab_for_tree_code): Take an additional argument to
5958         distinguish between a vector shift by a scalar and vector shift by
5959         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
5960         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
5961         vector shift by a vector.
5962         (expand_widen_pattern_expr): Pass additional argument to
5963         optab_for_tree_code.
5964
5965         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
5966         vrotl_optab, vrotr_optab.
5967
5968         * expr.c (expand_expr_real_1): Update calls to
5969         optab_for_tree_code to distinguish between vector shifted by a
5970         scalar and vector shifted by a vector.
5971         * tree-vectorizer.c (supportable_widening_operation): Ditto.
5972         (supportable_narrowing_operation): Ditto.
5973         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
5974         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
5975         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
5976         (vect_create_epilog_for_reduction): Ditto.
5977         (vectorizable_reduction): Ditto.
5978         (vectorizable_operation): Ditto.
5979         (vect_strided_store_supported): Ditto.
5980         (vect_strided_load_supported): Ditto.
5981         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
5982         * expmed.c (expand_shift): Ditto.
5983
5984         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
5985         scalar type.
5986         (ashr@var{m}3): Ditto.
5987         (vashl@var{m}3): Document new vector/vector shift standard name.
5988         (vashr@var{m}3): Ditto.
5989         (vlshr@var{m}3): Ditto.
5990         (vrotl@var{m}3): Ditto.
5991         (vrotr@var{m}3): Ditto.
5992
5993         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
5994         (PPERM_INVERT): Ditto.
5995         (PPERM_REVERSE): Ditto.
5996         (PPERM_REV_INV): Ditto.
5997         (PPERM_ZERO): Ditto.
5998         (PPERM_ONES): Ditto.
5999         (PPERM_SIGN): Ditto.
6000         (PPERM_INV_SIGN): Ditto.
6001         (PPERM_SRC1): Ditto.
6002         (PPERM_SRC2): Ditto.
6003
6004         * config/i386/sse.md (mulv2di3): Add SSE5 support.
6005         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
6006         allows a memory operand to be the value being added, and split it
6007         to improve vectorization.
6008         (sse5_pmacsdqh_mem): Ditto.
6009         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
6010         (sse5_mulv2div2di3_high): Ditto.
6011         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
6012         (vec_pack_trunc_v4si): Ditto.
6013         (vec_pack_trunc_v2di): Ditto.
6014         (sse5_pcmov_<mode>): Remove code that tried to use use
6015         andps/andnps instead of pcmov.
6016         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
6017         pmacsdqh instructions.
6018         (vec_widen_smult_lo_v4si): Ditto.
6019
6020         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
6021         (PPERM_INVERT): Ditto.
6022         (PPERM_REVERSE): Ditto.
6023         (PPERM_REV_INV): Ditto.
6024         (PPERM_ZERO): Ditto.
6025         (PPERM_ONES): Ditto.
6026         (PPERM_SIGN): Ditto.
6027         (PPERM_INV_SIGN): Ditto.
6028         (PPERM_SRC1): Ditto.
6029         (PPERM_SRC2): Ditto.
6030         (ix86_expand_sse_movcc): Move the SSE5 test after the if
6031         true/false tests.
6032         (ix86_expand_int_vcond): If SSE5 generate all possible integer
6033         comparisons.
6034         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
6035         says ignore whether the last reference is a memory operand.
6036
6037 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6038             Paolo Bonzini <bonzini at gnu dot org>
6039
6040         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
6041         shift patterns.
6042
6043         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
6044         (vlshr<mode>3): Rename from vlshr<mode>3.
6045         (vashr<mode>3): Rename from vashr<mode>3.
6046         (mulv4sf3): Change the names of vector shift patterns.
6047         (mulv4si3): Ditto.
6048         (negv4sf2): Ditt.
6049
6050         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
6051         shift insns.
6052
6053         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
6054         (SI_SHLHI): Ditto.
6055         (SI_SHL): Ditto.
6056         (SI_SHLI): Ditto.
6057         (SI_ROTH): Ditto.
6058         (SI_ROTHI): Ditto.
6059         (SI_ROT): Ditto.
6060         (SI_ROTI): Ditto.
6061         (SPU_RL_0): Ditto.
6062         (SPU_RL_1): Ditto.
6063         (SPU_RL_2): Ditto.
6064         (SPU_RL_3): Ditto.
6065         (SPU_RL_4): Ditto.
6066         (SPU_RL_5): Ditto.
6067         (SPU_RL_6): Ditto.
6068         (SPU_RL_7): Ditto.
6069         (SPU_SL_0): Ditto.
6070         (SPU_SL_1): Ditto.
6071         (SPU_SL_2): Ditto.
6072         (SPU_SL_3): Ditto.
6073         (SPU_SL_4): Ditto.
6074         (SPU_SL_5): Ditto.
6075         (SPU_SL_6): Ditto.
6076         (SPU_SL_7): Ditto.
6077
6078         * config/spu/spu.md (v): New iterator macro to add v for vector types.
6079         (floatunssidf2_internal): Change vector/vector shift names.
6080         (floatunsdidf2_internal): Ditto.
6081         (mulv8hi3): Ditto.
6082         (ashrdi3): Ditto.
6083         (ashrti3): Ditto.
6084         (cgt_df): Ditto.
6085         (cgt_v2df): Ditto.
6086         (dftsv): Ditto.
6087         (vashl<mode>3): Rename from ashl<mode>3.
6088         (vashr<mode>3): Rename from ashr<mode>3.
6089         (vlshr<mode>3): Rename from lshr<mode>3.
6090         (vrotl<mode>3): Rename from rotl<mode>3.
6091
6092 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6093
6094         PR target/36224
6095         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
6096         multiply gives the wrong value when doing widening multiplies.
6097         (vec_widen_smult_lo_v4si): Ditto.
6098
6099 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6100
6101         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
6102         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
6103         emit_library_call_value. 
6104         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
6105         * tree.h (ECF_LIBCALL_BLOCK): Removed.
6106         * calls.c (initialize_argument_information, precompute_arguments, 
6107         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
6108         (precompute_arguments): Removed flags parameter.
6109         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
6110         
6111 2008-05-14  Richard Guenther  <rguenther@suse.de>
6112
6113         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
6114         Make sure to register the store if the use is a PHI_NODE.
6115
6116 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6117
6118         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
6119         memory if the component is to be referenced in BLKmode according
6120         to get_inner_reference.
6121
6122 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
6123
6124         * calls.c (emit_library_call_value_1): Restore code clearing
6125         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
6126
6127 2008-05-14  Olivier Hainque  <hainque@adacore.com>
6128             Nicolas Roche  <roche@adacore.com>
6129
6130         * configure.ac: Add support for a "gcc_subdir" variable in
6131         config-lang.in, to denote a subdirectory where the language/GCC
6132         integration files are to be found.
6133         * configure: Regenerate.
6134
6135 2008-05-14  Ira Rosen  <irar@il.ibm.com>
6136
6137         PR tree-optimization/36098
6138         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
6139         value for the first load in the group in case of a gap.
6140         (vect_build_slp_tree): Check that there are no gaps in loads.
6141
6142 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
6143
6144         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
6145         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
6146         expand_copysign_bit, ): Change call to emit_no_conflict_block to
6147         emit_insn and remove unneeded code to construct extra args.
6148         (emit_no_conflict_block): Removed.
6149         * optabls.h: (emit_no_conflict_block): Removed.
6150         * cse.c (cse_extended_basic_block): Remove search for
6151         REG_NO_CONFLICT note.
6152         * global.c: Removed incorrect comment added in revision 117.
6153         * expr.c (convert_move): Change call to emit_no_conflict_block to
6154         emit_insn.
6155         * recog.c: Change comments so that they do not mention
6156         REG_NO_CONFLICT.
6157         * local_alloc.c (combine_regs): Removed last parameter.
6158         (no_conflict_p): Removed.
6159         (block_alloc): Removed note, no_conflict_combined_regno and set
6160         local vars. Removed all code to process REG_NO_CONFLICT blocks.
6161         (combine_regs): Removed already_dead and code to look for
6162         REG_NO_CONFLICT notes.
6163         * lower_subreg (remove_retval_note): Removed code to look for
6164         REG_NO_CONFLICT block.
6165         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
6166         (resolve_clobber): Remove code to process libcalls that have
6167         REG_NO_CONFLICT notes.
6168         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
6169         case.
6170         * combine.c (can_combine_p, distribute_notes):  Removed
6171         REG_NO_CONFLICT case.
6172         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
6173         to emit_insns.
6174         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
6175         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
6176         Ditto.
6177         * reg-notes.def (NO_CONFLICT): Removed.
6178
6179 2008-05-14  David S. Miller  <davem@davemloft.net>
6180
6181         * config/sparc/sparc.c (sparc_profile_hook): If
6182         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
6183         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
6184         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6185
6186 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
6187
6188         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
6189
6190 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
6191
6192         PR target/36222
6193         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
6194         and op1 expansion before vector concat to have less live pseudos.
6195
6196 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6197
6198         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6199         ix86_expand_vector_set if supported.
6200
6201 2008-05-13  Diego Novillo  <dnovillo@google.com>
6202             Kenneth Zadeck  <zadeck@naturalbridge.com>
6203
6204         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
6205
6206         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
6207         phinodes_print_statistics, init_ssanames, fini_ssanames,
6208         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
6209         release_ssa_name, release_defs, replace_ssa_name_symbol,
6210         ssanames_print_statistics): Move ...
6211         * tree-flow.h: ... here.
6212         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
6213         Use FN instead of cfun.
6214         (make_ssa_name_fn): Rename from make_ssa_name.
6215         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
6216         * tree-flow-inline.h (make_ssa_name): Move from
6217         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
6218         * omp-low.c (expand_omp_parallel):
6219         * tree-flow-inline.h (redirect_edge_var_map_result):
6220         * tree-ssa.c (init_tree_ssa): Add argument FN.
6221         Use it instead of cfun.  Update all users.
6222
6223 2008-05-13  Tom Tromey  <tromey@redhat.com>
6224
6225         PR preprocessor/22168:
6226         * doc/cpp.texi (Top): Update menu.
6227         (Alternatives to Wrapper #ifndef): New node.
6228         (Other Directives): Document deprecation.
6229         (Obsolete Features): Remove menu.
6230         (Assertions): Merge node into Obsolete Features.
6231         (Obsolete once-only headers): Move earlier; rename to Alternatives
6232         to Wrapper #ifndef.
6233         * doc/cppopts.texi: Update.
6234         * c.opt (Wdeprecated): Enable for C and ObjC.
6235         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
6236         (C++ Dialect Options): Move -Wno-deprecated from here to...
6237         (Warning Options): ... here.
6238
6239 2008-05-13  Richard Guenther  <rguenther@suse.de>
6240
6241         PR middle-end/36227
6242         * fold-const.c (fold_sign_changed_comparison): Do not allow
6243         changes in pointer-ness.
6244
6245 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
6246
6247         PR target/24713
6248         * config/sh/sh.c (sh_expand_prologue): Don't clear
6249         RTX_FRAME_RELATED_P for push insns.
6250
6251 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
6252
6253         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
6254
6255 2008-05-12  Anatoly Sokolov <aesok@post.ru>
6256
6257         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
6258         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
6259         Use 'machine->is_leaf' instead of 'leaf_func_p'.
6260
6261 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
6262
6263         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
6264         (*vec_concatv4sf_sse): This.
6265         (*sse2_concatv2si): Renamed to ...
6266         (*vec_concatv2si_sse2): This.
6267         (*sse1_concatv2si): Renamed to ...
6268         (*vec_concatv2si_sse): This.
6269         (*vec_concatv2di_rex): Renamed to ...
6270         (*vec_concatv2di_rex64): This.
6271         (*vec_concatv2si_sse4_1): New.
6272         (*vec_concatv2di_rex64_sse4_1): Likewise.
6273
6274 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
6275
6276         PR rtl-optimization/36111
6277         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
6278         that was created for swappable operands.
6279
6280 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
6281
6282         PR ada/36001
6283         * Makefile.in: Substitute GNATMAKE and GNATBIND.
6284         * configure.ac: Add call to ACX_PROG_GNAT.
6285
6286 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
6287
6288         * optc-gen.awk: Fix comment typo.
6289
6290 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
6291
6292         * pretty-print.c (pp_integer_with_precision): Use
6293         HOST_LONG_LONG_FORMAT.
6294
6295 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
6296
6297         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
6298                 
6299 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
6300
6301         * config/i386/i386.c (bdesc_ptest): Removed.
6302         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
6303         (bdesc_args): Add __builtin_ia32_ptestz128,
6304         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
6305         (ix86_init_mmx_sse_builtins): Updated.
6306         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
6307         (ix86_expand_builtin): Updated.
6308
6309 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
6310
6311         * tree-cfg.c (valid_fixed_convert_types_p): New function.
6312         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
6313
6314 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
6315
6316         * value-prof.c (interesting_stringop_to_profile): Do not
6317         return early for BUILT_IN_MEMPCPY.
6318
6319 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
6320
6321         * calls.c (expand_call): Don't use callgraph to increase
6322         preferred_stack_boundary.
6323
6324         * cgraph.h (cgraph_rtl_info): Use unsigned on
6325         preferred_incoming_stack_boundary.
6326
6327         * final.c (rest_of_clean_state): Use unsigned on
6328         preferred_stack_boundary.
6329
6330 2008-05-09  Tom Tromey  <tromey@redhat.com>
6331
6332         PR preprocessor/22231:
6333         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
6334         proceeding.
6335
6336 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
6337
6338         PR tree-optimization/36129
6339         * tree-ssa-ccp.c: Include value-prof.h.
6340         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
6341         built-in function was folded to a constant.
6342         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
6343
6344 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
6345             Sebastian Pop  <sebastian.pop@amd.com>
6346
6347         * tree-scalar-evolution.c: Document instantiate_scev.
6348         (instantiate_parameters_1): Renamed instantiate_scev_1.
6349         Don't use the same loop for instantiation_loop and evolution_loop.
6350         (instantiate_scev): New.
6351         (instantiate_parameters): Moved...
6352         (resolve_mixers): Update call to instantiate_scev_1 to pass the
6353         same loop twice.  Maintains the semantics for this function.
6354         * tree-scalar-evolution.h (instantiate_scev): Declare.
6355         (instantiate_parameters): ...here.  Now static inline.
6356         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
6357         instead of resolve_mixers.
6358
6359 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
6360
6361         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
6362
6363 2008-05-09  Tomas Bily  <tbily@suse.cz>
6364
6365         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
6366         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
6367         * tree-ssa-structalias.c (get_constraint_for): Likewise.
6368         * c-common.c (c_common_truthvalue_conversion): Likewise.
6369         * tree-object-size.c (compute_object_offset): Likewise.
6370         * tree-inline.c (estimate_num_insns_1): Likewise.
6371         * varasm.c (const_hash_1, compare_constant, copy_constant)
6372         (compute_reloc_for_constant, output_addressed_constants)
6373         (initializer_constant_valid_p): Likewise.
6374         * c-omp.c (check_omp_for_incr_expr): Likewise.
6375         * gimplify.c (gimplify_expr): Likewise.
6376         * c-typeck.c (c_finish_return): Likewise.
6377         * tree-vectorizer.c (supportable_widening_operation)
6378         (supportable_narrowing_operation): Likewise.
6379         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
6380         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
6381         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
6382         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
6383         (descr_info_loc): Likewise.
6384         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
6385         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
6386         (fold_unary): Likewise.
6387         * builtins.c (get_pointer_alignment): Likewise.
6388         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
6389         (instantiate_parameters_1): Likewise.
6390         * tree.c (expr_align, stabilize_reference): Likewise.
6391         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
6392         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6393         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
6394         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6395         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
6396         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
6397         Likewise.
6398         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
6399         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
6400         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
6401         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
6402         (forward_propagate_comparison)
6403         (tree_ssa_forward_propagate_single_use_vars): Likewise.
6404         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
6405         * emit-rtl.c (component_ref_for_mem_expr)
6406         (set_mem_attributes_minus_bitpos): Likewise.
6407         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
6408         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
6409         Likewise.
6410         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
6411         (build_function_call, pointer_diff, build_compound_expr)
6412         (c_finish_return): Likewise.
6413         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
6414         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
6415         Likewise.
6416         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
6417         * expr.c (is_aligning_offset): Likewise.
6418         * tree-ssa-alias.c (is_escape_site): Likewise.
6419         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
6420         (check_all_va_list_escapes): Likewise.
6421         * tree-ssa-loop-ivopts.c (determine_base_object)
6422         (determine_common_wider_type): Likewise.
6423         * dojump.c (do_jump): Likewise.
6424         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
6425         * tree-gimple.c (is_gimple_cast): Likewise.
6426         * fold-const.c (decode_field_reference, )
6427         (fold_sign_changed_comparison, fold_unary, fold_comparison)
6428         (fold_binary): Likewise.
6429         * tree-ssa-alias-warnings.c (find_alias_site_helper)
6430         (already_warned_in_frontend_p): Likewise.
6431         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
6432         * tree.c (really_constant_p, get_unwidened): Likewise.
6433         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
6434         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
6435         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
6436         Likewise.
6437         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
6438         CONVERT_EXPR_P.
6439         (CONVERT_EXPR_P): Define.
6440         (CASE_CONVERT): Define.
6441         
6442 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
6443
6444         PR middle-end/36117
6445         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
6446         (delete_unmarked_insns): When deleting a call, call
6447         delete_unreachable_blocks.
6448         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
6449         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
6450
6451 2008-05-08  Richard Guenther  <rguenther@suse.de>
6452
6453         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
6454         (-ftree-salias): Likewise.
6455         (salias-max-implicit-fields): Remove param documentation.
6456         (salias-max-array-elements): Likewise.
6457         * tree-pass.h (pass_create_structure_vars): Remove.
6458         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
6459         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
6460         * tree-ssa-alias.c (create_structure_vars): Remove.
6461         (gate_structure_vars): Likewise.
6462         (pass_create_structure_vars): Likewise.
6463         (gate_build_alias): Likewise.
6464         (pass_build_alias): Adjust to run always and dump the function.
6465         * common.opt (ftree-salias): Hide.
6466         * passes.c (init_optimization_passes): Remove
6467         pass_create_structure_vars, adjust comment.
6468         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
6469         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
6470         * opts.c (decode_options): Do not set flag_tree_salias.
6471         (common_handle_option): Add OPT_ftree_salias to the backward
6472         compatibility section.
6473
6474 2008-05-08  Richard Guenther  <rguenther@suse.de>
6475
6476         * tree-flow-inline.h (var_can_have_subvars): Move ...
6477         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
6478         * tree-flow.h (var_can_have_subvars): Remove.
6479         (push_fields_onto_fieldstack): Remove.
6480         (sort_fieldstack): Likewise.
6481         (struct fieldoff): Move ...
6482         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
6483         alias_set and base_for_components fields.
6484         (sort_fieldstack): Make static.
6485         (push_fields_onto_fieldstack): Likewise.  Remove code that
6486         handles anything but RECORD_TYPEs.  Remove alias_set and
6487         base_for_components handling.
6488         (create_variable_info_for): Adjust.
6489
6490 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
6491
6492         * common.opt (Wframe-larger-than=): Shorten the help message
6493         to one line.
6494         * doc/invoke.texi (Wframe-larger-than=): Add more description.
6495
6496 2008-05-08  Rafael Espindola  <espindola@google.com>
6497
6498         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
6499         trap.
6500         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
6501         trap and that both operands are gimple values.
6502         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
6503         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
6504         is a fp operation.
6505
6506 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6507
6508         * read-rtl.c (join_c_conditions): Return the first string if the
6509         two strings are equal.
6510
6511 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
6512
6513         * gensupport.h (pred_data): Add a "num_codes" field.
6514         (add_predicate_code): Declare.
6515         * gensupport.c (add_predicate_code): New function.
6516         (std_pred_table): Add an "allows_const_p" field.
6517         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
6518         Remove the (incomplete) list of such codes from the codes field.
6519         (init_predicate_table): Use add_predicate_code.  Add all
6520         RTX_CONST_OBJs if allows_const_p is true.
6521         * genrecog.c (process_define_predicate): Use add_predicate_code.
6522
6523 2008-05-08  David Daney  <ddaney@avtrex.com>
6524             Richard Sandiford  <rsandifo@nildram.co.uk>
6525         
6526         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
6527         special case of constant zero operands.
6528         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
6529         old and new values.  Special case constant zero values.
6530         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
6531         fails.
6532         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
6533         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
6534
6535 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
6536
6537         PR target/36090
6538         * simplify-rtx.c (simplify_plus_minus): Create CONST of
6539         similar RTX_CONST_OBJ before CONST_INT.
6540
6541 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
6542
6543         * stmt.c (expand_stack_restore): Change sa mode if needed.
6544
6545 2008-05-08  Richard Guenther  <rguenther@suse.de>
6546
6547         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
6548         return type to bool.
6549         (ix86_sol10_return_in_memory): Likewise.
6550         (ix86_i386elf_return_in_memory): Likewise.
6551         (ix86_i386interix_return_in_memory): Likewise.
6552         * config/i386/i386.c (ix86_return_in_memory): Likewise.
6553         (ix86_sol10_return_in_memory): Likewise.
6554         (ix86_i386elf_return_in_memory): Likewise.
6555         (ix86_i386interix_return_in_memory): Likewise.
6556
6557 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
6558
6559         PR bootstrap/36180
6560         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
6561         fndecl argument.
6562         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
6563         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
6564         declared in front.
6565
6566 2008-05-08  Richard Guenther  <rguenther@suse.de>
6567
6568         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
6569         * tree-data-ref.h (struct dr_alias): Remove subvars field.
6570         (DR_SUBVARS): Remove.
6571         * tree-dfa.c (dump_subvars_for): Remove.
6572         (debug_subvars_for): Likewise.
6573         (dump_variable): Do not dump subvars.
6574         (remove_referenced_var): Do not remove subvars.
6575         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
6576         (lookup_subvars_for_var): Remove.
6577         (get_subvars_for_var): Likewise.
6578         (get_subvars_at): Likewise.
6579         (get_first_overlapping_subvar): Likewise.
6580         (overlap_subvar): Likewise.
6581         * tree-flow.h (subvar_t): Remove.
6582         (struct var_ann_d): Remove subvars field.
6583         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
6584         argument.  Remove special handling of SFTs.
6585         (compute_tag_properties): Likewise.
6586         (set_initial_properties): Likewise.
6587         (compute_call_clobbered): Likewise.
6588         (count_mem_refs): Likewise.
6589         (compute_memory_partitions): Likewise.
6590         (compute_flow_insensitive_aliasing): Likewise.
6591         (setup_pointers_and_addressables): Likewise.
6592         (new_type_alias): Likewise.
6593         (struct used_part): Remove.
6594         (used_portions): Likewise.
6595         (struct used_part_map): Likewise.
6596         (used_part_map_eq): Likewise.
6597         (used_part_map_hash): Likewise.
6598         (free_used_part_map): Likewise.
6599         (up_lookup): Likewise.
6600         (up_insert): Likewise.
6601         (get_or_create_used_part_for): Likewise.
6602         (create_sft): Likewise.
6603         (create_overlap_variables_for): Likewise.
6604         (find_used_portions): Likewise.
6605         (create_structure_vars): Likewise.
6606         * tree.def (STRUCT_FIELD_TAG): Remove.
6607         * tree.h (MTAG_P): Adjust.
6608         (struct tree_memory_tag): Remove base_for_components and
6609         unpartitionable flags.
6610         (struct tree_struct_field_tag): Remove.
6611         (SFT_PARENT_VAR): Likewise.
6612         (SFT_OFFSET): Likewise.
6613         (SFT_SIZE): Likewise.
6614         (SFT_NONADDRESSABLE_P): Likewise.
6615         (SFT_ALIAS_SET): Likewise.
6616         (SFT_UNPARTITIONABLE_P): Likewise.
6617         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
6618         (union tree_node): Remove sft field.
6619         * alias.c (get_alias_set): Remove special handling of SFTs.
6620         * print-tree.c (print_node): Remove handling of SFTs.
6621         * tree-dump.c (dequeue_and_dump): Likewise.
6622         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
6623         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
6624         * tree-predcom.c (set_alias_info): Do not set subvars.
6625         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
6626         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
6627         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
6628         (add_vars_for_offset): Remove.
6629         (add_virtual_operand): Remove special handling of SFTs.
6630         (add_call_clobber_ops): Likewise.
6631         (add_call_read_ops): Likewise.
6632         (get_asm_expr_operands): Likewise.
6633         (get_modify_stmt_operands): Likewise.
6634         (get_expr_operands): Likewise.
6635         (add_to_addressable_set): Likewise.
6636         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
6637         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6638         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
6639         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
6640         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
6641         (tree_node_structure): Likewise.
6642         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
6643         handling of SFTs.
6644         (find_what_p_points_to): Likewise.
6645
6646 2008-05-08  Sa Liu  <saliu@de.ibm.com>
6647
6648         * config/spu/spu.md: Fixed subti3 pattern.
6649
6650 2008-05-08  Richard Guenther  <rguenther@suse.de>
6651
6652         PR middle-end/36154
6653         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
6654         sure to create a representative for trailing arrays for PTA.
6655
6656 2008-05-08  Richard Guenther  <rguenther@suse.de>
6657
6658         PR middle-end/36172
6659         * fold-const.c (operand_equal_p): Two objects which types
6660         differ in pointerness are not equal.
6661
6662 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
6663
6664         * calls.c (compute_argument_block_size): Add argument tree fndecl.
6665         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
6666         (emit_library_call_value_1): Add new variable fndecl initialized by
6667         NULL_TREE. It should be the decl type of orgfun, but this information
6668         seems not to be available here, so it uses the default calling abi.
6669         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
6670         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
6671         by TARGET_RETURN_IN_MEMORY.
6672         * config/i386/i386-interix.h: Likewise.
6673         * config/i386/i386.h: Likewise.
6674         * config/i386/i386elf.h: Likewise.
6675         * config/i386/ptx4-i.h: Likewise.
6676         * config/i386/sol2-10.h: Likewise.
6677         * config/i386/sysv4.h: Likewise.
6678         * config/i386/vx-common.h: Likewise.
6679         * config/cris/cris.h: Removed #if 0 clause.
6680         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
6681         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
6682         argument.
6683         (ix86_sol10_return_in_memory): Likewise.
6684         (ix86_i386elf_return_in_memory): New.
6685         (ix86_i386interix_return_in_memory): New.
6686         * config/mt/mt-protos.h (mt_return_in_memory): New.
6687         * config/mt/mt.c: Likewise.
6688         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
6689         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
6690         * config/bfin/bfin.h: Likewise.
6691         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
6692         argument.
6693         * config/bfin/bfin.c: Likewise.
6694         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
6695         * config/alpha/unicosmk.h: Likewise.
6696         * config/i386/cygming.h: Likewise.
6697         * config/iq2000/iq2000.h: Likewise.
6698         * config/mips/mips.h: Likewise.
6699         * config/mn10300/mn10300.h: Likewise.
6700         * config/rs6000/rs6000.h: Likewise.
6701         * config/score/score.h: Likewise.
6702         * config/spu/spu.h: Likewise.
6703         * config/v850/v850.h: Likewise.
6704         * defaults.h: Likewise.
6705         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
6706         * expr.c (emit_block_move): Adjust use of
6707         OUTGOING_REG_PARM_STACK_SPACE.
6708         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
6709         OUTGOING_REG_PARM_STACK_SPACE.
6710         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
6711
6712 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
6713
6714         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
6715         on OMP_RETURN for OMP_FOR.
6716
6717         PR debug/35896
6718         * dwarf2out.c (dw_expand_expr, common_check): Removed.
6719         (fortran_common): New function.
6720         (gen_variable_die): Call fortran_common instead of common_check,
6721         adjust for it returning tree instead of rtx.  Formatting.
6722
6723 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
6724
6725         PR rtl/7335
6726         PR rtl/33826
6727         * see.c (see_copy_insn): Copy new pure const attributes for new call.
6728         * c-decl.c (merge_decls): Ditto.
6729         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
6730         to RTL_CONST_OR_PURE_CALL_P.
6731         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
6732         Initialized DECL_LOOPING_CONST_PURE.
6733         (process_call_operands): Set tree_side_effects properly.
6734         * tree.h (TREE_READONLY_DECL_P): Removed.
6735         (DECL_IS_PURE): Renamed to DECL_PURE_P.
6736         (DECL_LOOPING_OR_CONST_P): New macro.
6737         (struct tree_function_decl): Added looping_const_or_pure_p.
6738         (ECF_*) Renumbered.
6739         (ECF_LOOPING_OR_CONST_P): New macro.
6740         * rtlanal.c (pure_const_p): Removed.
6741         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
6742         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
6743         to RTL_CONST_CALL_P.
6744         * ipa-pure-const.c (pure_const_state_e): Added looping field.
6745         (check_decl, check_tree, check_call, scan_function): Initialize
6746         looping.
6747         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
6748         (static_execute): Set looping true for recursive functions.
6749         Undo setting state to IPA_NEITHER for recursive functions.
6750         * cse.c (cse_insn): 
6751         * ifcvt.c (noce_can_store_speculate_p): Changed
6752         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
6753         RTL_CONST_OR_PURE_CALL_P.
6754         * dse.c (scan_insn): Ditto.
6755         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
6756         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
6757         RTL_CONST_OR_PURE_CALL_P.
6758         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
6759         pure_call_p to RTL_CONST_CALL_P.
6760         * gimplify.c (gimplify_call_expr): Clear side effects for
6761         non-looping pure and constant calls.
6762         * calls.c (emit_call_1): Set rtl flags from ecf flags.
6763         (flags_from_decl_or_type): Set ecf flags from decl flags.
6764         (initialize_argument_information): Turn off
6765         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
6766         Change const to pure if callee_copies is true rather than just
6767         turning off const.
6768         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
6769         way of marking pure calls.
6770         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
6771         Remove hack that was supposed to fix pr7335 and remove old
6772         way of marking pure calls.
6773         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
6774         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
6775         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
6776         RTL_CONST_OR_PURE_CALL_P.
6777         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
6778         * loop-invariant.c (find_exits, find_invariant_bb): Changed
6779         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
6780         * sched-deps.c (schedule_analyze): Ditto.
6781         * rtl.h (struct rtx_def): Use call field, unchanging field, and
6782         return_val field of calls to represent pure and const function info.
6783         (CONST_OR_PURE_CALL_P): Deleted macro.
6784         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
6785         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
6786         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
6787         TREE_READONLY.
6788         * tree-optimize.c (execute_fixup_cfg): Added test for
6789         ECF_LOOPING_CONST_OR_PURE.
6790         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
6791         DECL_PURE_P.
6792         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
6793         effects for looping pure or const calls.
6794         (verify_gimple_expr): Added verification code. 
6795         * config/alpha/alpha.c (alpha_legitimize_address,
6796         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
6797         RTL_CONST_CALL_P.
6798         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
6799         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
6800         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
6801         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
6802         RTL_CONST_OR_PURE_CALL_P.
6803         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
6804         and const calls to be deleted.
6805
6806 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
6807
6808         PR target/35714
6809         * config/i386/mmx.md (mmx_subv2sf3): New expander.
6810         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
6811         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
6812         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
6813         to handle nonimmediate operands.
6814         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
6815         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
6816         to handle nonimmediate operands.
6817         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
6818         (mmx_pmulhrwv4hi3): New expander.  Use
6819         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6820         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
6821         (sse2_umulv1siv1di3): New expander.  Use
6822         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6823         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
6824         (mmx_eq<mode>3): New expander.  Use
6825         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6826         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
6827         (mmx_uavgv8qi3): New expander.  Use
6828         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6829         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
6830         (mmx_uavgv4hi3): New expander.  Use
6831         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6832
6833         * config/i386/sse.md
6834         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
6835         to handle nonimmediate operands.
6836         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
6837         to handle nonimmediate operands.
6838         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
6839         to handle nonimmediate operands.
6840         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
6841         to handle nonimmediate operands.
6842         (sse2_unpckhpd_exp): New expander.  Use
6843         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6844         (sse2_unpcklpd_exp): New expander.  Use
6845         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6846         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
6847         to handle nonimmediate operands.
6848         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
6849         to handle nonimmediate operands.
6850         (*sse2_<plusminus_insn><mode>3): Rename from
6851         sse2_<plusminus_insn><mode>3 insn pattern.
6852         (sse2_<plusminus_insn><mode>3): New expander.  Use
6853         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6854         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
6855         (sse2_umulv2siv2di3): New expander.  Use
6856         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6857         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
6858         (sse4_1_mulv2siv2di3): New expander.  Use
6859         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6860         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
6861         (sse2_pmaddwd): New expander.  Use
6862         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6863         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
6864         (sse2_eq<mode>3): New expander.  Use
6865         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6866         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
6867         (sse4_1_eqv2di3): New expander.  Use
6868         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6869         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
6870         (sse2_uavgv16qi3): New expander.  Use
6871         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6872         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
6873         (sse2_uavgv16qi3): New expander.  Use
6874         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6875         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
6876         (sse2_uavgv8hi3): New expander.  Use
6877         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6878         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
6879         (ssse3_pmulhrswv8hi3): New expander.  Use
6880         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6881         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
6882         (ssse3_pmulhrswv4hi3): New expander.  Use
6883         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
6884
6885         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
6886         (<sse>_vmmul<mode>3): Ditto.
6887         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
6888         (divv2df3): Ditto.
6889         (ssse3_pmaddubsw128): Use register_operand for operand 1.
6890         (ssse3_pmaddubsw): Ditto.
6891
6892         * config/i386/i386.c (struct_builtin_description)
6893         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
6894         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
6895         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
6896         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
6897         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
6898         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
6899         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
6900         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
6901         (ix86_fixup_binary_operands): Assert that src1
6902         and src2 must have the same mode when swapped.
6903         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
6904         and ix86_binary_operator_ok.  Do not force operands in registers
6905         when optimizing.
6906
6907 2008-05-07  Jan Hubicka  <jh@suse.cz>
6908
6909         * cgraph.c (dump_cgraph_node): Update.
6910         * cgraph.h (cgraph_local_info): Break out inline summary.
6911         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
6912         hook.
6913         * ipa-inline (inline_summary): New accestor function.
6914         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
6915         cgraph_decide_inlining, compute_inline_parameters): Update.
6916         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
6917
6918 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
6919
6920         Cleanup ColdFire scheduling support and add V4 pipeline model.
6921
6922         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
6923         (define_attr cpu): Add cfv4 value.
6924         (define_attr type, define_attr type1): Merge into a single 'type'
6925         attribute.  Update all uses.
6926         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
6927         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
6928         Update all uses.
6929         (define_attr opx_mem, define_attr opy_mem): Remove.
6930         (define_attr op_mem): Clean up, update comment.
6931         (define_attr size): Use specific values instead of general int.
6932         (define_attr guess, define_attr split): Remove.  Update all uses.
6933         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
6934         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
6935         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
6936         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
6937         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
6938         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
6939         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
6940         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
6941         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
6942         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
6943         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
6944         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
6945         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
6946         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
6947         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
6948         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
6949         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
6950         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
6951         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
6952         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
6953         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
6954         Update or set attributes.
6955         (stack_tie): New fake instruction.
6956
6957         * config/m68k/m68k.h (TUNE_CFV4): New macro.
6958         (m68k_sched_attr_size): Update declaration.
6959         (m68k_sched_attr_type2): Remove.
6960         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
6961         Declare new bypass predicates.
6962
6963         * config/m68k/m68k.c (m68k_sched_issue_rate,
6964         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
6965         implementations.
6966         (TARGET_SCHED_ISSUE_RATE,
6967         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
6968         (override_options): Handle scheduling for ColdFire V4 core.
6969         (m68k_expand_prologue): Emit stack_tie.
6970         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
6971         'OP_TYPE_FPN'.  Update all uses.
6972         (sched_guess_p): Remove.
6973         (sched_address_type): Handle symbolic addresses.
6974         (sched_get_operand): New static function.
6975         (sched_operand_type): Merge into sched_attr_op_type.
6976         (sched_attr_op_type): Handle FP registers, handle quick constants,
6977         update.
6978         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
6979         (m68k_sched_attr_size): Update.  Move logic to ...
6980         (sched_get_attr_size_int): New static function.
6981         (sched_get_opxy_mem_type): New static function.
6982         (m68k_sched_attr_op_mem): Update.
6983         (m68k_sched_attr_type2): Remove.
6984         (sched_cfv4_bypass_data): New static variable.
6985         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
6986         (m68k_sched_issue_rate): Implement scheduler hook.
6987         (struct _sched_ib: enabled_p): New field.
6988         (m68k_sched_variable_issue): Update.  Handle V4.
6989         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
6990         sched_dump_class_func_t, sched_dump_split_class,
6991         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
6992         sched_dump_dfa_class, m68k_sched_dump): Remove.
6993         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
6994         hook.
6995         (m68k_sched_init_global): Remove statisctics dumping, introduce
6996         sanity check that all instructions have pipeline reservations.  Handle
6997         ColdFire V4 core.
6998         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
6999         Handle ColdFire V4 core.
7000         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
7001         New static functions.
7002         (m68k_sched_address_bypass_p): New bypass predicate.
7003         (sched_get_indexed_address_scale): New static function.
7004         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
7005
7006         * cf.md: Update comments.
7007         (define_attr type2): Remove.  Use 'type' attribute instead.
7008         Update all uses.
7009         (cf_ib): Rename to cfv123_ib.  Update all uses.
7010         (cf_oep): Rename to cfv123_oep.  Update all uses.
7011         (cf_chr): Rename to cfv123_chr.  Update all uses.
7012         (cf_mem): Rename to cfv123_mem.  Update all uses.
7013         (cf_mac): Move to more appropriate place.
7014         (cfv123_guess): New automaton and cpu_unit.
7015         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
7016         Update uses of 'size' attribute.  Handle before reload scheduling.
7017         (cfv123_guess): New dummy reservation for unhandled instructions.
7018         (cfv4_*): Pipeline description of ColdFire V4 core.
7019         (ignore): New reservation to handle 'ignore' type.
7020
7021 2008-05-07  Ian Lance Taylor  <iant@google.com>
7022
7023         PR middle-end/36013
7024         * gimplify.c (find_single_pointer_decl_1): Don't look through
7025         indirections.
7026         (find_single_pointer_decl): Adjust comments.
7027
7028 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
7029
7030         PR middle-end/36137
7031         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
7032         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
7033
7034         PR middle-end/36106
7035         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
7036         integral type rather than floating point, then VIEW_CONVERT_EXPR
7037         to the floating point type.
7038
7039 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7040
7041         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
7042         TFmode op0 to register.
7043
7044 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
7045
7046         * c-decl.c (grokdeclarator): Comment typo.
7047
7048 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
7049
7050         * tree-flow.h: Remove prototype for computed_goto_p.
7051         * tree-cfg.c (computed_goto_p): Make static.
7052
7053 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
7054
7055         PR target/35657
7056         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
7057         (contains_aligned_value_p): This.  Handle _Decimal128.
7058         (ix86_function_arg_boundary): Only align _Decimal128 to its
7059         natural boundary and handle it properly.
7060
7061 2008-05-06  Martin Jambor  <mjambor@suse.cz>
7062
7063         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
7064         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
7065         (ipcp_method_set_orig_node): Removed.
7066         (ipcp_cval_get_cvalue_type): Removed.
7067         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
7068         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
7069         (ipcp_cval_set_cvalue_type): Removed.
7070         (ipcp_cval_get_cvalue): Removed.
7071         (ipcp_cval_set_cvalue): Removed.
7072         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
7073         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
7074         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
7075         (ipcp_cval_meet): Renamed to ipa_lattice_meet
7076         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
7077         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
7078         (ipcp_get_ith_lattice): Changed parameters.
7079         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
7080         (ipcp_lattice_from_jfunc): Changed parameters.
7081         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
7082         (ipcp_method_cval_print): Added temporary variable info.
7083         (ipcp_redirect): Removed already unused local variable caller.
7084         (ipcp_redirect): New temporary variable orig_callee_info
7085         (ipcp_redirect): Removed newly unused local variable callee.
7086         (ipcp_redirect): Removed (a bit confusing) local variable type.
7087         (ipcp_insert_stage): Added local variable info.
7088         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
7089         renamed too
7090         (ipcp_formal_create): Removed.
7091         (ipcp_method_cval_set): Removed.
7092         (ipcp_propagate_stage): Renamed lattice variables.
7093         (ipcp_method_cval_set_cvalue_type): Removed.
7094         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
7095         (ipcp_print_all_lattices): Changed printed strings to refer to 
7096         lattices rather than cvals.
7097         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
7098         (ipcp_propagate_const): Changed formal parameters.
7099         (build_const_val): Changed formal parameters.
7100         (ipcp_insert_stage): Removed useless variable cvalue
7101         (build_const_val): Changed formal parameters.
7102         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
7103         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
7104         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
7105         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
7106         (ipcp_print_func_profile_counts): Changed string from "method" to 
7107         "function"
7108         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
7109         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
7110         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
7111         (ipcp_structures_print): Renamed to ipcp_print_all_structures
7112         (ipcp_profile_print): Renamed to ipcp_print_profile_data
7113         (ipcp_lat_is_const): Changed parameters and made inline.
7114         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
7115         (ipcp_redirect): Renamed to ipcp_need_redirect_p
7116         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
7117         the predicate condition directly
7118         (ipcp_propagate_stage): Added local variable args. Removed local
7119         variable callee.  (Both are mere code simplifications.)
7120         (ipcp_method_dont_insert_const): Renamed to
7121         ipcp_node_not_modifiable_p.
7122         (ipcp_node_not_modifiable_p): Made inline.
7123         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
7124         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
7125         (ipcp_print_all_lattices): Removed variable cvalue
7126         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
7127         Updated comments.
7128
7129 2008-05-06  Olivier Hainque  <hainque@adacore.com>
7130
7131         * tree-sra.c (try_instantiate_multiple_fields): Early return
7132         if field has POINTER_TYPE.
7133
7134 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
7135
7136         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
7137         by using 'q' specifier for instruction.
7138         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
7139
7140 2008-05-06  Anatoly Sokolov <aesok@post.ru>
7141
7142         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7143         Change mode of zero_extract from QImode to HImode.
7144         (sign bit tests peepholes): (Ditto.).
7145
7146 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
7147
7148         * config/i386/mmx.md: Remove double backslashes from asm templates.
7149         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
7150         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7151         to handle nonimmediate operands.
7152         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
7153         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7154         to handle nonimmediate operands.
7155         (*mmx_<code>v2sf3_finite): New insn pattern.
7156         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
7157         (mmx_<code>v2sf3): New expander.  Use
7158         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7159         (mmx_<plusminus_insn><mode>3): New expander.  Use
7160         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7161         (*mmx_<plusminus_insn><mode>3): New insn pattern.
7162         (mmx_add<mode>3): Removed.
7163         (mmx_ssadd<mode>3): Ditto.
7164         (mmx_usadd<mode>3): Ditto.
7165         (mmx_sub<mode>3): Ditto.
7166         (mmx_sssub<mode>3): Ditto.
7167         (mmx_ussub<mode>3): Ditto.
7168         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
7169         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
7170         to handle nonimmediate operands.
7171         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
7172         insn pattern.
7173         (mmx_smulv4hi3_highpart): New expander.  Use
7174         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7175         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
7176         insn pattern.
7177         (mmx_umulv4hi3_highpart): New expander.  Use
7178         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7179         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
7180         (mmx_<code>v4hi3): New expander.  Use
7181         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7182         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
7183         (mmx_<code>v8qi3): New expander.  Use
7184         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7185         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
7186         (mmx_<code><mode>3): New expander.  Use
7187         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7188
7189 2008-05-05  Jan Hubicka  <jh@suse.cz>
7190
7191         PR tree-optimization/36118
7192         * passes.c (pass_init_dump_file): Fix dump header.
7193
7194 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7195
7196         PR middle-end/36141
7197         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
7198         VCE for function decls.
7199
7200 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7201
7202         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
7203
7204 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
7205
7206         * config/i386/i386.md (sat_plusminus): New.
7207         (plusminus_insn): Likewise.
7208         (plusminus_mnemonic): Likewise.
7209         (addsub): Removed.
7210         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
7211         (*<addsub><mode>3_cc_overflow): Renamed to ...
7212         (*<plusminus_insn><mode>3_cc_overflow): This.
7213         (*<addsub>si3_zext_cc_overflow): Renamed to ...
7214         (*<plusminus_insn>si3_zext_cc_overflow): This.
7215
7216         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
7217         (<plusminus_insn><mode>3): This.
7218         (*<addsub><mode>3): Renamed to ...
7219         (*<plusminus_insn><mode>3): This.
7220         (<sse>_vm<addsub><mode>3): Renamed to ...
7221         (<sse>_vm<plusminus_insn><mode>3): This.
7222         (sse3_h<addsub>v4sf3): Renamed to ...
7223         (sse3_h<plusminus_insn>v4sf3): This.
7224         (sse3_h<addsub>v2df3): Renamed to ...
7225         (sse3_h<plusminus_insn>v2df3): This.
7226         (<plusminus_insn><mode>3): New.
7227         (*<plusminus_insn><mode>3): Likewise.
7228         (sse2_<plusminus_insn><mode>3): Likewise.
7229         (add<mode>): Removed.
7230         (*add<mode>3): Likewise.
7231         (sse2_ssadd<mode>3): Likewise.
7232         (sse2_usadd<mode>3): Likewise.
7233         (sub<mode>3): Likewise.
7234         (*sub<mode>3): Likewise.
7235         (sse2_sssub<mode>3): Likewise.
7236         (sse2_ussub<mode>3): Likewise.
7237
7238 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
7239
7240         * gthr-single.h: Add in required interface elements as per gthr.h.
7241         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
7242         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
7243         Generalize UNUSED macro. 
7244         (__gthread_once): Add.
7245         (__gthread_key_create): Add.
7246         (__gthread_key_delete): Add.
7247         (__gthread_getspecific): Add.
7248         (__gthread_setspecific): Add.
7249         
7250 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
7251
7252         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
7253         the same size types for the indirect reference on the rhs, then
7254         create a VCE.
7255
7256 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
7257
7258         * config/i386/i386.md
7259         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
7260         one insn template instead of template series.
7261         (*xordi_1_rex64): Ditto.
7262         (*xordi_2_rex64): Ditto.
7263
7264 2008-05-05  Ira Rosen  <irar@il.ibm.com>
7265
7266         PR tree-optimization/36119
7267         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
7268         in case of SLP.
7269
7270 2008-06-04  Jan Hubicka  <jh@suse.cz>
7271
7272         tree-optimization/36100
7273         * tree-pass.h (pass_O0_always_inline): Declare.
7274         * ipa-inline.c (inline_transform): Remove dead code.
7275         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
7276         pass_O0_always_inline): New.
7277         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
7278
7279 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
7280
7281         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
7282         mnemonic in this_param move for TARGET_64BIT.
7283
7284 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
7285
7286         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
7287         (*strmovsi_rex_1): Ditto.
7288         (*strsetsi_1): Ditto.
7289         (*strsetsi_rex_1): Ditto.
7290
7291         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
7292         adddicc expanders using SWI mode iterator.
7293
7294 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
7295
7296         PR target/36121
7297         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
7298         argument handling.
7299
7300 2008-05-04  David S. Miller  <davem@davemloft.net>
7301
7302         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
7303         (sparc*-*-linux*): Use linux.h in tm_file.
7304         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
7305         compiler defaulting to 32-bit.
7306         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
7307         no longer needed.
7308         * config/sparc/linux.h: Remove definitions now obtained
7309         properly from linux.h
7310         * config/sparc/linux64.h: Likewise.
7311         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
7312         don't want this setting for 32-bit builds in a biarch compiler.
7313         * doc/install.texi: Add sparc-linux to list of targets
7314         supporting --enable-targets=all.
7315
7316 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
7317
7318         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
7319
7320 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
7321
7322         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
7323         after V4SI_FTYPE_V8HI.
7324         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
7325         case V4SI_FTYPE_V2DF.
7326
7327 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
7328
7329         * doc/invoke.texi (max-flow-memory-locations): Removed.
7330         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
7331         
7332 2008-05-03  Richard Guenther  <rguenther@suse.de>
7333
7334         PR middle-end/34973
7335         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
7336
7337 2008-05-02  David S. Miller  <davem@davemloft.net>
7338
7339         * config.gcc (need_64bit_hwint): Document libcpp dependency.
7340
7341 2008-05-02  Simon Baldwin <simonb@google.com>
7342
7343         PR bootstrap/36108
7344         * c-common.h (warn_array_subscript_range): Removed.
7345         * c-common.c (warn_array_subscript_range): Ditto.
7346         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
7347         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
7348
7349 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
7350
7351         * config/i386/i386.c (ix86_special_builtin_type): New.
7352         (bdesc_special_args): Likewise.
7353         (ix86_expand_special_args_builtin): Likewise.
7354         (ix86_init_mmx_sse_builtins): Updated.
7355         (ix86_expand_builtin): Updated.
7356         (ix86_expand_store_builtin): Removed.
7357         (ix86_expand_unop_builtin): Likewise.
7358
7359         * config/i386/mm3dnow.h (__v2sf): Moved to ...
7360         * config/i386/mmintrin.h (__v2sf): Here.
7361
7362         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
7363         const __v2sf.
7364         (_mm_loadl_pi): Likewise.
7365         (_mm_storeh_pi): Replace __v2si with __v2sf.
7366         (_mm_storel_pi): Likewise.
7367
7368         * doc/extend.texi: Correct __builtin_ia32_loadhps,
7369         __builtin_ia32_loadlps, __builtin_ia32_storehps,
7370         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
7371         __builtin_ia32_loadlpd.
7372
7373 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
7374
7375         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
7376         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
7377         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
7378         (ix86_init_mmx_sse_builtins): Updated.
7379         (ix86_expand_args_builtin): Likewise.
7380         (ix86_expand_builtin): Likewise.
7381         (ix86_expand_unop1_builtin): Renamed to ...
7382         (ix86_expand_unop_vec_merge_builtin): This.
7383
7384 2008-05-01  Jan Hubicka  <jh@suse.cz>
7385
7386         PR bootstrap/36100
7387         * ipa-inline.c (inline_generate_summary): Make static.
7388         (inline_transform): Do not call inlining at -O0; make static.
7389         * passes.c (execute_todo): Add sanity check.
7390         (execute_one_ipa_transform_pass): Execute proper flags.
7391
7392 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
7393
7394         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
7395         (DECL_NONADDRESSABLE_P): Likewise.
7396         * alias.c (record_component_aliases): Fix comment.
7397
7398 2008-05-01  Simon Baldwin <simonb@google.com>
7399
7400         * c-common.h (warn_array_subscript_range): New function.
7401         * c-common.c (warn_array_subscript_range): Ditto.
7402         * tree-vrp.c (check_array_ref): Corrected code to agree with
7403         comment, ignoring only arrays of size 0 or size 1.
7404         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
7405
7406 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7407
7408         * config/i386/i386.c (ix86_builtin_type): Replace
7409         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
7410         (bdesc_args): Updated.
7411         (ix86_init_mmx_sse_builtins): Likewise.
7412         (ix86_expand_args_builtin): Likewise.
7413
7414         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
7415         with __v1di.
7416
7417         * doc/extend.texi: Correct __builtin_ia32_palignr.
7418
7419 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7420
7421         PR target/36095
7422         * config/i386/i386.c (bdesc_crc32): Removed.
7423         (ix86_expand_crc32): Likewise.
7424         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
7425         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
7426         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
7427         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
7428         UINT_FTYPE_UINT_UCHAR.
7429         (bdesc_args): Updated. Add crc32 builtins.
7430         (ix86_init_mmx_sse_builtins): Updated.
7431         (ix86_expand_args_builtin): Updated to support subreg.
7432
7433         * doc/extend.texi: Correct __builtin_ia32_crc32di.
7434
7435 2008-05-01  Jan Hubicka  <jh@suse.cz>
7436
7437         * tree-pass.h (opt_pass): Add IPA_PASS.
7438         (varpool_node, cgraph_node): Forward declare.
7439         (ipa_opt_pass): Define.
7440         (pass_ipa_inline): Turn into ipa_opt_pass.
7441         (pass_apply_inline): Remove.
7442         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
7443         (apply_inline): Turn into ....
7444         (inline_transform): ... this one.
7445         (inline_generate_summary): New function.
7446         (pass_apply_inline): Remove.
7447         * function.h (ipa_opt_pass): Forward declare structure; typedef;
7448         vector.
7449         (struct function): Add ipa_transforms_to_apply.
7450         * passes.c (register_one_dump_file): Work on IPA_PASS.
7451         (init_optimization_passes): Remove pass_inline_parameters and
7452         pass_apply_inline.
7453         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
7454         (execute_one_pass) ... here; apply transforms when possible.
7455         (add_ipa_transform_pass, execute_ipa_summary_asses,
7456         execute_one_ipa_transform_pass): New.
7457         (execute_ipa_pass_list): Update for IPA_PASS type.
7458
7459 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7460
7461         * config/i386/i386.c (ix86_builtin_type): Add
7462         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
7463         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
7464         (bdesc_args): Add SSE4a builtins.
7465         (ix86_init_mmx_sse_builtins): Updated.
7466         (ix86_expand_args_builtin): Likewise.
7467         (ix86_expand_builtin): Likewise.
7468
7469 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
7470
7471         * config/i386/i386.c (ix86_builtin_type): Add
7472         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
7473         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
7474         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
7475         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
7476         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
7477         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
7478         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
7479         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
7480         and DI_FTYPE_DI_DI_INT.
7481         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
7482         (ix86_init_mmx_sse_builtins): Updated.
7483         (ix86_expand_args_builtin): Likewise.
7484         (ix86_expand_builtin): Likewise.
7485         (ix86_expand_binop_imm_builtin): Removed.
7486
7487         * doc/extend.texi: Correct __builtin_ia32_palignr128.
7488
7489 2008-04-30  Richard Guenther  <rguenther@suse.de>
7490
7491         PR tree-optimization/32921
7492         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
7493
7494 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
7495
7496         * config/arm/arm.c (arm_unwind_emit): Use
7497         crtl->all_throwers_are_sibcalls instead of
7498         cfun->all_throwers_are_sibcalls.
7499         (arm_output_fn_unwind): Likewise.
7500         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
7501         instead of cfun->uses_pic_offset_table.
7502         (frv_expand_prologue): Likewise.
7503         (frv_frame_pointer_required): Likewise.
7504         (frv_expand_fdpic_call): Likewise.
7505         (frv_emit_movsi): Likewise.
7506         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
7507         cfun->returns_pcc_struct instead of
7508         current_function_returns_pcc_struct.
7509         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
7510         instead of cfun->calls_eh_return.
7511         (m32c_pushm_popm): Likewise.
7512         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
7513         "extern" declaration.
7514
7515 2008-04-30  Richard Guenther  <rguenther@suse.de>
7516
7517         PR tree-optimization/21636
7518         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
7519         constant address.
7520         (evaluate_stmt): Print the likely value.
7521         (ccp_visit_stmt): Avoid excessive vertical spacing.
7522
7523 2008-04-30  Rafael Espindola  <espindola@google.com>
7524
7525         * builtins.c (fold_call_expr): Return realret.
7526         * tree-ssa-threadedge.c
7527         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
7528         __builtin_object_size.
7529
7530 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
7531
7532         * gcc.c (wrapper_string): New variable.
7533         (insert_wrapper): New function.
7534         (execute): New option -wrapper.
7535         * doc/invoke.texi (Overall Options): New driver option -wrapper.
7536
7537 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
7538
7539         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
7540         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
7541         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
7542         from...
7543         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
7544         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
7545         config/rs6000/e500crtres64gprctr.asm,
7546         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
7547         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
7548         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
7549         config/rs6000/e500crtsav64gprctr.asm,
7550         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
7551         config/rs6000/e500crtsavg64gprctr.asm: New files.
7552         * config/rs6000/t-ppccomm: Add build rules for new files.
7553         (LIB2FUNCS_STATIC_EXTRA): Add new files.
7554         * config/rs6000/t-netbsd: Add build rules for new files.
7555         (LIB2FUNCS_STATIC_EXTRA): New variable.
7556         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
7557         (CRTSAVRES_DEFAULT_SPEC): Likewise.
7558         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
7559
7560 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
7561
7562         * config/i386/i386.c (ix86_builtin_type): Add
7563         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
7564         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
7565         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
7566         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
7567         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
7568         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
7569         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
7570         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
7571         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
7572         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
7573         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
7574         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
7575         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
7576         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
7577         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
7578         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
7579         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
7580         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
7581         V1DI_FTYPE_V2SI_V2SI.
7582         (bdesc_2arg): Moved to ...
7583         (bdesc_args): Here.
7584         (ix86_init_mmx_sse_builtins): Updated.
7585         (ix86_expand_args_builtin): Updated.  Take a pointer
7586         to const struct builtin_description.  Handle comparison
7587         builtin functions.
7588         (ix86_expand_sse_compare): Take a new argument for swapping operands.
7589         (ix86_expand_builtin): Updated.
7590
7591         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
7592         (ssse3_pmaddubsw128): This.
7593         (ssse3_pmaddubswv4hi3): Renamed to ...
7594         (ssse3_pmaddubsw): This.
7595
7596         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
7597         (__builtin_ia32_packssdw128): Likewise.
7598         (__builtin_ia32_packuswb128): Likewise.
7599         (__builtin_ia32_pmaddubsw): Likewise.
7600         (__builtin_ia32_pmaddubsw128): Likewise.
7601
7602 2008-04-30  Richard Guenther  <rguenther@suse.de>
7603
7604         PR tree-optimization/14847
7605         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
7606         (recognize_bits_test): Use it.
7607         (recognize_single_bit_test): Likewise.
7608
7609 2008-04-30  Martin Jambor  <mjambor@suse.cz>
7610
7611         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
7612         instead of setting number of formal parameters to zero.
7613         (ipcp_init_stage): Do not set the number of actual parameters to zero 
7614         either.
7615         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
7616         which are called with variable number of arguments.
7617         (ipcp_insert_stage): Explicitely skipping all nodes which are
7618         called with variable number of arguments.
7619         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
7620         number of parameters.
7621
7622         * ipa-prop.h (struct ipa_node_params): Added flag
7623         called_with_var_arguments
7624         (ipa_set_param_count): Added.  Changed sole setter to use it.
7625         (ipa_get_param_count): Added.  All readers of param_count
7626         converted to use it instead.
7627         (ipa_set_called_with_variable_arg): Added.
7628         (ipa_is_called_with_var_arguments): Added.
7629         (ipa_get_ith_param): Added.  All readers of param_decls converted
7630         to use it instead.
7631         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
7632         changed to use it. 
7633         (ipa_get_cs_argument_count): Added, all readers of argument_count
7634         changed to cal it.
7635         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
7636         to use it.
7637         
7638         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
7639         (struct ipcp_lattice): Renamed cval_type to type
7640         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
7641
7642         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
7643         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
7644         (ipcp_insert_stage): Changed the type of variable cvalue to tree
7645         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
7646         (build_const_val): Changed the type of parameter cvalue to tree
7647         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
7648         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
7649         
7650         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
7651         constant 
7652
7653         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
7654         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
7655         (ipa_add_method): Renamed to ipa_push_func_to_list
7656         (ipa_remove_method): Renamed to ipa_pop_func_from_list
7657         (ipa_callsite_param_count): Removed.
7658         (ipa_callsite_param_count_set): Removed.
7659         (ipa_callsite_param): Removed.
7660         (ipa_callsite_callee): Removed.
7661         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
7662         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
7663         (ipa_method_formal_count): Removed.
7664         (ipa_method_formal_count_set): Removed.
7665         (ipa_method_get_tree): Removed.
7666         (ipa_method_tree_map_create): Removed.
7667         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
7668         (ipa_create_param_decls_array): Creates the array itself
7669         (ipa_create_param_decls_array): Temporary variable info instead of 
7670         a few dereferences.
7671         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
7672         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
7673         (get_type): Removed.
7674         (ipa_jf_get_info_type): Removed.
7675         (ipa_node_create): Renamed to ipa_create_node_params
7676         (ipa_free): Renamed to ipa_free_all_node_params
7677         (ipa_nodes_create): Renamed to ipa_create_all_node_params
7678         (ipa_edges_create): Renamed to ipa_create_all_edge_args
7679         (ipa_edges_free): Renamed to ipa_free_all_edge_args
7680         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
7681         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
7682         ipa_free_all_edge_args
7683         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
7684         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
7685         (ipa_create_methodlist_node): Removed.
7686         (ipa_methodlist_method): Removed.
7687         (ipa_methodlist_method_set): Removed.
7688         (ipa_methodlist_next_method): Removed.
7689         (ipa_methodlist_next_method_set): Removed.
7690         (ipa_method_is_modified): Removed.
7691         (ipa_method_modify_create): Removed.
7692         (ipa_method_modify_init): Temporary variable info instead of a few 
7693         dereferences.
7694         (ipa_detect_param_modifications): Temporary variable info instead of 
7695         a few dereferences.
7696         (ipa_compute_jump_functions): Temporary variable info instead of 
7697         a few dereferences.
7698         (ipa_method_modify_set): Removed.
7699         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
7700         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
7701         than craph_node as the first parameter.
7702         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
7703         (ipa_method_modify_init): Removed.
7704         (ipa_compute_jump_functions): Added a temp variable instead of 
7705         repeatadly dereferencing the cgraph_edge.aux pointer
7706         (ipa_callsite_param_set_type): Removed.
7707         (ipa_compute_jump_functions): i renamed to index and moved to 
7708         an inner block
7709         (ipa_callsite_param_set_info_type_formal): Removed.
7710         (ipa_callsite_param_set_info_type): Removed.
7711         (ipa_callsite_param_map_create): Removed.
7712         (ipa_callsite_tree): Removed.
7713         (ipa_callsite_caller): Removed.
7714         (ipa_pop_func_from_list): return_method removed to return_func
7715
7716         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
7717         prefixed all values with IPA_. Changed all users.
7718         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
7719         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
7720         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
7721         (union parameter_info): Renamed to jump_func_value.
7722         (union jump_func_value): Renamed value to constant
7723         (struct ipa_jump_func): Renamed info_type to value
7724         (struct ipa_node): Renamed to ipa_node_params
7725         (struct ipa_node_params): Renamed ipa_arg_num to param_count
7726         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
7727         (struct ipa_node_params): Renamed ipa_mod to modified_flags
7728         (struct ipa_edge): Renamed to ipa_edge_args
7729         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
7730         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
7731         (struct ipa_methodlist): Renamed to ipa_func_list
7732         (struct ipa_func_list): method_p renamed to node, next_method
7733         renamed to next
7734         (ipa_methodlist_p): Removed, switched all users to struct pointer
7735         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
7736
7737 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
7738
7739         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
7740         (rs6000_emit_epilogue): Use backchain to restore only when we
7741         have a large frame.  Make use of frame pointer to restore if we
7742         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
7743
7744 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
7745
7746         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
7747         Add mode to zero_extract.
7748         (sign bit tests peepholes): (Ditto.).
7749
7750 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
7751
7752         * config/i386/i386.c (ix86_builtins): Replace Prescott New
7753         Instructions in comments with SSE3.
7754         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
7755         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
7756         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
7757         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
7758         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
7759         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
7760         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
7761         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
7762         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
7763         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
7764         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
7765         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
7766         (bdesc_sse_args): Renamed to ...
7767         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
7768         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
7769         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
7770         IX86_BUILTIN_FABSQ.
7771         (bdesc_1arg): Moved to ...
7772         (bdesc_args): Here.
7773         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
7774         Instructions in comments with SSE3.
7775         (ix86_expand_sse_operands_builtin): Renamed to ...
7776         (ix86_expand_args_builtin): This.  Updated.
7777         (ix86_expand_unop1_builtin): Update comments.
7778         (ix86_expand_builtin): Updated.
7779
7780 2008-04-29  Richard Guenther  <rguenther@suse.de>
7781
7782         PR tree-optimization/36078
7783         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
7784         Update virtual SSA form after cleaning up the CFG.
7785
7786 2008-04-29  Richard Guenther  <rguenther@suse.de>
7787
7788         PR middle-end/15255
7789         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
7790
7791 2008-04-29  Richard Guenther  <rguenther@suse.de>
7792
7793         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
7794         (compute_may_aliases): Do not call finalize_ref_all_pointers.
7795         (compute_flow_insensitive_aliasing): Do not treat
7796         PTR_IS_REF_ALL pointers special.
7797         (get_smt_for): Likewise.
7798         (may_alias_p): Re-structure.
7799         (is_escape_site): A ref-all pointer conversion is not an escape site.
7800         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
7801         PTR_IS_REF_ALL pointers special.
7802         * tree-ssa-structalias.h (struct alias_info): Remove
7803         ref_all_symbol_mem_tag field.
7804         (PTR_IS_REF_ALL): Remove.
7805
7806 2008-04-29  Richard Guenther  <rguenther@suse.de>
7807
7808         PR middle-end/36077
7809         * fold-const.c (extract_muldiv_1): In combining division constants
7810         make sure to never overflow.
7811
7812 2008-04-29  Nick Clifton  <nickc@redhat.com>
7813
7814         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
7815
7816 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7817
7818         PR bootstrap/35169
7819         * optc-gen.awk: Work around HP-UX/IA awk bug.
7820
7821 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
7822
7823         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
7824         2008-04-25 commit.
7825
7826 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
7827
7828         PR target/36073
7829         * config/i386/i386.md
7830         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
7831         Change operand 1 predicate to nonimmediate_operand.
7832
7833 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
7834
7835         PR debug/36060
7836         * dwarf2out.c (struct die_struct): Mark as chain_circular through
7837         die_sub field.
7838         * gengtype.c (walk_type, write_func_for_structure): Handle
7839         chain_circular.
7840         * doc/gty.texi: Document chain_circular.
7841
7842 2008-04-28  Richard Guenther  <rguenther@suse.de>
7843
7844         PR tree-optimization/36066
7845         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
7846         SCEV and loop.
7847
7848 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
7849
7850         PR target/36064
7851         * config/i386/i386.md
7852         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
7853         Use match_scratch instead of match_operand for operands 3 and 4.
7854
7855 2008-04-27  Richard Guenther  <rguenther@suse.de>
7856
7857         PR tree-optimization/18754
7858         PR tree-optimization/34223
7859         * tree-pass.h (pass_complete_unrolli): Declare.
7860         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
7861         loop size before and after unconditionally of UL_NO_GROWTH in effect.
7862         Rewrite loop into loop closed SSA form if it is not already.
7863         (tree_unroll_loops_completely): Re-structure to iterate over
7864         innermost loops with intermediate CFG cleanups.
7865         Unroll outermost loops only if requested or the code does not grow
7866         doing so.
7867         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
7868         loops are available.
7869         (tree_vectorize): Instead do so here.
7870         (tree_complete_unroll): Also unroll outermost loops.
7871         (tree_complete_unroll_inner): New function.
7872         (gate_tree_complete_unroll_inner): Likewise.
7873         (pass_complete_unrolli): New pass.
7874         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
7875         uses outside of the loop.
7876         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
7877         form if it is available.  
7878         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
7879         * passes.c (init_optimization_passes): Schedule complete inner
7880         loop unrolling pass before the first CCP pass after final inlining.
7881
7882 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
7883
7884         * targhooks.h (default_emutls_var_fields,
7885         default_emutls_var_init): Declare.
7886         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
7887         * target.h (struct gcc_target): Add struct emutls member.
7888         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
7889         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
7890         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
7891         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
7892         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
7893         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
7894         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
7895         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
7896         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
7897         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
7898         emit debug information.
7899         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
7900         * varasm.c: Include targhooks.h.
7901         (emutls_object_section, emutls_tmpl_section): New.
7902         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
7903         (EMUTLS_SEPARATOR): New.
7904         (prefix_name): New.
7905         (get_emutls_object_name): New.
7906         (default_emutls_var_fields): New, broken out of ...
7907         (get_emutls_object_type): ... here.  Adjust to use target hooks.
7908         (get_emutls_init_templ_addr): Adjust to use target hooks.
7909         (emutls_decl): Adjust to use target hooks.
7910         (emutls_finish): Likewise.
7911         (default_emutls_var_init): New, broken out of ...
7912         (assemble_variable): ... here.  Adjust to use target hooks.
7913         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
7914         SECCAT_EMUTLS_TMPL.
7915         * c-common.c (handle_section_attribute): Prevent overriding
7916         sections for emulated tls with special sections.
7917         * config/i386/i386.c (x86_64_elf_select_section): Add
7918         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
7919         (x86_64_elf_unique_section): Likewise.
7920         * config/vxworks.c: Include tree.h.
7921         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
7922         (vxworks_override_options): Set TLS scheme.
7923         * doc/tm.texi (Emulated TLS): New node.
7924
7925 2008-04-26  Simon Baldwin <simonb@google.com>
7926
7927         PR c/35652
7928         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
7929         with propagated string constants.
7930
7931 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
7932
7933         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
7934         constraint for operand 2 when operand 0 is memory operand.
7935         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
7936         operand 0 is memory operand.
7937         (fix_trunc<mode>_i387_with_temp): Ditto.
7938         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
7939         operand 2 when operand 1 is memory operand.
7940         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
7941         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
7942         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
7943         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7944         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
7945         operands 2,3 and 4 when operand 1 is memory operand.
7946         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
7947         is memory operand.
7948         (fistdi2_floor_with_temp): Ditto.
7949         (fist<mode>2_floor_with_temp): Ditto.
7950         (fistdi2_ceil_with_temp): Ditto.
7951         (fist<mode>2_ceil_with_temp): Ditto.
7952         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
7953
7954 2008-04-26  David Daney  <ddaney@avtrex.com>
7955
7956         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
7957         unspec_volitile.
7958         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
7959         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
7960         UNSPEC_UPDATE_GOT_VERSION): Renumber.
7961         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
7962         (compare_and_swap_12): New insn.
7963         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
7964         * config/mips/mips.c (mips_force_binary): New function.
7965         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
7966         (mips_expand_compare_and_swap_12): New function.
7967         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
7968
7969 2008-04-25  Jan Hubicka  <jh@suse.cz>
7970
7971         PR testsuite/35843
7972         * cfgexpand.c (pass_expand): Turn into RTL pass.
7973         * passes.c (execute_one_pass): Do pass typechecking after execution.
7974         * tree-pass.h (pass_expand): Turn into RTL pass.
7975
7976         * function.h (struct rtl_data): Move here fields
7977         accesses_prior_frames, calls_eh_return, saves_all_registers,
7978         has_nonlocal_goto, has_asm_statement, is_thunk,
7979         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
7980         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
7981         arg_pointer_save_area_init from struct function; turn into bool.
7982         (struct function): Move
7983         calls_eh_return, saves_all_registers, has_nonlocal_goto,
7984         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
7985         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
7986         tail_call_emit, arg_pointer_save_area_init
7987         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
7988         (current_function_returns_struct, current_function_returns_pcc_struct,
7989         current_function_calls_setjmp, current_function_calls_alloca,
7990         current_function_accesses_prior_frames,
7991         current_function_calls_eh_return, current_function_is_thunk,
7992         current_function_stdarg, current_function_profile,
7993         current_function_limit_stack, current_function_uses_pic_offset_table,
7994         current_function_uses_const_pool, current_function_has_nonlocal_label,
7995         current_function_saves_all_registers,
7996         current_function_has_nonlocal_goto,
7997         current_function_has_asm_statement): Remove accesor macros.
7998         * ra-conflict.c (global_conflicts): Update.
7999         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
8000         (suitable_for_tail_call_opt_p): Update.
8001         * builtins.c (expand_builtin_return_addr): Update.
8002         (expand_builtin_setjmp_setup): Update.
8003         (expand_builtin_nonlocal_goto): Update.
8004         * final.c (final_start_function): Update.
8005         (profile_function): Update.
8006         (leaf_function_p): Update.
8007         (only_leaf_regs_used): Update.
8008         * df-scan.c (df_get_exit_block_use_set): Update.
8009         * dojump.c (clear_pending_stack_adjust): Update.
8010         * tree-stdarg.c (gate_optimize_stdarg): Update.
8011         * gimple-low.c (lower_function_body): Update.
8012         * global.c (compute_regsets): Update.
8013         (global_alloc): Update.
8014         * dwarf2out.c (dwarf2out_begin_prologue): Update.
8015         * expr.c (expand_assignment): Update.
8016         * dse.c (dse_step0): Update.
8017         (dse_step1): Update.
8018         * c-decl.c (store_parm_decls): Update.
8019         * local-alloc.c (combine_regs): Update.
8020         (find_free_reg): Update.
8021         * function.c (assign_parms_augmented_arg_list): Update.
8022         (assign_parm_find_data_types): Update.
8023         (assign_parms): Update.
8024         (allocate_struct_function): Update.
8025         (expand_function_start): Update.
8026         (expand_function_end): Update.
8027         (get_arg_pointer_save_area): Update.
8028         (thread_prologue_and_epilogue_insns): Update.
8029         (rest_of_match_asm_constraints): Update.
8030         * stor-layout.c (variable_size): Update.
8031         * gcse.c (gcse_main): Update.
8032         (bypass_jumps): Update.
8033         * gimplify.c (gimplify_function_tree): Update.
8034         * calls.c (emit_call_1): Update.
8035         (expand_call): Update.
8036         * bt-load.c (compute_defs_uses_and_gen): Update.
8037         * except.c (sjlj_assign_call_site_values): Update.
8038         (sjlj_emit_function_enter): Update.
8039         (can_throw_external): Update.
8040         (set_nothrow_function_flags): Update.
8041         (expand_builtin_unwind_init): Update.
8042         (expand_eh_return): Update.
8043         (convert_to_eh_region_ranges): Update.
8044         (output_function_exception_table): Update.
8045         * emit-rtl.c (gen_tmp_stack_mem): Update.
8046         * cfgexpand.c (expand_used_vars): Update.
8047         (tree_expand_cfg): Update.
8048         * cfgcleanup.c (rest_of_handle_jump): Update.
8049         * explow.c (allocate_dynamic_stack_space): Update.
8050         * varasm.c (assemble_start_function): Update.
8051         (force_const_mem): Update.
8052         (mark_constant_pool): Update.
8053         * tree-optimize.c (tree_rest_of_compilation): Update.
8054         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
8055         * tree-cfg.c (notice_special_calls): Update.
8056         (is_ctrl_altering_stmt): Update.
8057         (tree_can_make_abnormal_goto): Update.
8058         (tree_purge_dead_abnormal_call_edges): Update.
8059         * config/alpha/predicates.md: Update.
8060         * config/alpha/alpha.c (alpha_sa_mask): Update.
8061         (alpha_sa_size): Update.
8062         (alpha_does_function_need_gp): Update.
8063         (alpha_expand_prologue): Update.
8064         (alpha_start_function): Update.
8065         (alpha_output_function_end_prologue): Update.
8066         (alpha_expand_epilogue): Update.
8067         * config/frv/frv.c (frv_stack_info): Update.
8068         (frv_expand_epilogue): Update.
8069         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
8070         (s390_register_info): Update.
8071         (s390_frame_info): Update.
8072         (s390_init_frame_layout): Update.
8073         (s390_can_eliminate): Update.
8074         (save_gprs): Update.
8075         * config/spu/spu.c (spu_split_immediate): Update.
8076         (need_to_save_reg): Update.
8077         (spu_expand_prologue): Update.
8078         (spu_expand_epilogue): Update.
8079         * config/sparc/sparc.md: Update.
8080         * config/sparc/sparc.c (eligible_for_return_delay): Update.
8081         (sparc_tls_got): Update.
8082         (legitimize_pic_address): Update.
8083         (sparc_emit_call_insn): Update.
8084         (sparc_expand_prologue): Update.
8085         (output_return): Update.
8086         (print_operand): Update.
8087         (sparc_function_ok_for_sibcall): Update.
8088         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
8089         * config/m32r/m32r.md: Update.
8090         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
8091         (m32r_compute_frame_size): Update.
8092         (m32r_expand_prologue): Update.
8093         (m32r_expand_epilogue): Update.
8094         (m32r_legitimize_pic_address): Update.
8095         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
8096         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8097         * config/i386/i386.c (ix86_frame_pointer_required): Update.
8098         (gen_push): Update.
8099         (ix86_save_reg): Update.
8100         (ix86_compute_frame_layout): Update.
8101         (ix86_expand_prologue): Update.
8102         (ix86_expand_epilogue): Update.
8103         * config/sh/sh.c (output_stack_adjust): Update.
8104         (calc_live_regs): Update.
8105         (sh5_schedule_saves): Update.
8106         (sh_expand_prologue): Update.
8107         (sh_expand_epilogue): Update.
8108         (sh_setup_incoming_varargs): Update.
8109         (sh_allocate_initial_value): Update.
8110         (sh_get_pr_initial_val): Update.
8111         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
8112         * config/sh/sh.md (label:): Update.
8113         * config/avr/avr.c (out_movhi_mr_r): Update.
8114         * config/crx/crx.h (enum): Update.
8115         * config/xtensa/xtensa.h (along): Update.
8116         * config/stormy16/stormy16.c Update.
8117         (xstormy16_compute_stack_layout): Update.
8118         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
8119         (fr30_expand_prologue): Update.
8120         * config/cris/cris.c (cris_conditional_register_usage): Update.
8121         (cris_reg_saved_in_regsave_area): Update.
8122         (cris_initial_frame_pointer_offset): Update.
8123         (cris_simple_epilogue): Update.
8124         (cris_expand_prologue): Update.
8125         (cris_expand_epilogue): Update.
8126         (cris_expand_pic_call_address): Update.
8127         (cris_asm_output_symbol_ref): Update.
8128         (cris_asm_output_label_ref): Update.
8129         * config/cris/cris.md Update.
8130         * config/iq2000/iq2000.c (compute_frame_size): Update.
8131         (iq2000_expand_epilogue): Update.
8132         * config/mt/mt.h (save_direction): Update.
8133         * config/mn10300/mn10300.c (mn10300_function_value): Update.
8134         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
8135         (ia64_secondary_reload_class): Update.
8136         * config/m68k/m68k.c (m68k_save_reg): Update.
8137         (m68k_expand_prologue): Update.
8138         (m68k_expand_epilogue): Update.
8139         (legitimize_pic_address): Update.
8140         * config/rs6000/rs6000.c (rs6000_got_register): Update.
8141         (first_reg_to_save): Update.
8142         (first_altivec_reg_to_save): Update.
8143         (compute_vrsave_mask): Update.
8144         (compute_save_world_info): Update.
8145         (rs6000_stack_info): Update.
8146         (spe_func_has_64bit_regs_p): Update.
8147         (rs6000_ra_ever_killed): Update.
8148         (rs6000_emit_eh_reg_restore): Update.
8149         (rs6000_emit_allocate_stack): Update.
8150         (rs6000_emit_prologue): Update.
8151         (rs6000_emit_epilogue): Update.
8152         (rs6000_output_function_epilogue): Update.
8153         (output_profile_hook): Update.
8154         (rs6000_elf_declare_function_name): Update.
8155         * config/rs6000/rs6000.h (rs6000_args): Update.
8156         * config/rs6000/rs6000.md: Update.
8157         * config/mcore/mcore.c (mcore_expand_prolog): Update.
8158         * config/arc/arc.c (arc_output_function_epilogue): Update.
8159         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
8160         * config/darwin.c (machopic_function_base_name): Update.
8161         * config/score/score3.c (score3_compute_frame_size): Update.
8162         (rpush): Update.
8163         (rpop): Update.
8164         (score3_epilogue): Update.
8165         * config/score/score7.c (score7_compute_frame_size): Update.
8166         (score7_prologue): Update.
8167         (score7_epilogue): Update.
8168         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
8169         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
8170         * config/arm/arm.c (use_return_insn): Update.
8171         (require_pic_register): Update.
8172         (arm_load_pic_register): Update.
8173         (arm_compute_save_reg0_reg12_mask): Update.
8174         (arm_compute_save_reg_mask): Update.
8175         (thumb1_compute_save_reg_mask): Update.
8176         (output_return_instruction): Update.
8177         (arm_output_function_prologue): Update.
8178         (arm_output_epilogue): Update.
8179         (arm_get_frame_offsets): Update.
8180         (arm_expand_prologue): Update.
8181         (thumb_pushpop): Update.
8182         (thumb_exit): Update.
8183         (thumb1_expand_prologue): Update.
8184         (thumb1_expand_epilogue): Update.
8185         (arm_unwind_emit): Update.
8186         (arm_output_fn_unwind): Update.
8187         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
8188         * config/arm/arm.md: Update.
8189         * config/pa/pa.md: Update.
8190         * config/pa/pa.c (legitimize_pic_address): Update.
8191         (compute_frame_size): Update.
8192         (hppa_expand_prologue): Update.
8193         (hppa_expand_epilogue): Update.
8194         (borx_reg_operand): Update.
8195         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
8196         (HARD_REGNO_RENAME_OK): Update.
8197         * config/mips/mips.c (mips_global_pointer): Update.
8198         (mips_save_reg_p): Update.
8199         (mips_compute_frame_info): Update.
8200         (mips_frame_pointer_required): Update.
8201         (mips_expand_prologue): Update.
8202         (mips_expand_epilogue): Update.
8203         (mips_can_use_return_insn): Update.
8204         (mips_reorg_process_insns): Update.
8205         * config/v850/v850.c (compute_register_save_size): Update.
8206         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
8207         * config/mmix/mmix.c (along): Update.
8208         (mmix_expand_epilogue): Update.
8209         * config/bfin/bfin.c (legitimize_pic_address): Update.
8210         (must_save_p): Update.
8211         (stack_frame_needed_p): Update.
8212         (add_to_reg): Update.
8213         (bfin_expand_prologue): Update.
8214         * stmt.c (expand_asm_operands): Update.
8215         * reload1.c (reload): Update.
8216         (init_elim_table): Update.
8217
8218 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
8219         
8220         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
8221         
8222 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
8223
8224         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
8225         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
8226         (mov<mode>): Removed.
8227         (*movv4sf_internal): Likewise.
8228         (*movv2df_internal): Likewise.
8229
8230 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
8231
8232         * config.gcc (crx-*-elf): Remove deprecation.
8233
8234 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
8235
8236         * config/i386/cygming-crtend.c (register_frame_ctor): Register
8237         __gcc_deregister_frame with atexit.
8238         (deregister_frame_dtor): Remove.
8239
8240 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
8241             Nathan Sidwell  <nathan@codesourcery.com>
8242
8243         * config/rs6000/rs6000.opt (mspe): Remove Var property.
8244         (misel): Likewise.
8245         * config/rs6000/rs6000.h (rs6000_spe): Declare.
8246         (rs6000_isel): Likewise.
8247         * config/rs6000/rs6000.c (rs6000_spe): New variable.
8248         (rs6000_isel): New variable.
8249         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
8250
8251 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8252
8253         PR c++/35758
8254         * c-common.c (handle_vector_size_attribute): Call
8255         lang_hooks.types.reconstruct_complex_type instead of
8256         reconstruct_complex_type.
8257         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
8258         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
8259         * langhooks.h (struct lang_hooks_for_types): Add
8260         reconstruct_complex_type hook.
8261         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
8262         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
8263
8264 2008-04-24  Richard Guenther  <rguenther@suse.de>
8265
8266         * c-common.h (check_builtin_function_arguments): Declare.
8267         * c-common.c (validate_nargs): New function.
8268         (check_builtin_function_arguments): Likewise.
8269         * c-typeck.c (build_function_call): Call
8270         check_builtin_function_arguments.
8271         * builtins.c (fold_builtin_classify): Remove error reporting code.
8272         (fold_builtin_unordered_cmp): Likewise.
8273         (fold_builtin_1): Likewise.
8274         (fold_builtin_n): Likewise.
8275
8276 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8277
8278         PR tree-optimization/36008
8279         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
8280         the original op1, rather than delta by step.
8281
8282 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
8283             Sebastian Pop  <sebastian.pop@amd.com>
8284
8285         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
8286         eliminate_local_variables_stmt, eliminate_local_variables,
8287         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
8288         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
8289         of code delimited by two edges in the CFG.
8290         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
8291         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
8292         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
8293         the case of parallelisation of reductions.
8294         (expr_invariant_in_region_p): New.
8295
8296         * tree-flow.h (gather_blocks_in_sese_region): Declared.
8297         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
8298
8299 2008-04-24  Ira Rosen  <irar@il.ibm.com>
8300             Richard Guenther  <rguenther@suse.de>
8301
8302         PR tree-optimization/36034
8303         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
8304         incapable of dealing with loads with gaps.
8305
8306 2008-04-24  Rafael Espindola  <espindola@google.com>
8307
8308         * tree-flow.h (vrp_evaluate_conditional): Change signature.
8309         * tree-ssa-propagate.c (fold_predicate_in): Update call to
8310         vrp_evaluate_conditional.
8311         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
8312         (vrp_evaluate_conditional): Split the cond argument.
8313         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
8314         (simplify_stmt_for_jump_threading): Update call to
8315         vrp_evaluate_conditional.
8316
8317 2008-04-24  Ira Rosen  <irar@il.ibm.com>
8318
8319         PR tree-optimization/35982
8320         * tree-vect-analyze.c (vect_check_interleaving): Check that the
8321         interleaved data-refs are of the same type.
8322
8323 2008-04-24  Danny Smith  <dannysmith@users.net>
8324
8325         * c-format.c (check_format_info_main): Use strncmp rather than a
8326         magic prefix to handle multichar length specs.
8327         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
8328         Don't prefix "I64" and "I32" with '\0'.
8329
8330 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
8331
8332         PR target/36015
8333         * config/i386/i386.c (init_cumulative_args): Don't pass anything
8334         in registers for -m32 only if stdarg_p (fntype).
8335
8336 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
8337
8338         PR rtl-optimization/36006
8339         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
8340         temp to op0 in order to avoid invalid rtx sharing.
8341
8342 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
8343
8344         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
8345         check TREE_INVARIANT.
8346         * tree-gimple.c (is_gimple_address): New.
8347         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
8348         * tree-gimple.h (is_gimple_address): New.
8349         * tree.h (decl_address_invariant_p): New.
8350         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
8351         (build_string): Likewise.
8352         (decl_address_invariant_p): New, from is_gimple_invariant_address.
8353         (tree_invariant_p_1): Likewise.
8354         (save_expr): Use it.
8355         (tree_invariant_p): New.
8356         (skip_simple_arithmetic): Use it.
8357         (stabilize_reference_1): Use it.
8358         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
8359         simplify.
8360         (build1_stat): Drop code to compute TREE_INVARIANT.
8361         (build2_stat): Drop code to compute TREE_INVARIANT.
8362         (build3_stat): Drop code to compute TREE_INVARIANT.
8363         (build4_stat): Drop code to compute TREE_INVARIANT.
8364         (build5_stat): Drop code to compute TREE_INVARIANT.
8365         (build7_stat): Drop code to compute TREE_INVARIANT.
8366         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
8367         * tree.h (struct tree_base): Remove invariant_flag.
8368         (TREE_INVARIANT): Remove.
8369         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
8370         (fold_builtin_expect): Check TREE_CONSTANT.
8371         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
8372         * c-tree.h (c_expr_to_decl): Drop third parameter.
8373         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
8374         (build_c_cast): Don't set TREE_INVARIANT.
8375         (pop_init_level): Don't set TREE_INVARIANT.
8376         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
8377         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
8378         TREE_CONSTANT.
8379         (gimplify_init_constructor): Don't set TREE_INVARIANT.
8380         (gimplify_addr_expr): Adjust comment.
8381         * tree-mudflap.c (mf_build_string):
8382         * print-tree.c (print_node): Don't print TREE_INVARIANT.
8383         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
8384         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
8385         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
8386         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
8387         * langhooks.h (struct lang_hooks): Drop third parameter from
8388         expr_to_decl.
8389
8390 2008-04-23  Richard Guenther  <rguenther@suse.de>
8391
8392         PR tree-optimization/27799
8393         PR tree-optimization/32921
8394         PR tree-optimization/32624
8395         * tree-ssa-structalias.c (merge_smts_into): Only merge the
8396         SMTs aliases and the tag itself into the solution.
8397         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
8398         merge the points-to solution back into the SMT aliases.
8399         (may_alias_p): Use alias_set_subset_of instead of
8400         aliases_conflict_p.  A pointer which points to
8401         memory with alias set zero may access any variable.
8402
8403 2008-04-23  Richard Guenther  <rguenther@suse.de>
8404
8405         * alias.c (alias_set_subset_of): Correctly handle asking
8406         if zero is a subset of an alias set with zero child.
8407         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
8408         (compute_flow_insensitive_aliasing): Correctly walk all
8409         pointers.  Do not unnecessarily union sets.
8410
8411 2008-04-23  Richard Guenther  <rguenther@suse.de>
8412
8413         PR middle-end/36021
8414         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
8415
8416 2008-04-22  Tomas Bily  <tbily@suse.cz>
8417
8418         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
8419         unreachable case.
8420         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
8421         NON_LVALUE_EXPR.
8422         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
8423         * tree-ssa-structalias.c (get_constraint_for): Likewise.
8424         * tree-inline.c (estimate_num_insns_1): Likewise.
8425         * varasm.c (const_hash_1, compare_constant, copy_constant)
8426         (compute_reloc_for_constant, output_addressed_constants): Likewise.
8427         * emit-rtl.c (component_ref_for_mem_expr)
8428         (set_mem_attributes_minus_bitpos): Likewise.
8429         * expr.c (highest_pow2_factor, expand_expr_real_1, )
8430         (is_aligning_offset): Likewise.
8431         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
8432         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
8433         * dojump.c (do_jump): Likewise.
8434         * builtins.c (get_pointer_alignment, get_memory_rtx)
8435         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
8436         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
8437
8438 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
8439
8440         PR rtl-optimization/36017
8441         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
8442         expanding the library call.
8443
8444 2008-04-22  Ian Lance Taylor  <iant@google.com>
8445
8446         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
8447         than size_in_bytes.
8448
8449 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
8450
8451         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
8452         of LR/CTR moves for Power6.
8453
8454 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
8455
8456         PR middle-end/36003
8457         * passes.c (init_optimization_passes): Remove
8458         pass_fast_rtl_byte_dce.
8459         
8460 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
8461
8462         PR target/29096
8463         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
8464         builtin functions to generate faster code.
8465         (_mm_cvtpu16_ps): Ditto.
8466         (_mm_cvtpi32x2_ps): Ditto.
8467
8468 2008-04-22  Nick Clifton  <nickc@redhat.com>
8469
8470         * common.opt (ftree-loop-distribution): Add Optimization
8471         attribute.
8472
8473         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
8474         (frv_expand_builtin_va_start): Likewise.
8475
8476         * config/arm/arm.c (thumb_find_work_register): Fix location of
8477         argument register count.
8478
8479 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
8480
8481         Support scheduling for ColdFire V1 and V3 microarchitecture.
8482         Improve scheduling of multiplication instructions.
8483
8484         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
8485         (mac): New instruction attribute.
8486         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
8487         (m68k_sched_mac): New variable.
8488         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
8489         Handle cfv1 and cfv3.
8490         (max_insn_size): New static variable.
8491         (struct _sched_ib): New type.
8492         (sched_ib): New static variable.
8493         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
8494         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
8495         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
8496         Update.
8497         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
8498         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
8499         new variables.  Update.
8500         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
8501         Add modeling of cfv3 instruction buffer.  Update.
8502         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
8503         * config/m68k/m68k.h (TUNE_CFV3): New macro.
8504         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
8505         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
8506         a particular reservation applies to.
8507         (type2): Reorganize attribute values.  Rename alu to alu_reg,
8508         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
8509         to mul_l and mul_w.
8510         (cf_ib_*): Simplify description of instruction buffer.
8511         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
8512         (cf_mem): Split into cf_mem1 and cf_mem2.
8513         (cf_v2_move_??): Rename to cfv12_alu_??.
8514         (cf_v2_move_l_??): Rename to cfv12_omove_??.
8515         (cf_v2_mul_??): Remove reservations.
8516         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
8517         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
8518         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
8519         appropriate place.
8520         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
8521         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
8522         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
8523         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
8524         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
8525         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
8526         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
8527         expansions of the above reservations for instructions of sizes
8528         1, 2 and 3 words.
8529
8530 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
8531
8532         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
8533
8534 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
8535
8536         * coverage.c: Include tree-pass.h.
8537         (coverage_counter_alloc): Print da_file_name to the dump file.
8538
8539 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
8540
8541         * sbitmap.c (sbitmap_range_empty_p): New function.
8542         * sbitmap.h (sbitmap_range_empty_p): New function.
8543         * bitmap.h: Now includes obstack.h.
8544
8545 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
8546             Kenneth Zadeck  <zadeck@naturalbridge.com>
8547
8548         * dbgcnt.def (ra_byte_scan): Added.
8549         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
8550         when the last hit happens for a counter.  
8551         * timevar.def (TV_DF_BYTE_LR): New variable.
8552         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
8553         * passes.c (pass_fast_rtl_byte_dce): New pass.
8554         * fwprop.c (update_df): Added mode to call df_ref_create.
8555         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
8556         DF_REF_EXTRACT_OFFSET.
8557         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
8558         DF_BYTE_LR_OUT, df_byte_lr): New macro.
8559         (df_mm): New enum.
8560         (df_ref_extract): Added mode field.
8561         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
8562         DF_REF_EXTRACT_OFFSET.
8563         (DF_REF_EXTRACT_MODE): New macro.
8564         (df_byte_lr_bb_info): New structure.
8565         (df_print_byte_regset, df_compute_accessed_bytes, 
8566         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
8567         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
8568         df_byte_lr_simulate_uses,
8569         df_byte_lr_simulate_artificial_refs_at_top,
8570         df_byte_lr_simulate_artificial_refs_at_end,
8571         df_compute_accessed_bytes): New function.
8572         (df_ref_create): Add parameter.
8573         (df_byte_lr_get_bb_info): New inline function.
8574         * df-scan.c (df_ref_record, df_uses_record,
8575         df_ref_create_structure): Added mode parameter.
8576         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
8577         df_defs_record, df_uses_record, df_get_conditional_uses,
8578         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
8579         df_entry_block_defs_collect, df_exit_block_uses_collect):
8580         Added mode parameter to calls to df_ref_record, df_uses_record,
8581         df_ref_create_structure.
8582         (df_ref_equal_p, df_ref_compare): Added test for modes.
8583         (df_ref_create_structure): Added code to set mode.  Renamed
8584         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
8585         DF_REF_EXTRACT_OFFSET.
8586         * df-core.c (df_print_byte_regset): New function.
8587         * df-byte-scan.c: New file.
8588         * df-problems.c (df_rd_transfer_function): Removed unnecessary
8589         calls to BITMAP_FREE.  
8590         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
8591         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
8592         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
8593         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
8594         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
8595         df_byte_lr_local_compute, df_byte_lr_init,
8596         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
8597         df_byte_lr_transfer_function, df_byte_lr_free, 
8598         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
8599         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
8600         df_byte_lr_simulate_uses,
8601         df_byte_lr_simulate_artificial_refs_at_top,
8602         df_byte_lr_simulate_artificial_refs_at_end): New function.
8603         * dce.c (byte_dce_process_block): New function.
8604         (dce_process_block): au is now passed in rather than computed
8605         locally.  Changed loops that look at artificial defs to not look
8606         for conditional or partial ones, because there never are any.  
8607         (fast_dce): Now is able to drive byte_dce_process_block or 
8608         dce_process_block depending on the kind of dce being done.
8609         (rest_of_handle_fast_dce): Add parameter to fast_dce.
8610         (rest_of_handle_fast_byte_dce): New function.
8611         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
8612         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
8613
8614 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
8615
8616         PR fortran/35019
8617         * gcc.h: Added fortran options that take arguments to
8618         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
8619         macros.
8620
8621 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
8622
8623         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
8624         scalarization if on the LHS and not a full access.
8625
8626 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8627
8628         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
8629
8630 2008-04-18  Rafael Espindola  <espindola@google.com>
8631
8632         * tree-vrp.c (find_case_label_index): Fix the binary search.
8633         (find_case_label_range): New.
8634         (vrp_visit_switch_stmt): Use find_case_label_range.
8635         (simplify_switch_using_ranges): Use find_case_label_range.
8636
8637 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8638
8639         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
8640         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
8641
8642 2008-04-18  Tom Tromey  <tromey@redhat.com>
8643
8644         PR libcpp/15500:
8645         * doc/cpp.texi (Implementation-defined behavior): Mention
8646         -finput-charset.
8647
8648 2008-04-18  Ian Lance Taylor  <iant@google.com>
8649
8650         * fold-const.c (pointer_may_wrap_p): New static function.
8651         (fold_comparison): Add another test for pointer overflow.  Use
8652         pointer_may_wrap_p to disable some false positives.
8653
8654 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
8655           
8656         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
8657         (fname_as_string): Match updated cpp_interpret_string prototype.
8658         (fix_string_type): Support char16_t* and char32_t*.
8659         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
8660         derivative) nodes.  Register as builtin if C++0x.
8661         (c_parse_error): Support CPP_CHAR{16,32}.
8662         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
8663         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
8664         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
8665         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
8666         CTI_CHAR32_ARRAY_TYPE>: New elements.
8667         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
8668         char32_type_node, signed_char32_type_node, char16_array_type_node,
8669         char32_array_type_node): New defines.
8670         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
8671         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
8672         (lex_string): Support CPP_STRING{16,32}, match updated
8673         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
8674         (lex_charconst): Support CPP_CHAR{16,32}.
8675         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
8676         and CPP_STRING{16,32}.
8677
8678 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
8679
8680         PR bootstrap/35457
8681         * aclocal.m4: Regenerate.
8682         * configure: Regenerate.
8683
8684 2008-04-18  Jan Hubicka  <jh@suse.cz>
8685
8686         * except.c (dw2_size_of_call_site_table,
8687         sjlj_size_of_call_site_table): Use vector API for call_site_record.
8688
8689         * cgraphbuild.c (build_cgraph_edges): Update.
8690         * tree-pass.h: Update comment.
8691         * final.c (leaf_function_p): Update.
8692         (leaf_renumber_regs): Update.
8693         (rest_of_clean_state): Update.
8694         * omp-low.c (expand_omp_parallel): Update.
8695         * ipa-reference.c (analyze_function): Update.
8696         * reorg.c (find_end_label): Update.
8697         (optimize_skip): Update.
8698         (fill_simple_delay_slots): Update.
8699         (fill_simple_delay_slots): Update.
8700         (make_return_insns): Update.
8701         (dbr_schedule): Update.
8702         * gimple-low.c (record_vars_into): Update.
8703         * cfgbuild.c (make_edges): Update.
8704         * function.c (assign_stack_local): Update.
8705         (assign_parm_adjust_stack_rtl): Update.
8706         (locate_and_pad_parm): Update.
8707         (allocate_struct_function): Do not initialize stack_alignment_needed
8708         and preferred_stack_boundary here.
8709         (stack_protect_prologue): Update.
8710         (stack_protect_epilogue): Update.
8711         (expand_function_start): Initialize stack_alignment_needed,
8712         preferred_stack_boundary and max_jumptable_ents.
8713         (expand_function_end): Update.
8714         (free_after_compilation): Do not NULLify epilogue_delay_list.
8715         * function.h (struct rtl_data): Add stack_protect_guard,
8716         stack_alignment_needed,
8717         preferred_stack_boundary, epilogue_delay_list.
8718         (struct function): Remove value_histograms, stack_alignment_needed,
8719         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
8720         last_label_uid,
8721         unexpanded_var_list, stack_protect_guard.
8722         (current_function_epilogue_delay_list): Remove.
8723         * ipa-type-escape.c (analyze_function): Update.
8724         * gimplify.c (pop_gimplify_context): Update comment.
8725         * calls.c (expand_call): Update.
8726         (emit_library_call_value_1): Update.
8727         * except.c (set_nothrow_function_flags): Update.
8728         * cfgexpand.c (get_decl_align_unit): Update.
8729         (create_stack_guard): Update.
8730         (estimated_stack_frame_size): Update.
8731         (expand_used_vars): Update.
8732         (tree_expand_cfg): Free histogram earliers, init expansion variables.
8733         * explow.c (allocate_dynamic_stack_space): Update.
8734         * tree-ssa-live.c (remove_unused_locals): Update.
8735         * varasm.c (mark_constant_pool): Update.
8736         * tree-inline.c (remap_decls): Update.
8737         (initialize_cfun): Update.
8738         (declare_return_variable): Update.
8739         (inline_forbidden_p): Update.
8740         (expand_call_inline): Update.
8741         (declare_inline_vars): Update.
8742         (tree_function_versioning): Update.
8743         * tree-flow.h (value_histograms): New.
8744         (VALUE_HISTOGRAMS): New macro.
8745         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
8746         last_label_uid.
8747         * tree-cfg.c (set_bb_for_stmt): Update.
8748         (replace_by_duplicate_decl): Update.
8749         (move_block_to_fn): Update.
8750         (new_label_mapper): Update.
8751         (dump_function_to_file): Update.
8752         * ipa-struct-reorg.c (build_data_structure): Update.
8753         * cfgrtl.c (print_rtl_with_bb): Update.
8754         * reload1.c (reload): Update.
8755         (reload): Update.
8756         * config/i386/i386.c (setup_incoming_varargs_64,
8757         ix86_compute_frame_layout): Update.
8758         * config/arc/arc.c (arc_output_function_epilogue): Update.
8759
8760 2008-04-18  Marius Strobl <marius@FreeBSD.org>
8761
8762         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
8763         for FreeBSD as well.
8764         * gthr-posix95.h: Likewise.
8765
8766 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
8767
8768         PR rtl-optimization/35838
8769         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
8770         out the byte offset of the first subreg.
8771
8772 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
8773
8774         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
8775         to split_ti instead of three separate calls with single member arrays.
8776         (subti3 splitter): Ditto.
8777         (adddi3 splitter): Ditto with split_di.
8778         (subdi3 splitter): Ditto.
8779         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
8780         two separate calls with single member arrays.  Swap match_dup
8781         operands 1 and 2 to better fit into the array.
8782         (negdi2 splitter): Ditto with split_di.
8783         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
8784         two separate calls with single member arrays.  Swap match_dup operands
8785         6 and 7 to better fit into the array.
8786
8787 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
8788
8789         * config/i386/i386.c (sse_builtin_type): New.
8790         (bdesc_sse_args): Likewise.
8791         (bdesc_sse_3arg): Removed.
8792         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
8793         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
8794         IX86_BUILTIN_ROUNDPS.
8795         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
8796         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
8797         IX86_BUILTIN_ROUNDPS.
8798         (ix86_expand_sse_4_operands_builtin): Removed.
8799         (ix86_expand_sse_operands_builtin): New.
8800         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
8801         and CODE_FOR_sse4_1_roundps.
8802         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
8803         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
8804
8805 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
8806
8807         PR target/35907
8808         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
8809         regs before frame pop when needed.  If use_backchain_to_restore_sp
8810         then load backchain into a temp reg to restore vr and vrsave.  Add
8811         code to restore vr after frame pop if possible.
8812
8813 2008-04-17  Richard Guenther  <rguenther@suse.de>
8814
8815         * tree-vn.c (expressions_equal_p): Do not check type
8816         equality or compatibility before calling operand_equal_p.
8817         * fold-const.c (operand_equal_p): Check equivalence of
8818         integer constants before bailing out due to signedness or
8819         precision differences.
8820         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
8821         spurious differences in type qualification.  Ignore types
8822         for COMPONENT_REFs at all.
8823
8824 2008-04-17  Christian Bruel  <christian.bruel@st.com>
8825
8826         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
8827         msw_skip comparison.
8828         
8829 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
8830
8831         PR c/35739
8832         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
8833         reg type.
8834
8835         PR tree-optimization/35899
8836         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
8837         rather than TREE_OPERAND.
8838
8839 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
8840
8841         PR target/35944
8842         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
8843         temporary registers.  Change operand predicate to general_operand.
8844         (remainderxf3): Ditto.
8845
8846 2008-04-16  Richard Guenther  <rguenther@suse.de>
8847
8848         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
8849         * tree-affine.c (aff_combination_expand): Look through some
8850         conversions.
8851
8852 2008-04-15  Doug Kwan  <dougkwan@google.com>
8853
8854         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
8855         for hex printing.
8856         * tree-pretty-print.c (dump_generic_node): Ditto.
8857         * final.c (output_addr_const): Ditto.
8858         * dwarf2out.c (output_cfi): Ditto.
8859         * c-pretty-print.c (pp_c_integer_constant): Ditto.
8860         * print-rtl.c (print_rtx): Ditto.
8861         * print-tree.c (print_node_brief, print_node): Ditto.
8862         * c-common.c (match_case_to_enum_1): Ditto.
8863         * sched-vis.c (print_value): Ditto.
8864         * config/i386/i386.c (print_operand): Cast to long unsigned int
8865         for hex printing.
8866
8867 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
8868         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
8869         MS Windows VirtualProtect function.
8870
8871 2008-04-15  Jan Hubicka  <jh@suse.cz>
8872
8873         * gengtype.c (write_root): Param_is argument is OK.
8874         * expr.c (expand_expr_real_1): Update call of get_exception_*.
8875         * function.h: Include varray.h
8876         (rtl_eh): New stucture based on except.c one.
8877         (call_site_record): New forward declaration and vector type.
8878         * calls.c (emit_call_1): Do not call
8879         note_current_region_may_contain_throw.
8880         * except.c (eh_status): Remove cur_region, try_region since they are
8881         unused.
8882         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
8883         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
8884         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
8885         Remove call_site_data_used, call_site_data_size.
8886         Turn call_site_record into vector in function.h.
8887         (note_current_region_may_contain_throw): Remove.
8888         (get_exception_pointer, get_exception_filter): Do not take struct
8889         function argument; update.
8890         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
8891         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
8892         build_post_landing_pads, dw2_build_landing_pads,
8893         sjlj_assign_call_site_values, sjlj_mark_call_sites,
8894         sjlj_emit_function_enter, sjlj_emit_function_enter, 
8895         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
8896         sjlj_build_landing_pads, finish_eh_generation,
8897         remove_exception_handler_label, remove_eh_handler,
8898         maybe_remove_eh_handler, add_reachable_handler,
8899         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
8900         add_action_record, collect_one_action_chain, add_call_site,
8901         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
8902         sjlj_output_call_site_table, output_function_exception_table,
8903         * except.h (note_current_region_may_contain_throw): Remove
8904         (get_exception_pointer, get_exception_filter): Do not take struct
8905         function argument.
8906         * Makefile.in (GTFILES): Put varargs before struct function.
8907
8908 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
8909
8910         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
8911         punt for STRING_CST.
8912         (get_constraint_for): Deal with STRING_CST here instead.
8913
8914 2008-04-15  Richard Guenther  <rguenther@suse.de>
8915
8916         * tree-ssa-propagate.c (substitute_and_fold): Substitute
8917         statements in a basic-block with a backward walk.  Do not
8918         substitute into dead statements but instead remove those.
8919
8920 2008-04-15  Richard Guenther  <rguenther@suse.de>
8921
8922         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
8923         to zero, thus disable creation of SFTs.
8924
8925 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
8926
8927         * tree-predcom.c (suitable_reference_p): Return false if the
8928         reference can throw.
8929
8930 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
8931
8932         PR c/35751
8933         * c-decl.c (finish_decl): If extern or static var has variable
8934         size, set TREE_TYPE (decl) to error_mark_node.
8935
8936 2008-04-15  Rafael Espindola  <espindola@google.com>
8937
8938         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
8939         variable arg1.
8940
8941 2008-04-15  Richard Guenther  <rguenther@suse.de>
8942
8943         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8944         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
8945         (visit_reference_op_load): Do walk vuse-vdef chains on
8946         vn_reference_lookup.
8947         (visit_reference_op_store): But do not here.
8948         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
8949         vn_reference_lookup.
8950         (vn_lookup_with_vuses): But do so here.
8951
8952 2008-04-14  Ian Lance Taylor  <iant@google.com>
8953
8954         * fold-const.c (fold_overflow_warning): Remove assertion.
8955
8956 2008-04-15  Ben Elliston  <bje@au.ibm.com>
8957
8958         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
8959         temp1 local variables.
8960
8961 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
8962
8963         PR target/35661
8964         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
8965         ".text.unlikely" section as executable.
8966
8967 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
8968
8969         * config/ia64/ia64.c (rtx_needs_barrier): Handle
8970         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
8971         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
8972         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
8973         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
8974         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
8975         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
8976
8977 2008-04-14  Ian Lance Taylor  <iant@google.com>
8978
8979         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
8980         * fold-const.c (fold_comparison): If appropriate, test
8981         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
8982         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
8983         reassociating a pointer type.
8984         * doc/invoke.texi (Optimize Options): Document that
8985         -fstrict-overflow applies to pointer wraparound.
8986
8987 2008-04-13  Jan Hubicka  <jh@suse.cz>
8988
8989         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
8990
8991 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
8992
8993         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
8994         we are going to "save the world".
8995
8996 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
8997
8998         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
8999         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
9000         operand 0 constraint, not "=".
9001
9002 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
9003
9004         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
9005
9006 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9007
9008         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
9009         of size of positions_needed * CHAR_BIT.
9010
9011 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9012
9013         PR middle-end/35897
9014         * dse.c (store_info): Change positions_needed to unsigned
9015         HOST_WIDE_INT.
9016         (lowpart_bitmask): New.
9017         (record_store): Cast to unsigned HOST_WIDE_INT for
9018         positions_needed.  Assert width <= size of positions_needed *
9019         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
9020         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
9021         lowpart_bitmask to set mask.
9022
9023 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9024
9025         * config/bfin/constraints.md: New file.
9026         * config/bfin/bfin.md: Include it.
9027         (adddi3): Use satisfies_constraint functions instead of the old macros.
9028         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
9029         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
9030         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
9031         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
9032         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
9033         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
9034         EXTRA_CONSTRAINT): Delete.
9035         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
9036         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
9037         of the old macros.
9038         * config/bfin/bfin.c: Include "tm-constrs.h".
9039         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
9040         Use satisfies_constraint functions instead of the old macros.
9041         * doc/md.texi (Blackfin Constraints): Update file name reference.
9042
9043 2008-04-11  Richard Guenther  <rguenther@suse.de>
9044
9045         PR tree-optimization/35869
9046         * tree-vrp.c (execute_vrp): Move switch statement update after
9047         jump threading.  Schedule another cfg cleanup run.
9048
9049 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
9050
9051         PR c/35744
9052         * attribs.c (decl_attributes): Return early on errorneous node.
9053
9054 2008-04-10  Oleg Ryjkov  <olegr@google.com>
9055
9056         * tree.h (struct tree_base): Added a new flag default_def_flag.
9057         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
9058
9059 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9060
9061         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
9062
9063 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9064
9065         PR target/35768
9066         * pa.md: Define mode iterator P.  Define mode attribute dwc.
9067         (dcacheflush): Update pattern to use iterator P and attribute dwc.
9068         (icacheflush): Likewise.
9069         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
9070         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
9071
9072 2008-04-11  Ben Elliston  <bje@au.ibm.com>
9073
9074         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
9075
9076 2008-04-10  Rafael Espindola  <espindola@google.com>
9077
9078         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
9079         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
9080         (extract_range_from_expr): The same.
9081
9082 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9083
9084         * config/mips/mips.md (GPR2): New mode iterator.
9085         (seq): Add comment.
9086         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
9087         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
9088         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
9089         Rewrite these to take two modes, the mode of comparison and the
9090         mode of the destination.
9091         * config/mips/mips.c (mips_expand_scc): Instead of having
9092         paradoxical subreg as destination, expand "narrowing" scc if mode
9093         of comparison is SI and target is requested in DI mode.
9094         (mips_emit_int_order_test): Update comment.  Make mode of
9095         comparison match CMP0 rather than TARGET.  When creating inverse
9096         target use mode of TARGET.
9097
9098 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
9099
9100         * gcov-dump.c (tag_summary): Only print summaries for the first
9101         GCOV_COUNTERS_SUMMABLE counters.
9102
9103 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
9104
9105         * config/i386/i386.md (absneg): New code iterator.
9106         (absnegprefix): New code attribute.
9107         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
9108         patterns using absneg code iterator.
9109         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
9110         using absneg code iterator.
9111         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
9112         *neg<mode>2 patterns using absneg code iterator.
9113         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9114         *negextendsfdf2 patterns using absneg code iterator.
9115         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
9116         *negextendsfxf2 patterns using absneg code iterator.
9117         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
9118         *negextendsfdf2 patterns using absneg code iterator.
9119         * config/i386/sse.md (<code><mode>2): Macroize expander from
9120         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
9121
9122 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
9123
9124         * config/s390/s390.h: Remove the remains of the recent search
9125         & replace action of current_function_outgoing_args_size.
9126
9127 2008-04-10  Ira Rosen  <irar@il.ibm.com>
9128
9129         PR tree-optimization/35821
9130         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
9131         NEW_STMT_LIST is not NULL.
9132
9133 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
9134
9135         PR libstdc++/35597
9136         * toplev.c (process_options): Remove -ffunction-sections debugging
9137         warning.
9138
9139 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
9140
9141         PR middle-end/PR28690
9142         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
9143         than gen_rtx_fmt_ee to perform more canonicalizations.
9144
9145 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9146
9147         PR driver/35665
9148         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
9149
9150 2008-04-09  Richard Guenther  <rguenther@suse.de>
9151
9152         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
9153         (dump_function_to_file): Dump function arguments with types.
9154
9155 2008-04-08  Richard Guenther  <rguenther@suse.de>
9156
9157         * fold-const.c (fold_widened_comparison): Do not allow
9158         sign-changes that change the result.
9159
9160 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
9161
9162         PR target/35839
9163         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
9164         kinds of indirect references.
9165
9166 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
9167
9168         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
9169         GNU Fortran language string.
9170
9171 2008-04-08  Rafael Espindola  <espindola@google.com>
9172
9173         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
9174         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
9175         * tree.h (tree_call_nonnegative_warnv_p): New.
9176
9177 2008-04-08  Jan Hubicka  <jh@suse.cz>
9178
9179         * function.c (free_after_compilation): Clear out regno_reg_rtx
9180         pointer.
9181
9182 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
9183
9184         Revert
9185         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9186
9187         PR middle-end/PR28690
9188         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
9189         same precedence as REG_POINTER and MEM_POINTER operands.
9190
9191 2008-04-08  Richard Guenther  <rguenther@suse.de>
9192
9193         PR middle-end/35834
9194         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
9195         for adding index to base.
9196
9197 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
9198
9199         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
9200         (MINGW_ENABLE_EXECUTE_STACK): New.
9201         (IN_LIBGCC2): For libgcc include windows.h file for
9202         function declarations.
9203
9204 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
9205
9206         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
9207         and tem2 if tem1 is not a REG or MULT.
9208
9209 2008-04-08  Jan Hubicka  <jh@suse.cz>
9210
9211         * function.h (incomming_args): Break out of struct function.
9212         (function_subsections): Break out of struct function.
9213         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
9214         return_rtx and hard_reg_initial_vals from struct function.
9215         Kill inl_max_label_num.
9216         (current_function_pops_args, current_function_args_info,
9217         current_function_args_size, current_function_args_size,
9218         current_function_pretend_args_size,
9219         current_function_outgoing_args_size,
9220         current_function_internal_arg_pointer, current_function_return_rtx):
9221         Kill compatibility accestor macros.
9222         * builtins.c (expand_builtin_apply_args_1): Update.
9223         (expand_builtin_next_arg): Update.
9224         * df-scan.c (df_get_call_refs): Update.
9225         * dbxout.c (dbxout_function_end): Update.
9226         * dwarf2out.c (dwarf2out_switch_text_section): Update.
9227         (output_line_info): Update.
9228         (secname_for_decl): Update.
9229         (dwarf2out_var_location): Update.
9230         * function.c (free_after_compilation): Update.
9231         (assign_parm_find_stack_rtl): Update.
9232         (assign_parms): Update.
9233         (expand_dummy_function_end): Update.
9234         (expand_function_end): Update.
9235         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
9236         (expand_call): Update.
9237         (emit_library_call_value_1): Update.
9238         (store_one_arg): Update.
9239         * varasm.c (initialize_cold_section_name): Update.
9240         (unlikely_text_section): Update.
9241         (unlikely_text_section_p): Update.
9242         (assemble_start_function): Update.
9243         (assemble_end_function): Update.
9244         (default_section_type_flags): Update.
9245         (switch_to_section): Update.
9246         * integrate.c (set_decl_abstract_flags): Update.
9247         (get_hard_reg_initial_val): Update.
9248         (has_hard_reg_initial_val): Update.
9249         (allocate_initial_values): Update.
9250         * resource.c (init_resource_info): Update.
9251         * config/alpha/alpha.c (NUM_ARGS): Update.
9252         (direct_return): Update.
9253         (alpha_va_start): Update.
9254         (alpha_sa_size): Update.
9255         (alpha_initial_elimination_offset): Update.
9256         (alpha_expand_prologue): Update.
9257         (alpha_start_function): Update.
9258         (alpha_expand_epilogue): Update.
9259         (unicosmk_initial_elimination_offset):
9260         * config/alpha/alpha.md (call expander): Update.
9261         * config/s390/s390.c (s390_register_info): Update.
9262         (s390_register_info): Update.
9263         (s390_frame_info): Update.
9264         (s390_initial_elimination_offset): Update.
9265         (s390_build_builtin_va_list): Update.
9266         (s390_va_start): Update.
9267         * config/spu/spu.c (direct_return): Update.
9268         (spu_expand_prologue): Update.
9269         (spu_initial_elimination_offset): Update.
9270         (spu_build_builtin_va_list): Update.
9271         (spu_va_start): Update.
9272         * config/sparc/sparc.c (sparc_init_modes): Update.
9273         (sparc_compute_frame_size): Update.
9274         (function_value): Update.
9275         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
9276         * config/i386/i386.md (return expander): Update.
9277         * config/i386/i386.c (ix86_va_start): Update.
9278         (ix86_can_use_return_insn_p): Update.
9279         (ix86_compute_frame_layout): Update.
9280         (ix86_expand_epilogue): Update.
9281         * config/sh/sh.c (output_stack_adjust): Update.
9282         (calc_live_regs): Update.
9283         (sh_expand_prologue): Update.
9284         (sh_builtin_saveregs): Update.
9285         (sh_va_start): Update.
9286         (initial_elimination_offset): Update.
9287         (sh_allocate_initial_value): Update.
9288         (sh_function_ok_for_sibcall): Update.
9289         (sh_get_pr_initial_val): Update.
9290         * config/sh/sh.md (return expander): Update.
9291         * config/avr/avr.c (frame_pointer_required_p): UPdate.
9292         * config/crx/crx.c (crx_compute_frame): UPdate.
9293         (crx_initial_elimination_offset): UPdate.
9294         * config/xtensa/xtensa.c (compute_frame_size): Update
9295         (xtensa_builtin_saveregs): Update.
9296         (xtensa_va_start): Update.
9297         (order_regs_for_local_alloc): Update.
9298         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
9299         (xstormy16_expand_builtin_va_start): Update.
9300         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
9301         * config/m68hc11/m68hc11.md (return expanders): Update.
9302         * config/m68hc11/m68hc11.c (expand_prologue): Update.
9303         (expand_epilogue): Update.
9304         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
9305         (cris_simple_epilogue): Update.
9306         (cris_expand_prologue): Update.
9307         (cris_expand_epilogue): Update.
9308         * config/iq2000/iq2000.c (iq2000_va_start): Update.
9309         (compute_frame_size): Update.
9310         * config/mt/mt.c (mt_compute_frame_size): Update.
9311         * config/mn10300/mn10300.c (expand_prologue): Update.
9312         (expand_epilogue): Update.
9313         (initial_offset): Update.
9314         (mn10300_builtin_saveregs):
9315         * config/mn10300/mn10300.md (return expander): Update.
9316         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
9317         (ia64_initial_elimination_offset): Update.
9318         (ia64_initial_elimination_offset): Update.
9319         (ia64_expand_prologue): Update.
9320         * config/m68k/m68k.md (return expander): Update.
9321         * config/rs6000/rs6000.c (rs6000_va_start): Update.
9322         (rs6000_stack_info): Update.
9323         * config/mcore/mcore.c (layout_mcore_frame): Update.
9324         (mcore_expand_prolog): Update.
9325         * config/arc/arc.c (arc_compute_frame_size): Update.
9326         * config/score/score3.c (score3_compute_frame_size): Update.
9327         * config/score/score7.c (score7_compute_frame_size): Update.
9328         * config/arm/arm.c (use_return_insn): Update.
9329         (thumb_find_work_register): Update.
9330         (arm_compute_save_reg_mask): Update.
9331         (arm_output_function_prologue): Update.
9332         (arm_output_epilogue): Update.
9333         (arm_size_return_regs): Update.
9334         (arm_get_frame_offsets): Update.
9335         (arm_expand_prologue): Update.
9336         (thumb_exit): Update.
9337         (thumb_unexpanded_epilogue): Update.
9338         (thumb1_output_function_prologue): Update.
9339         * config/pa/pa.md (return expander): Update.
9340         * config/pa/pa.c (compute_frame_size): Update.
9341         (hppa_builtin_saveregs): Update.
9342         * config/mips/mips.c (mips_va_start): Update.
9343         (mips16_build_function_stub): Update.
9344         (mips_compute_frame_info): Update.
9345         (mips_restore_gp): Update.
9346         (mips_output_function_prologue): Update.
9347         (mips_expand_prologue): Update.
9348         * config/v850/v850.c (compute_frame_size): Update.
9349         (expand_prologue): * config/mmix/mmix.c (along): update.
9350         (mmix_initial_elimination_offset): update.
9351         (mmix_reorg): update.
9352         (mmix_use_simple_return): update.
9353         (mmix_expand_prologue): update.
9354         (mmix_expand_epilogue): Update.
9355         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
9356         (emit_link_insn): Update.
9357
9358 2008-04-08  Anatoly Sokolov <aesok@post.ru>
9359
9360         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
9361         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
9362         instructions.
9363         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
9364         atmega103 device.
9365
9366 2008-04-07  Jan Hubicka  <jh@suse.cz>
9367
9368         * function.h (rtl): Rename to x_rtl.
9369         (crtl): New define.
9370         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
9371         frame_offset, stack_check_probe_note, arg_pointer_save_area,
9372         used_temp_slots avail_temp_slots, temp_slot_level,
9373         nonlocal_goto_handler_labels): Update accesstors.
9374         (rtl): New global variable.
9375         (struct function): Move some fileds to rtl_data.
9376         (get_arg_pointer_save_area): Update prototype.
9377         * builtins.c (expand_builtin_setjmp_receiver): Update call of
9378         get_arg_pointer_save_area.
9379         * expr.c (init_expr): Update
9380         * function.c (get_frame_size): Update
9381         (assign_stack_local): Update
9382         (expand_function_end): Update.
9383         (get_art_pointer_save_area): Update
9384         * function.h 
9385         * emit-rtl.c (rtl): Declare.
9386         (regno_reg_rtx): Declare.
9387         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
9388         Update.
9389         (gen_reg_rtx): Update.
9390         * varasm.c (n_deferred_constatns): Update accestor.
9391         (init_varasm_status): Do not allocate varasm_status.
9392         (force_const_mem, get_pool_size, output_constant_pool): Update.
9393         * stmt.c (force_label_rtx): Do not use x_ prefixes.
9394         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
9395         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
9396         * sparc/sparc.h (INIT_EXPANDERS): Update.
9397         * ia64/ia64.h (INIT_EXPANDERS): Update.
9398
9399 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
9400
9401         * reload.c (push_secondary_reload): Add missing break to for loop.
9402
9403 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
9404
9405         PR middle-end/PR28690
9406         * rtlanal.c: Update copyright years.
9407         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
9408         as REG_POINTER and MEM_POINTER operands.
9409         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
9410         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
9411         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
9412         * gcse.c: Update copyright years.
9413         (pre_delete): Call gen_reg_rtx_and_attrs.
9414         (hoist_code): Likewise.
9415         (build_store_vectors): Likewise.
9416         (delete_store): Likewise.
9417         * loop-invariant.c (move_invariant_reg): Likewise.
9418         Update copyright years.
9419
9420 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
9421
9422         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
9423         control string instead of quoted.
9424
9425 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
9426
9427         * doc/rtl.texi: Rewrite of subreg section.
9428
9429 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
9430
9431         PR/35842
9432         * config/i386/i386.c (legitimize_pic_address): Add treating
9433         of dllimport SYM_REF's.
9434         (legitimize_dllimport_symbol): Add prototype.
9435
9436 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
9437
9438         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
9439         reference in constructor with non self-referential type.
9440
9441 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
9442
9443         Removal of Return with Depressed Stack Pointer support
9444         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
9445         (ECF_SP_DEPRESSED): Likewise.
9446         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
9447         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
9448         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
9449         (expand_call): Do not test ECF_SP_DEPRESSED.
9450         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
9451         * function.c (keep_stack_depressed): Delete.
9452         (handle_epilogue_set): Likewise.
9453         (update_epilogue_consts): Likewise.
9454         (emit_equiv_load): Likewise.
9455         (thread_prologue_and_epilogue_insns): Remove support for Return with
9456         Depressed Stack Pointer.
9457         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
9458
9459 2008-04-06  Richard Guenther  <rguenther@suse.de>
9460
9461         PR tree-optimization/35400
9462         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
9463         information from SSA_NAMEs.
9464
9465 2008-04-06  Anatoly Sokolov <aesok@post.ru>
9466
9467         * config/avr/avr.h (avr_mega_p): Remove declaration.
9468         (AVR_MEGA): Remove macro.
9469         * config/avr/avr.c (avr_mega_p): Remove variable.
9470         (avr_override_options): Remove inicializion of avr_mega_p.
9471         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
9472         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
9473         (avr_jump_mode): (Ditto.).
9474         (avr_output_progmem_section_asm_op): (Ditto.).
9475         (avr_asm_init_sections): (Ditto.).
9476         (avr_asm_init_sections): (Ditto.).
9477         (avr_rtx_costs): (Ditto.).
9478         * config/avr/avr.md: (Ditto.).
9479         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
9480         '__AVR_MEGA__'.
9481
9482 2008-04-06  Richard Guenther  <rguenther@suse.de>
9483
9484         PR tree-optimization/35842
9485         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
9486         is_gimple_invariant_address.
9487
9488 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9489
9490         * gcc.c (default_compilers): Sync Fortran extensions list with
9491         that in fortran/lang-specs.h.
9492         * doc/invoke.texi: Likewise.
9493         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
9494         * dwarf2out.c (gen_compile_unit_die): Likewise.
9495
9496 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
9497
9498         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
9499
9500 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
9501
9502         PR target/12329
9503         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
9504         attribute is used for nested functions.
9505
9506 2008-04-05  Jan Hubicka  <jh@suse.cz>
9507
9508         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
9509
9510         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
9511         letter argument.
9512         (dump_files): Update.
9513         (enable_rtl_dump_file): Do not accept letter argument.
9514         * tree-pass.h (dump_file_info): Remove letter argument.
9515         * toplev.c (decode_d_option): Update -da handling.
9516         * toplev.h (enable_rtl_dump_file): Update prototype.
9517         * passes.c (register_one_dump_file): Do not accept IPA argument; work
9518         it out based on pass type.
9519         (register_dump_files_1): Likewise.
9520         (init_optimization_passes): Update register_one_dump_file calls.
9521         (execute_one_pass): Sanity check that IPA passes are called at IPA
9522         level and RTL passes at RTL level.
9523         (execute_pass_list): IPA pass can not be after or subpass of
9524         GIMPLE/RTL pass.
9525         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
9526         disallov RTL subpasses of IPA subpasses.
9527
9528 2008-04-05  Ben Elliston  <bje@au.ibm.com>
9529
9530         * tree-cfg.c (need_fake_edge_p): Return false for calls to
9531         builtins that return exactly once and do not throw. Cache call to
9532         call_expr_flags.
9533
9534 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
9535
9536         PR rtl-optimization/34916
9537         PR middle-end/35519
9538         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
9539         between instruction pairs.
9540
9541 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
9542
9543         * doc/invoke.texi: Document -mbitops for SH.
9544         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
9545         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
9546         * config/sh/sh.c (print_operand): Add %t operand code.
9547         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
9548         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
9549         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
9550         (extendqihi2): Likewise.
9551         (movqi_i): Likewise.
9552         (insv): Use bset, bclr and bst instructions for SH2A if possible.
9553         (extv): Use bld instruction for SH2A if possible.
9554         (extzv): Likewise.
9555         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
9556         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
9557         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
9558         (bset.b, bclr.b): Define peepholes.
9559         * config/sh/sh.opt (mbitops): New option.
9560
9561 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
9562
9563         PR target/35620
9564         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
9565         and view convert expression.
9566
9567 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
9568
9569         PR target/35364
9570         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
9571
9572 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
9573
9574         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
9575
9576         * config/i386/cpuid.h (bit_AES): New.
9577         (bit_PCLMUL): Likewise.
9578
9579         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
9580         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
9581         SSE2 if AES or PCLMUL is enabled.
9582         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
9583         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
9584         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
9585         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
9586         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
9587         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
9588         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
9589         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
9590         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
9591         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
9592         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
9593         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
9594         __builtin_ia32_aeskeygenassist128 and
9595         __builtin_ia32_pclmulqdq128.
9596         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
9597         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
9598         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
9599
9600         * config/i386/i386.h (TARGET_AES): New.
9601         (TARGET_PCLMUL): Likewise.
9602         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
9603
9604         * config/i386/i386.md (UNSPEC_AESENC): New.
9605         (UNSPEC_AESENCLAST): Likewise.
9606         (UNSPEC_AESDEC): Likewise.
9607         (UNSPEC_AESDECLAST): Likewise.
9608         (UNSPEC_AESIMC): Likewise.
9609         (UNSPEC_AESKEYGENASSIST): Likewise.
9610         (UNSPEC_PCLMUL): Likewise.
9611
9612         * config/i386/i386.opt (maes): New.
9613         (mpclmul): Likewise.
9614
9615         * config/i386/sse.md (aesenc): New pattern.
9616         (aesenclast): Likewise.
9617         (aesdec): Likewise.
9618         (aesdeclast): Likewise.
9619         (aesimc): Likewise.
9620         (aeskeygenassist): Likewise.
9621         (pclmulqdq): Likewise.
9622
9623         * config/i386/wmmintrin.h: New.
9624
9625         * doc/extend.texi: Document AES and PCLMUL built-in function.
9626
9627         * doc/invoke.texi: Document -maes and -mpclmul.
9628
9629 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
9630
9631         * function.c (free_after_parsing): Replace with
9632         cxx_push_function_context from C++ front-end.
9633         (allocate_struct_function): Don't call langhook.
9634         * langhooks.h (struct lang_hooks_for_functions): Delete.
9635         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
9636         member "function".
9637         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
9638         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
9639         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
9640         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
9641         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
9642         remove LANG_HOOKS_FUNCTION_INITIALIZER.
9643         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
9644
9645         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
9646         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
9647         
9648 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
9649
9650         PR c/35440
9651         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
9652         for all types.
9653
9654 2008-04-04  Richard Guenther  <rguenther@suse.de>
9655
9656         PR middle-end/35823
9657         * fold-const.c (optimize_minmax_comparison): Use the correct
9658         type for the constant in the simplified comparison.
9659
9660 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
9661
9662         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
9663         Pass L2 size as "--param l2-cache-size" to the compiler.
9664         (decode_l2_cache): New function to decode L2 cache parameters using
9665         0x8000006 extended cpuid function.
9666         (detect_caches_amd): Determine parameters of L2 cache using
9667         decode_l2_caches function.
9668         (decode_caches_intel): Decode L2 cache parameters.
9669         (detect_caches_intel): Determine L2 cache parameters using
9670         decode_caches_intel and decode_l2_caches functions.
9671
9672 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
9673
9674         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
9675         secondary input reload for subword loads from the constant pool.
9676
9677 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
9678
9679         PR target/35713
9680         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
9681           constants of the appropriate size for runtime calculations.
9682
9683         PR c/35712
9684         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
9685           decimal-float literal constant zero.
9686
9687 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
9688
9689         PR c/35738
9690         * c-parser.c (c_parser_omp_atomic): Call
9691         default_function_array_conversion on the RHS.
9692
9693         PR middle-end/35818
9694         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
9695         call is_variable_sized if decl has incomplete type.
9696
9697 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
9698
9699         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
9700
9701 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
9702
9703         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
9704         iterators.
9705         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
9706         (sgt<u>): Merge sgt and sgtu into new expander.
9707         (sgt, sgtu): Remove expanders.
9708         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
9709         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
9710         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
9711         *sgtu_<mode>_mips16 into new pattern.
9712         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
9713         (sge<u>): Merge sge and sgeu into new expander.
9714         (sge, sgeu): Remove expanders.
9715         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
9716         new pattern.
9717         (*sge_<mode>, second *sge_<mode>): Remove patterns.
9718         (slt<u>): Merge slt and sltu into new expander.
9719         (slt, sltu): Remove expanders.
9720         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
9721         (*slt_<mode>, *sltu_<mode>): Remove patterns.
9722         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
9723         *sltu_<mode>_mips16 into new pattern.
9724         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
9725         (sle<u>): Merge sle and sleu into new expander.
9726         (sle, sleu): Remove expanders.
9727         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
9728         (*sle_<mode>, *sleu_<mode>): Remove patterns.
9729         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
9730         *sleu_<mode>_mips16 into new pattern.
9731         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
9732
9733 2008-04-03  Jan Hubicka  <jh@suse.cz>
9734
9735         PR tree-optimization/35795
9736         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
9737         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9738         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9739         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
9740         * score/score3.c (score3_output_mi_thunk): Likewise.
9741         * score/score7.c (score7_output_mi_thunk): Likewise.
9742         * mips/mips.c (mips_output_mi_thunk): Likewise.
9743
9744 2008-04-03  Richard Guenther  <rguenther@suse.de>
9745
9746         * tree-vrp.c (extract_range_from_unary_expr): Handle all
9747         conversions.  Simplify code.
9748
9749 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9750
9751         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
9752
9753 2008-04-03  Tom Tromey  <tromey@redhat.com>
9754             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9755
9756         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
9757         * config/bfin/t-bfin-linux (generated_files): Add
9758         linux-sysroot-suffix.h.
9759         * doc/install.texi (Prerequisites): Require make 3.80.
9760         * doc/sourcebuild.texi (Front End Directory): Document new
9761         variable.
9762         * Makefile.in (generated_files): New variable.
9763         (ALL_HOST_OBJS): New variable.
9764         ($(ALL_HOST_OBJS)): New target.
9765
9766 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
9767
9768         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
9769         (remap_block): Call id->transform_lang_insert_block instead
9770         of langhook.
9771         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
9772         Set id.transform_lang_insert_block to NULL.
9773         (clone_body): Move to cp/optimize.c
9774         * tree-inline.h (struct copy_body_data): Change
9775         transform_lang_insert_block to function pointer.
9776         (copy_generic_body, copy_decl_no_change): Export.
9777         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
9778         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
9779         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
9780
9781         * c-tree.h (insert_block): Kill.
9782         * c-decl.c (insert_block): Kill.
9783
9784 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
9785
9786         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9787         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
9788         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
9789         argument.
9790         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
9791         argument, call {push,pop}_function_context from here.
9792         * c-parser.c: Use c_{push,pop}_function_context.
9793
9794         * function.c (push_function_context_to): Move meat ...
9795         (push_function_context): ... here.  Simplify.
9796         * function.c (pop_function_context_from): Move meat ...
9797         (pop_function_context): ... here.  Simplify.
9798         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
9799         leave_nested).
9800         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
9801         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
9802         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
9803         * tree.h (push_function_context_to, pop_function_context_from): Remove.
9804
9805 2008-04-03  Ben Elliston  <bje@au.ibm.com>
9806
9807         * expmed.c (extract_force_align_mem_bit_field): Remove.
9808
9809 2008-04-03  Richard Guenther  <rguenther@suse.de>
9810
9811         PR middle-end/35800
9812         * expr.h (try_casesi): Adjust prototype.
9813         * expr.c (try_casesi): Take fallback label as extra parameter.
9814         Use that for gen_casesi if default_label is NULL.
9815         * stmt.c (expand_case): Pass fallback label to try_casesi,
9816         make sure to fill gaps with a fallback label if default_label
9817         is not present.
9818
9819 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
9820
9821         PR target/35801
9822         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
9823
9824 2008-04-03  Ben Elliston  <bje@au.ibm.com>
9825
9826         * expmed.c (extract_split_bit_field): Remove if (0) code.
9827         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
9828         (do_ds_constraint): Likewise.
9829
9830 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
9831
9832         * doc/cppopts.texi (-dU): Document.
9833         * c-common.h (flag_dump_macros): Update comment.
9834         * c-opts.c (handle_OPT_d): Handle -dU.
9835         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
9836         dump_queued_macros, cb_used_define, cb_used_undef): New.
9837         (init_pp_output): Handle -dU.
9838         (cb_line_change): Call dump_queued_macros.
9839         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
9840
9841 2008-04-02  Anatoly Sokolov <aesok@post.ru>
9842
9843         * config/avr/predicates.md (io_address_operand): New predicate. 
9844         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
9845         * config/avr/avr.c (avr_io_address_p): Remove function.
9846         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
9847         'avr_io_address_p' function.
9848         (out_movhi_r_mr): (Ditto.).
9849         (out_movqi_mr_r): (Ditto.).
9850         (out_movhi_mr_r): (Ditto.).
9851         (avr_address_cost): (Ditto.).
9852
9853 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
9854
9855         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
9856         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
9857         in 32bit mode when XMM registers are available to avoid store
9858         forwarding stalls.
9859         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
9860         corresponding post-reload splitters.
9861
9862 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9863
9864         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
9865         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
9866         __builtin_ia32_roundss.
9867         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
9868         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
9869         __builtin_ia32_roundss.
9870         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
9871         IX86_BUILTIN_SHUFPD here.
9872
9873 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9874
9875         * config/i386/i386.md (plogic): New.
9876         (plogicprefix): Likewise.
9877
9878         * config/i386/mmx.md (mmx_<code><mode>3): New.
9879         (mmx_and<mode>3): Removed.
9880         (mmx_ior<mode>3): Likewise.
9881         (mmx_xor<mode>3): Likewise.
9882
9883         * config/i386/sse.md (<code><mode>3): New.
9884         (*<code><mode>3): Likewise.
9885         (*<code><mode>3): Likewise.
9886         (<code><mode>3): Likewise.
9887         (*sse_<code><mode>3): Likewise.
9888         (*sse2_<code><mode>3): Likewise.
9889         (<code>tf3): Likewise.
9890         (*<code>tf3): Likewise.
9891         (and<mode>3): Likewise.
9892         (*and<mode>3): Likewise.
9893         (ior<mode>3): Removed.
9894         (*ior<mode>3): Likewise.
9895         (xor<mode>3): Likewise.
9896         (*xor<mode>3): Likewise.
9897         (*and<mode>3): Likewise.
9898         (*ior<mode>3): Likewise.
9899         (*xor<mode>3): Likewise.
9900         (and<mode>3): Likewise.
9901         (*sse_and<mode>3): Likewise.
9902         (*sse2_and<mode>3): Likewise.
9903         (andtf3): Likewise.
9904         (*andtf3): Likewise.
9905         (ior<mode>3): Likewise.
9906         (*sse_ior<mode>3): Likewise.
9907         (*sse2_ior<mode>3): Likewise.
9908         (iortf3): Likewise.
9909         (*iortf3): Likewise.
9910         (xor<mode>3): Likewise.
9911         (*sse_xor<mode>3): Likewise.
9912         (*sse2_xor<mode>3): Likewise.
9913         (xortf3): Likewise.
9914         (*xortf3): Likewise.
9915
9916 2008-04-02  Richard Guenther  <rguenther@suse.de>
9917
9918         PR tree-optimization/14495
9919         PR tree-optimization/34793
9920         * tree-vrp.c (struct switch_update): New structure.
9921         (to_remove_edges, to_update_switch_stmts): New VECs.
9922         (simplify_switch_using_ranges): New function.  Remove not taken
9923         case labels and edges.
9924         (simplify_stmt_using_ranges): Call it.
9925         (identify_jump_threads): Mark edges we have queued for removal
9926         so we don't thread them.
9927         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
9928         case label vector.
9929         * tree-cfg.c (group_case_labels): Deal with missing default label.
9930         (tree_verify_flow_info): Allow missing default label.
9931         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
9932         (emit_case_nodes): Likewise.
9933         (expand_case): Do not rely on the default label to be present.
9934         * expr.c (try_casesi): Deal with NULL default_label.
9935         (do_tablejump): Likewise.
9936
9937 2008-04-02  Richard Guenther  <rguenther@suse.de>
9938
9939         PR tree-optimization/14495
9940         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
9941         SWITCH_EXPR here ...
9942         (vrp_visit_switch_stmt): ... but here (new function).
9943         (find_case_label_index): New helper function.
9944         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
9945
9946 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9947
9948         * fwprop.c: Fix ISO-C99ism.
9949
9950 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9951
9952         PR bootstrap/35752
9953         * Makefile.in (objdir): Set it here.
9954         * configure.ac: Not here.  Find dynamic linker characteristics.
9955         * exec-tool.in: Use them.
9956         * aclocal.m4: Regenerate.
9957         * configure: Regenerate.
9958
9959 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9960
9961         * expr.c (expand_var): Delete it.
9962         * expr.h (expand_var): Delete prototype.
9963         * function.c (expand_function_start): Use expand_decl instead.
9964         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
9965         langhook.
9966
9967 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
9968
9969         PR rtl-optimization/35542
9970         * fwprop.c (forward_propagate_and_simplify): Replace
9971         loc_reg_mentioned_in_p with reg_mentioned_p.
9972
9973 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
9974
9975         PR rtl-optimization/35281
9976         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
9977         (propagate_rtx_1): Handle PR_HANDLE_MEM.
9978         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
9979         (varying_mem_p): Move above propagate_rtx.
9980         (all_uses_available_at): Do not check MEMs.
9981
9982 2008-04-02  Rafael Espindola  <espindola@google.com>
9983
9984         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
9985         (register_edge_assert_for_2): Split the cond argument.
9986         (register_edge_assert_for_1): Adjust for the change in
9987         register_edge_assert_for_2.
9988         (register_edge_assert_for): Split the cond argument.
9989         (find_switch_asserts): Adjust for the change in
9990         register_edge_assert_for.
9991
9992 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
9993
9994         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
9995         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
9996         offsets for 64-bit mingw.
9997         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
9998         abi for x86_64-pc-mingw.
9999
10000 2008-04-02  Richard Guenther  <rguenther@suse.de>
10001
10002         * tree-vrp.c (extract_range_from_assert): Make sure to not
10003         produce range min/max with TREE_OVERFOW set.
10004         If merging a anti-range and a range keep the anti-range if
10005         the range covers all values of the type.
10006         (register_edge_assert_for_2): Only allow sign-changing
10007         conversions in detecting canonical range checks.  Also
10008         register an assert for the unsigned name if useful.
10009
10010         PR tree-optimization/35787
10011         * tree-vrp.c (vrp_val_max): New function.
10012         (vrp_val_min): Likewise.
10013         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
10014         (vrp_val_is_min): Likewise.
10015         (supports_overflow_infinity): Use vrp_val_{min,max}.
10016         (negative_overflow_infinity): Likewise.
10017         (positive_overflow_infinity): Likewise.
10018         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
10019         (is_positive_overflow_infinity): Likewise.
10020         (is_overflow_infinity): Likewise.
10021         (avoid_overflow_infinity): Use vrp_val_{min,max} and
10022         vrp_val_is_{min,max}.
10023         (set_and_canonicalize_value_range): Canonicalize anti-ranges
10024         to ranges if possible.  Avoid empty ranges.
10025
10026 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10027
10028         PR middle-end/35705
10029         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
10030         the expression is a function address.
10031
10032 2008-04-01  George Helffrich  <george@gcc.gnu.org>
10033
10034         PR fortran/35154, fortran/23057
10035         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
10036         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
10037         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
10038         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
10039         in common.
10040         (dbxout_syms): Check for COMMON-based symbol and wrap in
10041         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
10042         in bracket for efficiency.
10043
10044         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
10045         using DW_TAG_common_block + member offset.
10046         (add_pubname_string): New function.
10047         (dw_expand_expr): New function to find block name and offset for
10048         COMMON var.
10049         (common_check): New function to check whether symbol in Fortran COMMON.
10050         (gen_variable_die): If COMMON, use DW_TAG_common_block.
10051
10052 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
10053
10054         PR c/35436
10055         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
10056
10057 2008-04-02  Ben Elliston  <bje@au.ibm.com>
10058
10059         * config/v850/v850.md (casesi): Remove if (0) code.
10060         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10061         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
10062
10063 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
10064
10065         * config/i386/i386.md (rex64suffix): New mode attribute.
10066         (floathi<mode>2): Disable expander for SSE math.
10067         (*floathi<mode>2_1): New insn insn_and_split pattern.
10068         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
10069         corresponding post-reload splitters.
10070         (*floathi<mode>2_i387): New macroized insn pattern.
10071         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
10072         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
10073         insn_and_split pattern.
10074         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
10075         New macroized instruction patterns and corresponding post-reload
10076         splitters.
10077         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
10078         and corresponding post-reload splitters.
10079         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
10080         New macroized instruction patterns.
10081         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
10082         macroized instruction patterns and corresponding post-reload splitters.
10083         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
10084         corresponding post-reload splitters.
10085         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
10086         New macroized instruction patterns.
10087         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
10088         corresponding post-reload splitters.
10089         (*floatsi<mode>2_i387): New macroized instruction patterns.
10090
10091 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
10092
10093         * config/i386/i386.md (smaxmin): New.
10094         (umaxmin): Likewise.
10095         (maxminiprefix): Likewise.
10096         (maxminfprefix): Likewise.
10097         (<code><mode>3): Likewise.
10098         (smin<mode>3): Removed.
10099         (smax<mode>3): Likewise.
10100
10101         * config/i386/mmx.md (mmx_<code>v2sf3): New.
10102         (mmx_<code>v4hi3): Likewise.
10103         (mmx_<code>v8qi3): Likewise.
10104         (mmx_smaxv2sf3): Removed.
10105         (mmx_sminv2sf3): Likewise.
10106         (mmx_umaxv8qi3): Likewise.
10107         (mmx_smaxv4hi3): Likewise.
10108         (mmx_uminv8qi3): Likewise.
10109         (mmx_sminv4hi3): Likewise.
10110
10111         * config/i386/sse.md (<addsub><mode>3): New.
10112         (*<addsub><mode>3): Likewise.
10113         (<sse>_vm<addsub><mode>3): Likewise.
10114         (<maxmin><mode>3): Likewise.
10115         (*<maxmin><mode>3_finite): Likewise.
10116         (*<maxmin><mode>3): Likewise.
10117         (<sse>_vm<maxmin><mode>3): Likewise.
10118         (sse3_h<addsub>v4sf3): Likewise.
10119         (sse3_h<addsub>v2df3): Likewise.
10120         (<maxmin>v16qi3): Likewise.
10121         (*<maxmin>v16qi3): Likewise.
10122         (<maxmin>v8hi3): Likewise.
10123         (*<maxmin>v8hi3): Likewise.
10124         (*sse4_1_<maxmin><mode>3): Likewise.
10125         (*sse4_1_<maxmin><mode>3): Likewise.
10126         (add<mode>3): Removed.
10127         (*add<mode>3): Likewise.
10128         (<sse>_vmadd<mode>3): Likewise.
10129         (sub<mode>3): Likewise.
10130         (*sub<mode>3): Likewise.
10131         (<sse>_vmsub<mode>3): Likewise.
10132         (smin<mode>3): Likewise.
10133         (*smin<mode>3_finite): Likewise.
10134         (*smin<mode>3): Likewise.
10135         (<sse>_vmsmin<mode>3): Likewise.
10136         (smax<mode>3): Likewise.
10137         (*smax<mode>3_finite): Likewise.
10138         (*smax<mode>3): Likewise.
10139         (<sse>_vmsmax<mode>3): Likewise.
10140         (sse3_haddv4sf3): Likewise.
10141         (sse3_haddv2df3): Likewise.
10142         (sse3_hsubv4sf3): Likewise.
10143         (sse3_hsubv2df3): Likewise.
10144         (umaxv16qi3): Likewise.
10145         (*umaxv16qi3): Likewise.
10146         (smaxv8hi3): Likewise.
10147         (*smaxv8hi3): Likewise.
10148         (*sse4_1_smax<mode>3): Likewise.
10149         (*sse4_1_umax<mode>3): Likewise.
10150         (uminv16qi3): Likewise.
10151         (*uminv16qi3): Likewise.
10152         (sminv8hi3): Likewise.
10153         (*sminv8hi3): Likewise.
10154         (*sse4_1_smin<mode>3): Likewise.
10155         (*sse4_1_umin<mode>3): Likewise.
10156
10157 2008-04-01  Rafael Espindola  <espindola@google.com>
10158
10159         * tree-cfg.c (verify_expr): remove in_phi.
10160         (verify_stmt): Don't call walk_tree with verify_expr. Use
10161         is_gimple_min_invariant instead of is_gimple_val.
10162
10163 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
10164
10165         * doc/include/gpl_v3.texi: Update for manpage generation.
10166         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
10167         gpl.texi.
10168         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
10169         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
10170         gpl_v3.texi instead of gpl.texi.
10171         (gpl.pod): New.
10172
10173 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
10174
10175         PR pch/13675
10176         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
10177
10178 2008-04-01  Rafael Espindola  <espindola@google.com>
10179
10180         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
10181         (extract_code_and_val_from_cond): Use
10182         extract_code_and_val_from_cond_with_ops.
10183
10184 2008-04-01  Jan Hubicka  <jh@suse.cz>
10185
10186         * function.c (free_after_compilation): Free epilogue_delay_list.
10187         (prepare_function_start): Assert that previous compilation was freed.
10188
10189 2008-04-01  Jan Hubicka  <jh@suse.cz>
10190             Jim Wilson  <wilson@tuliptree.org>
10191             Andreas Tobler <andreast@gcc.gnu.org>
10192
10193         PR middle-end/35781
10194         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
10195         rtl.emit instead cfun->emit.
10196         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
10197         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
10198
10199 2008-04-01  Ben Elliston  <bje@au.ibm.com>
10200
10201         * doc/c-tree.texi (Function Basics): Fix grammatical error.
10202
10203 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
10204
10205         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
10206         New options
10207         (fprofile-use): Add var flag_profile_use
10208         * coverage.c (coverage_begin_output): Do not open a gcno file for
10209         output only if -ftest-coverage is set.
10210         Do not add getpwd() to gcda file path.
10211         (build_gcov_info): Check the new flag
10212         flag_profile_datafile_relative_path.
10213         (coverage_init): Use profile_data_prefix.
10214         Read profile counter only if flag_profile_use is set.
10215         * opts.c (common_handle_option): New option fprofile-use=,
10216         fprofile-dir=, fprofile-generate=.
10217         * toplev.c (profile_data_prefix): New variable definition.
10218         * toplev.h (profile_data_prefix): New declaration.
10219         * doc/invoke.tex (Option Summary, Optimization Options):
10220         Add new options.
10221
10222 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
10223
10224         * varasm.c (output_constant_pool_1): In LABEL_REF check,
10225         use tmp consistently.
10226
10227         PR target/35695
10228         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
10229         * config/ia64/ia64.c (rtx_needs_barrier): Handle
10230         UNSPEC_FR_RECIP_APPROX_RES.
10231         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
10232
10233 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
10234
10235         PR c/35750
10236         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
10237
10238 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10239
10240         PR middle-end/30186
10241         * fold-const.c (fold_indirect_ref_1): Support accessing non first
10242         element of the vector via a pointer.
10243
10244 2008-03-31  Ian Lance Taylor  <iant@google.com>
10245
10246         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
10247
10248 2008-03-31  Jan Hubicka  <jh@suse.cz>
10249
10250         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10251         get_arg_pointer_save_area.
10252         * expr.c (init_expr): Just clear out rtl.expr.
10253         * function.c (free_after_compilation): Clear out whole RTL structure.
10254         (get_func_frame_size): Merge into ...
10255         (get_frame_size): ... this one.
10256         (assign_stack_local_1): Merge into ...
10257         (assign_stack_local): ... this one.
10258         (expand_function_end): Update call of get_arg_pointer_save_area.
10259         (get_art_pointer_save_area): Remove cfun argument.
10260         * function.h (emit_status): regno_pointer_align does not need length
10261         attribute. Move x_regno_reg_rtx to ...
10262         (regno_reg_rtx): ... new global array.
10263         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
10264         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
10265         apply_args_value, forced_labels, stack_pointer_delta):
10266         Update accestors.
10267         (struct varasm_status): Move here from varasm.c
10268         (struct rtl_data): New. Move here some fields from struct function.
10269         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10270         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10271         used_temp_slots avail_temp_slots, temp_slot_level,
10272         nonlocal_goto_handler_labels): Update accesstors.
10273         (rtl): New global variable.
10274         (struct function): Move some fileds to rtl_data.
10275         (get_arg_pointer_save_area): Update prototype.
10276         * emit-rtl.c (rtl): Declare.
10277         (regno_reg_rtx): Declare.
10278         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10279         Update.
10280         (gen_reg_rtx): Update.
10281         (init_virtual_regs): Do not tate emit_status argument.
10282         (init_emit): Do not allocate emit.
10283         * varasm.c (varasm_statuc): Move to function.h.
10284         (n_deferred_constatns): Update accestor.
10285         (init_varasm_status): Do not allocate varasm_status.
10286         (force_const_mem, get_pool_size, output_constant_pool): Update.
10287         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10288         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10289
10290 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
10291
10292         PR rtl-optimization/35729
10293         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
10294         references.
10295
10296 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
10297
10298         PR target/32000
10299         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
10300         load/store if memory is unaligned.
10301         (*movti_rex64): Likewise.
10302
10303         * config/i386/predicates.md (misaligned_operand): New.
10304
10305 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
10306
10307         PR tree-opt/35431
10308         * tree-ssa-phiopt.c (conditional_replacement): Return early for
10309         complex types.
10310
10311 2008-03-31  Jan Beulich  <jbeulich@novell.com>
10312
10313         * config/ia64/constraints.md: Add 'j' constraint.
10314         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
10315         (movdi_internal): Likewise.
10316
10317 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
10318
10319         PR c/35748
10320         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
10321
10322 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10323
10324         PR target/35757
10325         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
10326         proper error message for the third argument on blendpd and
10327         blendps.
10328
10329         * config/i386/sse.md (blendbits): New.
10330         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
10331
10332 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
10333
10334         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
10335
10336 2008-03-30  Richard Guenther  <rguenther@suse.de>
10337
10338         PR middle-end/31023
10339         * fold-const.c (fold_sign_changed_comparison): Do leave
10340         conversions to base-types alone.
10341
10342 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10343
10344         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
10345         the link register if one altivec register is be saved.
10346
10347 2008-03-30  Ben Elliston  <bje@au.ibm.com>
10348
10349         * final.c (final_scan_insn): Remove if (0) code.
10350
10351 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
10352
10353         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
10354
10355 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
10356
10357         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
10358         of V4SFmode to ix86_binary_operator_ok.
10359
10360 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
10361
10362         * config/i386/i386.c (override_options): Initialize
10363         ix86_veclib_handler to ix86_veclibabi_svml when
10364         -mveclibabi=svml is used.
10365         (ix86_veclibabi_svml): New function for SVML ABI style
10366         vectorization support.
10367         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
10368
10369 2008-03-28  Rafael Espindola  <espindola@google.com>
10370
10371         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
10372         (tree_binary_nonnegative_warnv_p): Make it public.
10373         (tree_single_nonnegative_warnv_p): Make it public.
10374         (tree_invalid_nonnegative_warnv_p): Make it public.
10375         (tree_unary_nonzero_warnv_p): Make it public.
10376         (tree_binary_nonzero_warnv_p): Make it public
10377         (tree_single_nonzero_warnv_p): Make it public.
10378         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
10379         (extract_range_from_binary_expr): Split the expr argument.
10380         (extract_range_from_unary_expr): Split the expr argument.
10381         (extract_range_from_comparison): Split the expr argument.
10382         (extract_range_from_expr): Use the new aux functions.
10383         (vrp_evaluate_conditional_warnv): Use
10384         vrp_evaluate_conditional_warnv_with_ops.
10385         * tree.h (tree_unary_nonzero_warnv_p): Declare.
10386         (tree_binary_nonzero_warnv_p): Declare.
10387         (tree_single_nonzero_warnv_p): Declare.
10388         (tree_expr_nonzero_warnv_p): Declare.
10389         (tree_unary_nonnegative_warnv_p): Declare.
10390         (tree_binary_nonnegative_warnv_p): Declare.
10391         (tree_single_nonnegative_warnv_p): Declare.
10392         (tree_invalid_nonnegative_warnv_p): Declare.
10393
10394 2008-03-28  Richard Guenther  <rguenther@suse.de>
10395
10396         PR tree-optimization/30317
10397         PR tree-optimization/30911
10398         PR tree-optimization/34793
10399         * tree-vrp.c (set_and_canonicalize_value_range): New function.
10400         (struct assert_locus_d): New member EXPR.
10401         (register_new_assert_for): Add EXPR parameter to support
10402         ASSERT_EXPR <name, expr OP limit>.
10403         (register_edge_assert_for_1): Adjust callers.
10404         (find_assert_locations): Likewise.
10405         (process_assert_insertions_for): Build condition from expression.
10406         (extract_range_from_assert): Handle ASSERT_EXPRs
10407         of the form ASSERT_EXPR <name, expr OP limit>.
10408         (register_edge_assert_for_2): New helper registering
10409         asserts for comparisons.  Recognize range tests of the form
10410         (unsigned)i - CST1 OP CST2.
10411         (register_edge_assert_for_1): Use it.
10412         (register_edge_assert_for): Likewise.
10413         (needs_overflow_infinity): Integer sub-types
10414         do not need overflow infinities.
10415         (vrp_val_is_max): The extreme values of integer sub-types
10416         are those of the base type.
10417         (vrp_val_is_min): Likewise.
10418         * tree.def (ASSERT_EXPR): Document extra allowed conditional
10419         expressions.
10420
10421 2008-03-28  Nick Clifton  <nickc@redhat.com>
10422
10423         PR target/31110
10424         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
10425         Return GENERAL_REGS for stack adjustment reloads.
10426
10427 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10428
10429         PR target/31334
10430         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
10431         const_vector when all the vectors are constant.
10432
10433 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
10434
10435         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
10436         comparisons.
10437         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
10438         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
10439         (scc_sf): New.
10440         (s<code>_sf): Use new scc_sf attribute for opcode names.
10441
10442 2008-03-27  Tom Tromey  <tromey@redhat.com>
10443
10444         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
10445         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
10446         config/spu/t-spu-elf, config/i386/t-interix,
10447         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
10448         config/i386/x-darwin, config/i386/x-mingw32,
10449         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
10450         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
10451         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
10452         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
10453         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
10454         config/rs6000/x-darwin, config/rs6000/t-rs6000,
10455         config/score/t-score-elf, config/arm/t-strongarm-pe,
10456         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
10457         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
10458         Revert automatic dependency patch.
10459
10460 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10461
10462         PR target/35657
10463         * config/i386/i386.c (ix86_function_arg_boundary): Align
10464         decimal floating point to its natural boundary.
10465
10466 2008-03-27  Richard Guenther  <rguenther@suse.de>
10467
10468         PR middle-end/35716
10469         * fold-const.c (fold_comparison): Restrict distinct decl
10470         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
10471         solely rely on operand_equal_p.
10472
10473 2008-03-27  Richard Guenther  <rguenther@suse.de>
10474
10475         PR c/32511
10476         * c-common.c (handle_weak_attribute): Reject combination of
10477         weak and inline.
10478
10479 2008-03-27  Richard Guenther  <rguenther@suse.de>
10480
10481         PR tree-optimization/32810
10482         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
10483         conversions from DECL_INITIAL.
10484         (fold_const_aggregate_ref): Likewise from constructor elements.
10485
10486 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
10487
10488         * tree-affine.h (aff_combination_expand): Declare.
10489         (get_inner_reference_aff): Likewise.
10490         * tree-affine.c (aff_combination_expand): Split out from
10491         tree_to_aff_combination_expand.
10492         (get_inner_reference_aff): New function.
10493         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
10494         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
10495         (struct lim_aux_data): sm_done field removed.
10496         (mem_ref_loc_p, mem_ref_locs_p): New types.
10497         (struct mem_ref): Added id, stored, accesses_in_loop,
10498         indep_loop, dep_loop, indep_ref, dep_ref fields.
10499         Removed is_stored, locs and next fields.
10500         (memory_accesses): New variable.
10501         (movement_possibility): Do not allow moving statements
10502         that store to memory.
10503         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
10504         New functions.
10505         (determine_max_movement): For statements with memory references,
10506         find the outermost loop in that the reference is independent.
10507         (move_computations_stmt): Mark the virtual operands for renaming.
10508         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
10509         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
10510         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
10511         add_vop_ref_mapping, create_vop_ref_mapping_loop,
10512         create_vop_ref_mapping, analyze_memory_references,
10513         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
10514         get_all_locs_in_loop, ref_always_accessed_p,
10515         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
10516         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
10517         store_motion_loop, store_motion): New functions.
10518         (struct vop_to_refs_elt): New type.
10519         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
10520         memref_hash, memref_eq, hoist_memory_references): Rewritten.
10521         (schedule_sm): Replaced by...
10522         (execute_sm): ... this.
10523         (determine_lsm_ref, hoist_memory_references,
10524         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
10525         find_more_ref_vops, free_mem_ref, free_mem_refs,
10526         determine_lsm_loop, determine_lsm): Removed.
10527         (tree_ssa_lim_finalize): Free data structures used by store motion.
10528         (tree_ssa_lim): Call analyze_memory_references.  Use
10529         store_motion instead of determine_lsm.
10530
10531 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
10532
10533         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
10534         rename tmake_file to m68hc11/t-m68hc11.
10535         (mcore): Set inhibit_libc to true.
10536         * config.host (alpha*-dec-*vms*): Set extra_programs.
10537         (interix3*): Don't use host_xmake_file.
10538         * configure.ac: Let config.gcc override inhibit_libc.
10539         * configure: Regenerate.
10540
10541         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
10542         * config/t-openbsd-thread: Remove commented out lines.
10543         
10544         * config/x-interix: Remove.
10545
10546         * config/m68hc11/t-m68hc11-gas: Rename to...
10547         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
10548
10549         * config/mcore/t-mcore: Remove T_CFLAGS.
10550         * config/mcore/t-mcore-pe: Likewise.
10551
10552 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
10553
10554         * configure.ac: Replace custom __GNU_SOURCE test with
10555         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
10556         * aclocal.m4: Regenerate.
10557         * configure: Regenerate.
10558         * config.in: Regenerate.
10559
10560 2008-03-27  Richard Guenther  <rguenther@suse.de>
10561
10562         * fold-const.c (target.h): Include.
10563         (fold_comparison): Fold comparison of addresses of decls
10564         that bind locally or of constants.  Consolidate address folding code.
10565         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
10566         results from fold_binary_to_constant.
10567         (compare_values_warnv): Likewise.
10568
10569 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
10570
10571         PR middle-end/35429
10572         * fold-const.c (fold_truthop): Check for integeral types when folding
10573         a == 0 && b == 0 and a != 0 || b != 0 .
10574
10575 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
10576
10577         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
10578
10579 2008-03-26  Andreas Schwab  <schwab@suse.de>
10580
10581         * doc/invoke.texi: Fix use of @item vs. @itemx.
10582
10583 2008-03-26  Tom Tromey  <tromey@redhat.com>
10584
10585         * Makefile.in (build/gensupport.o, build/print-rtl.o,
10586         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
10587         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
10588         build/gencodes.o, build/genconditions.o, build/genconfig.o,
10589         build/genconstants.o, build/genemit.o, build/genextract.o,
10590         build/genflags.o, build/genmddeps.o, build/genopinit.o,
10591         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
10592         options.h.
10593
10594 2008-03-26  Richard Guenther  <rguenther@suse.de>
10595
10596         Revert
10597         2008-03-26  Richard Guenther  <rguenther@suse.de>
10598
10599         * fold-const.c (target.h): Include.
10600         (fold_comparison): Fold comparison of addresses of two decls
10601         that bind locally.  Consolidate address folding code.
10602
10603 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10604
10605         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
10606         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
10607         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
10608         dconstsqrt2, dconstthird, dconste and/or dconst10.
10609         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
10610         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
10611         dconstsqrt2, dconste): Delete.
10612         (init_emit_once): Likewise.  Simplify initializing dconstm1.
10613         Constify variable.
10614         * real.c (get_real_const): New.
10615         * real.h (dconst3, dconst10, dconstm2, dconstthird,
10616         dconstsqrt2, dconste): Delete.
10617         (real_value_const, get_real_const): New.
10618
10619 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
10620
10621         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
10622
10623         * config/i386/i386.c (ix86_function_arg_boundary): Check
10624         BIGGEST_ALIGNMENT instead of 128.
10625         (setup_incoming_varargs_64): Likewise.
10626
10627 2008-03-26  Tom Tromey  <tromey@redhat.com>
10628
10629         * Makefile.in (DEPFILES): Add missing '/'.
10630
10631 2008-03-26  Richard Guenther  <rguenther@suse.de>
10632
10633         * fold-const.c (target.h): Include.
10634         (fold_comparison): Fold comparison of addresses of two decls
10635         that bind locally.  Consolidate address folding code.
10636
10637 2008-03-26  Nick Clifton  <nickc@redhat.com>
10638
10639         PR target/31232
10640         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
10641         not allow INT+INT as a legitimate addressing mode.
10642
10643 2008-03-26  Richard Guenther  <rguenther@suse.de>
10644
10645         * tree-flow.h (widen_bitfield): Remove declaration.
10646         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
10647         (widen_bitfield): Remove function.
10648         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
10649         code.
10650
10651 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10652
10653         PR target/31558
10654         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
10655         error_mark_node's.
10656
10657 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
10658
10659         PR rtl-optimization/35232
10660         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
10661         (forget_old_reloads_1, forget_marked_reloads): Don't clear
10662         reg_reloaded_call_part_clobbered here.
10663         (reload_regs_reach_end_p): New function.
10664         (reload_reg_rtx_for_input): New variable.
10665         (reload_reg_rtx_for_output): Likewise.
10666         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
10667         when reassigning a pseudo register.  Load reloadreg from 
10668         reload_reg_rtx_for_input, moving the mode and register
10669         calculation to...
10670         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
10671         instead of the original when deciding whether an input reload
10672         would be a no-op or whether an output reload can be deleted.
10673         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
10674         when setting up new_spill_reg_store.  Load it from
10675         reload_reg_rtx_for_output, moving the mode and register
10676         calculation to...
10677         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
10678         instead of the original when deciding whether an output reload
10679         would be a no-op.  Do the same when modifying insn notes.
10680         Use rtx_equal_p instead of == to compare the registers.
10681         (inherit_piecemeal_p): Take a mode and two register numbers
10682         as argument.
10683         (emit_reload_insns): Clear new_spill_reg_store for every hard
10684         register in the reload register.  Remove spill registers
10685         from reg_reloaded_valid before considering whether to record
10686         inheritance information for them.  Use reload_reg_rtx_for_output
10687         instead of reg_rtx when recording output reloads.  Use
10688         reload_reg_rtx_for_input instead of reg_rtx when recording
10689         input reloads.  Set or clear reg_reloaded_call_part_clobbered
10690         at the same time as setting reg_reloaded_valid.
10691         (delete_output_reload): Add a new_reload_reg parameter and use it
10692         instead of rld[j].reg_rtx.
10693         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
10694         calls accordingly.
10695
10696 2008-03-25  Tom Tromey  <tromey@redhat.com>
10697
10698         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
10699         (build/genattr.o): Likewise.
10700         (build/genattrtab.o): Likewise.
10701         (build/gencodes.o): Likewise.
10702         (build/genconfig.o): Likewise.
10703         (build/genconstants.o): Likewise.
10704         (build/genemit.o): Likewise.
10705         (build/genextract.o): Likewise.
10706         (build/genflags.o): Likewise.
10707
10708 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
10709         
10710         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
10711         instead of size_int for integer types.
10712         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
10713         to match type of MINUS_EXPR.
10714         
10715 2008-03-25  Tom Tromey  <tromey@redhat.com>
10716
10717         * configure: Rebuilt.
10718         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
10719         Makefile.
10720
10721 2008-03-25  Tom Tromey  <tromey@redhat.com>
10722
10723         * config/x-solaris (host-solaris.o): Update.
10724         * config/x-linux (host-linux.o): Update.
10725         * config/x-hpux (host-hpux.o): Update.
10726         * config/x-darwin (host-darwin.o): Update.
10727         * config/v850/t-v850e (v850-c.o): Update.
10728         * config/v850/t-v850 (v850-c.o): Update.
10729         * config/t-vxworks (vxworks.o): Update.
10730         * config/t-sol2 (sol2-c.o, sol2.o): Update.
10731         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
10732         * config/spu/t-spu-elf (spu-c.o): Update.
10733         (spu.o): Remove.
10734         * config/sh/t-symbian (sh-c.o): Update.
10735         (symbian.o): Update.
10736         * config/sh/t-sh (sh-c.o): Update.
10737         * config/score/t-score-elf (score7.o, score3.o): Update.
10738         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
10739         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
10740         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
10741         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
10742         (rs6000.o): Remove.
10743         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10744         * config/m32c/t-m32c (m32c-pragma.o): Update.
10745         * config/ia64/t-ia64 (ia64-c.o): Update.
10746         * config/i386/x-mingw32 (host-mingw32.o): Update.
10747         * config/i386/x-i386 (driver-i386.o): Update.
10748         * config/i386/x-darwin (host-i386-darwin.o): Update.
10749         * config/i386/x-cygwin (host-cygwin.o): Update.
10750         * config/i386/t-nwld (nwld.o): Update.
10751         * config/i386/t-netware (netware.o): Update.
10752         * config/i386/t-interix (winnt.o): Update.
10753         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
10754         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
10755         msformat-c.o): Update.
10756         * config/bfin/t-bfin-linux (generated_files): Add
10757         linux-sysroot-suffix.h.
10758         * config/arm/t-wince-pe (pe.o): Update.
10759         * config/arm/t-strongarm-pe (pe.o): Update.
10760         * config/arm/t-pe (pe.o): Update.
10761         * config/arm/t-arm (arm-c.o): Update.
10762         * doc/install.texi (Prerequisites): Require make 3.80.
10763         * Makefile.in: Remove .o targets.
10764         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
10765         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
10766         (simple_generated_h, simple_generated_c): Move earlier.
10767         (generated_files): New variable.
10768         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
10769         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
10770         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
10771         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
10772         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
10773         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
10774         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
10775         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
10776         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
10777         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
10778         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
10779         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
10780         (.c.o): Remove.
10781         (COMPILE.base, COMPILE): New variables.
10782         (%.o): New pattern rule.
10783         (ALL_HOST_OBJS): New variable.
10784         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
10785         (dummy-checksum.o, cc1-checksum.o): Remove.
10786         (DRIVER_SHLIB): New variable.
10787         (DRIVER_DEFINES): Use it.
10788         (gencondmd.c): Move out of build/.
10789         (s-conditions): Update.
10790         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
10791         (ALL_BUILD_OBJS): Likewise.
10792         (build/%.o): Use BUILDCOMPILE.
10793         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
10794         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
10795         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
10796         build/gencheck.o, build/gencodes.o, build/genconditions.o,
10797         build/genconfig.o, build/genconstants.o, build/genemit.o,
10798         build/genextract.o, build/genflags.o, build/genmddeps.o,
10799         build/genopinit.o, build/genoutput.o, build/genpeep.o,
10800         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
10801         build/gen-protos.o, build/scan.o, build/fix-header.o,
10802         build/scan-decls.o): Simplify.
10803         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
10804         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
10805         prefix.o, toplev.o): Reduce to variable setting.
10806         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
10807         ($(out_object_file), gcc-options.o): New targets.
10808         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
10809         * configure: Rebuilt.
10810         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
10811         * doc/sourcebuild.texi (Front End Directory): Document new variable.
10812
10813 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
10814
10815         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
10816         complain when we hit an error, return ERROR_MARK_NODE.
10817
10818 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10819
10820         * config/sh/constraints.md (Pso, Psz): New constraints.
10821         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
10822         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
10823
10824 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10825
10826         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
10827         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
10828
10829 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
10830
10831         * config/sh/sh.md (prefetch): Add condition for SH2A target.
10832         (prefetch_sh2a): New.   
10833
10834 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
10835             Naveen.H.S  <naveen.hs@kpitcummins.com>
10836
10837         * config/sh/constraints.md (I28): New constraint.
10838         * config/sh/sh.c (broken_move): Add support for movi20s.
10839         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
10840
10841 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
10842             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
10843             Naveen.H.S  <naveen.hs@kpitcummins.com>
10844
10845         * config/sh/sh.c (SH_ATTRIBUTES): Define.
10846         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
10847         (print_operand): Handle resbank in %@ operand code.
10848         (sh_encode_section_info): New.
10849         (push_regs): Add conditions for resbank.
10850         (sh_expand_epilogue): Likewise.
10851         (sh_insert_attributes): Likewise.
10852         (sh_attribute_table): Likewise.
10853         (sh_handle_resbank_handler_attribute): New.
10854         (sh2a_handle_function_vector_handler_attribute): New.
10855         (sh2a_is_function_vector_call): New.
10856         (sh2a_get_function_vector_number): New.
10857         (sh2a_function_vector_p): New.
10858         (sh_cfun_resbank_handler_p): New.
10859         * config/sh/sh.md (calli): Emit jsr/n if possible.
10860         (calli_tbr_rel): New.
10861         (calli_pcrel): Emit jsr/n if possible.
10862         (return_i): Emit rts/n if possible.
10863         (call_valuei_tbr_rel): New.
10864         (call_valuei_pcrel): Add condition for SH2A target.
10865         (call_value): Likewise.
10866         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
10867         (sh2a_get_function_vector_number): Likewise.
10868         (sh2a_is_function_vector_call): Likewise.
10869         * doc/extend.texi: Document TBR relative addressing of SH2A.
10870         (resbank): Add description for SH2A.
10871
10872 2008-03-24  Richard Guenther  <rguenther@suse.de>
10873
10874         PR c/22371
10875         * gimplify.c (gimplify_modify_expr): For frontend type-correct
10876         pointer assignments change conversions according to middle-end rules.
10877         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
10878         * configure.ac: Include type checking in yes.
10879         * configure: Regenerate.
10880
10881 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10882
10883         * diagnostic.c (diagnostic_count_diagnostic): Delete.
10884         (diagnostic_report_diagnostic): Update. Handle ICEs here.
10885         
10886 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
10887
10888         * gthr-vxworks.h (UNUSED): Define.
10889
10890 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
10891
10892         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
10893
10894 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
10895
10896         * doc/extend.texi (Function Attributes): Add missing comma in the
10897         example of the "alloc_size" attribute.
10898         
10899 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
10900
10901         Revert:
10902         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
10903
10904         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
10905         32bit host.
10906
10907         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
10908
10909         PR target/35496
10910         * stor-layout.c (update_alignment_for_field): Set minimum alignment
10911         of the underlying type of a MS bitfield layout to the natural
10912         alignment of the type.
10913
10914         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
10915
10916         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
10917         to their natural alignment to avoid store forwarding stalls.
10918
10919 2008-03-22  Richard Guenther  <rguenther@suse.de>
10920
10921         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
10922         For PHI nodes verify the address is invariant.
10923         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
10924         (get_symbol_constant_value): Use is_gimple_min_invariant.
10925         (maybe_fold_stmt_indirect): Likewise.
10926
10927 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
10928
10929         PR rtl-optimization/33927
10930         * Makefile.in (dse.o): Depend on $(TM_P_H).
10931         * expr.h (extract_low_bits): Declare.
10932         * expmed.c (extract_low_bits): New function.
10933         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
10934         * dse.c: Include tm_p.h.
10935         (find_shift_sequence): Remove the read_reg argument and return the
10936         read value.  Emit the instructions instead of returning them.
10937         Iterate on new_mode rather than calculating it each time.
10938         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
10939         source to NEW_MODE and extract_low_bits to convert the shifted
10940         value to READ_MODE.
10941         (replace_read): Allow the load and store to have different mode
10942         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
10943         or extraction instructions before trying the replacement.  Update
10944         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
10945
10946 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
10947
10948         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
10949         to their natural alignment to avoid store forwarding stalls.
10950
10951 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10952
10953         PR target/27946
10954         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
10955         encouraging but not allowing gprs for input;
10956         change the input constraint to !f#r.
10957         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
10958         gprs for output;
10959         change the output constraint to !f#r.
10960
10961 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
10962
10963         PR target/13958
10964         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
10965         corresponding post-reload splitters.
10966         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
10967         when x87 FP math is selected.
10968         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
10969         New function prototype.
10970         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
10971         unreachable function to ease macroization of insn patterns.
10972
10973 2008-03-21  Martin Jambor  <mjambor@suse.cz>
10974
10975         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
10976         reference dumps if ddr is NULL or dependence is unknown.
10977
10978 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10979
10980         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
10981         unsigned extension into account.
10982         (ATOMIC_COMPARE_AND_SWAP): Likewise.
10983         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
10984         Do computations on a scratch register.
10985
10986 2008-03-21  Richard Guenther  <rguenther@suse.de>
10987
10988         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
10989         Use is_gimple_min_invariant instead of TREE_INVARIANT.
10990         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
10991         * tree-ssa-dom.c (record_equality): Likewise.
10992         * tree-inline.c (copy_body_r): Likewise.
10993         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
10994         TREE_INVARIANT.
10995
10996 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10997
10998         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
10999         as 'delete_unused' argument.
11000
11001 2008-03-20  Richard Guenther  <rguenther@suse.de>
11002
11003         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11004         special casing of constant qualifiers.
11005         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
11006         care about them in general.
11007         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
11008         regardless of their type.
11009         (fold_stmt_r): Forcefully fold *& if we end up with that.
11010
11011 2008-03-20  Paul Brook  <paul@codesourcery.com>
11012
11013         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
11014         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
11015         linker flags.
11016         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
11017         definition.
11018         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
11019         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
11020
11021 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
11022
11023         * common.opt (Wmudflap): New option.
11024         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
11025         (mx_register_decls): Likewise.
11026         (mudflap_finish_file): Likewise.
11027         * doc/invoke.texi: Document -Wno-mudflap.
11028
11029 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
11030
11031         * c-format.c (replace_format_name_to_system_name): New.
11032         (cmp_attribs): New.
11033         (convert_format_name_to_system_name): New.
11034         (decode_format_attr): Add use of convert_format_name_to_system_name.
11035         (format_types_orig): Add gnu_ prefix to names.
11036         (check_format_info_main): Special treating of \0 escaped names for
11037         supporting multi-character format specifiers as I32, I64.
11038         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
11039         (gnu_target_overrides_format_attributes): New.
11040         * c-format.h: Add structure target_ovr_attr to hold
11041         system specific formatter names.
11042         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
11043         msformat-c.o file to c_target_objs and cxx_target_objs.
11044         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11045         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
11046         (TARGET_N_FORMAT_TYPES): New.
11047         * config/i386/msformat-c.c: New.
11048         * config/i386/t-cygming: Add build rule for msformat-c.o.
11049         * doc/extend.texi: Add new format names gnu_* and ms_* and
11050         further details.
11051         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
11052
11053 2008-03-20  Ira Rosen  <irar@il.ibm.com>
11054
11055         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
11056         optimizations turned on under -O3.
11057         (ftree-vectorize): Add that the flag is turned on with -O3.
11058
11059 2008-03-20  Ben Elliston  <bje@au.ibm.com>
11060
11061         * regmove.c (try_auto_increment): Fix spelling error in comment.
11062         * final.c (final_scan_insn): Likewise.
11063
11064 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
11065
11066         PR target/14552
11067         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
11068         allocator preferences for "y" and "r" class registers.
11069         ("*mov<mode>_internal"): Ditto.
11070         ("*movv2sf_internal_rex64"): Ditto.
11071         ("*movv2sf_internal"): Ditto.
11072
11073 2008-03-19  Michael Matz  <matz@suse.de>
11074
11075         PR middle-end/35616
11076         * calls.c (expand_call): Check overlap of arguments with call
11077         address for sibcalls.
11078
11079 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11080
11081         PR target/35496
11082         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11083         of the underlying type of a MS bitfield layout to the natural
11084         alignment of the type.
11085
11086 2008-03-19  Jan Hubicka  <jh@suse.cz>
11087
11088         PR other/35094
11089         * toplev.c (decode_d_option): Handle all CPP flags.
11090         * tree-vrp.c: Update tree_pass descriptors.
11091         * regrename.c: Update tree_pass descriptors.
11092         * fwprop.c: Update tree_pass descriptors.
11093         * doc/invoke.texi: Remove documentation of dropped -d? flags.
11094         * tree-into-ssa.c: Update tree_pass descriptors.
11095         * tree-dump.c: Update tree_pass descriptors.
11096         * tree-complex.c: Update tree_pass descriptors.
11097         * tree-dump.h: Update tree_pass descriptors.
11098         * see.c: Update tree_pass descriptors.
11099         * cgraphbuild.c: Update tree_pass descriptors.
11100         * tracer.c: Update tree_pass descriptors.
11101         * tree-loop-distribution.c: Update tree_pass descriptors.
11102         * cgraph.c: Update tree_pass descriptors.
11103         * postreload-gcse.c: Update tree_pass descriptors.
11104         * postreload.c: Update tree_pass descriptors.
11105         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
11106         * tree-tailcall.c: Update tree_pass descriptors.
11107         * tree-pass.h (tree_opt_pass): Rename to ...
11108         (opt_pass) ... this one; add "type" field and remove letter field.
11109         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
11110         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
11111         all_lowering_passes): Update declaration.
11112         * ipa-cp.c: Update tree_pass descriptors.
11113         * final.c: Update tree_pass descriptors.
11114         * omp-low.c: Update tree_pass descriptors.
11115         * tree-ssa-dse.c: Update tree_pass descriptors.
11116         * ipa-reference.c: Update tree_pass descriptors.
11117         * tree-ssa-uncprop.c: Update tree_pass descriptors.
11118         * auto-inc-dec.c: Update tree_pass descriptors.
11119         * reorg.c: Update tree_pass descriptors.
11120         * cgraphunit.c: Update tree_pass descriptors.
11121         * tree-ssa-copyrename.c: Update tree_pass descriptors.
11122         * tree-ssa-ccp.c: Update tree_pass descriptors.
11123         * df-core.c: Update tree_pass descriptors.
11124         * mode-switching.c: Update tree_pass descriptors.
11125         * tree-nomudflap.c: Update tree_pass descriptors.
11126         * modulo-sched.c: Update tree_pass descriptors.
11127         * ipa-pure-const.c: Update tree_pass descriptors.
11128         * cse.c: Update tree_pass descriptors.
11129         * web.c: Update tree_pass descriptors.
11130         * tree-stdarg.c: Update tree_pass descriptors.
11131         * tree-ssa-math-opts.c: Update tree_pass descriptors.
11132         * tree-ssa-dom.c: Update tree_pass descriptors.
11133         * tree-nrv.c: Update tree_pass descriptors.
11134         * tree-ssa-alias.c: Update tree_pass descriptors.
11135         * loop-init.c: Update tree_pass descriptors.
11136         * gimple-low.c: Update tree_pass descriptors.
11137         * ipa-inline.c: Update tree_pass descriptors.
11138         * tree-ssa-sink.c: Update tree_pass descriptors.
11139         * global.c: Update tree_pass descriptors.
11140         * ifcvt.c: Update tree_pass descriptors.
11141         * jump.c: Update tree_pass descriptors.
11142         * predict.c: Update tree_pass descriptors.
11143         * tree-ssa-loop.c: Update tree_pass descriptors.
11144         * recog.c: Update tree_pass descriptors.
11145         * dse.c: Update tree_pass descriptors.
11146         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
11147         * tree-eh.c: Update tree_pass descriptors.
11148         * regmove.c: Update tree_pass descriptors.
11149         * local-alloc.c
11150         * function.c: Update tree_pass descriptors.
11151         * tree-vectorizer.c: Update tree_pass descriptors.
11152         * gcse.c: Update tree_pass descriptors.
11153         * ipa-type-escape.c: Update tree_pass descriptors.
11154         * tree-if-conv.c: Update tree_pass descriptors.
11155         * init-regs.c: Update tree_pass descriptors.
11156         * ipa.c: Update tree_pass descriptors.
11157         * tree-ssa-phiopt.c: Update tree_pass descriptors.
11158         * rtl-factoring.c: Update tree_pass descriptors.
11159         * lower-subreg.c: Update tree_pass descriptors.
11160         * bt-load.c: Update tree_pass descriptors.
11161         * tree-dfa.c: Update tree_pass descriptors.
11162         * except.c: Update tree_pass descriptors.
11163         * emit-rtl.c: Update tree_pass descriptors.
11164         * cfgexpand.c: Update tree_pass descriptors.
11165         * tree-cfgcleanup.c: Update tree_pass descriptors.
11166         * cfgcleanup.c: Update tree_pass descriptors.
11167         * tree-ssa-pre.c: Update tree_pass descriptors.
11168         * tree-sra.c: Update tree_pass descriptors.
11169         * tree-mudflap.c: Update tree_pass descriptors.
11170         * tree-ssa-copy.c: Update tree_pass descriptors.
11171         * cfglayout.c: Update tree_pass descriptors.
11172         * tree-ssa-forwprop.c: Update tree_pass descriptors.
11173         * tree-ssa-dce.c: Update tree_pass descriptors.
11174         * tree-ssa.c: Update tree_pass descriptors.
11175         * regclass.c: Update tree_pass descriptors.
11176         * integrate.c: Update tree_pass descriptors.
11177         * tree-optimize.c: Update tree_pass descriptors.
11178         * tree-ssa-phiprop.c: Update tree_pass descriptors.
11179         * tree-object-size.c: Update tree_pass descriptors.
11180         * combine.c: Update tree_pass descriptors.
11181         * tree-outof-ssa.c: Update tree_pass descriptors.
11182         * bb-reorder.c: Update tree_pass descriptors.
11183         * stack-ptr-mod.c: Update tree_pass descriptors.
11184         * var-tracking.c: Update tree_pass descriptors.
11185         * tree-profile.c: Update tree_pass descriptors.
11186         * tree-vect-generic.c: Update tree_pass descriptors.
11187         * reg-stack.c: Update tree_pass descriptors.
11188         * sched-rgn.c: Update tree_pass descriptors.
11189         * tree-ssa-structalias.c: Update tree_pass descriptors.
11190         * tree-cfg.c: Update tree_pass descriptors.
11191         * passes.c (current_pass): Update declaration.
11192         (finish_optimization_passes): Update.
11193         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
11194         (register_one_dump_file, register_dump_files_1, next_pass_1):
11195         Update arguments.
11196         (init_optimization_passes): Update handling of new types.
11197         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
11198         * ipa-struct-reorg.c: Update tree_pass descriptors.
11199         * tree-ssa-reassoc.c: Update tree_pass descriptors.
11200         * combine-stack-adj.c: Update tree_pass descriptors.
11201         * cfgrtl.c: Update tree_pass descriptors.
11202         * dce.c: Update tree_pass descriptors.
11203         * tree-ssanames.c: Update tree_pass descriptors.
11204
11205 2008-03-19  Richard Guenther  <rguenther@suse.de>
11206
11207         PR middle-end/35609
11208         * tree-ssa.c (walk_data): New structure.
11209         (warn_uninitialized_var): If not always_executed warn with "maybe"
11210         instead of "is".
11211         (execute_early_warn_uninitialized): Compute post-dominators.
11212         Initialize always_executed before processing each basic block.
11213
11214 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
11215
11216         PR target/35504
11217         * config/i386/i386.c (x86_this_parameter): Calculate correct location
11218         of "this" pointer when "regparm = N" or "fastcall" is in effect.
11219
11220 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11221
11222         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
11223
11224 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
11225
11226         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
11227         is true.
11228         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
11229         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
11230         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
11231         target after ignore has been set, and move there also the commputation
11232         of subtarget and original_target.
11233         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
11234         (LANG_HOOKS_INITIALIZER): Remove it.
11235         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
11236
11237 2008-03-18  Richard Guenther  <rguenther@suse.de>
11238
11239         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
11240         found an expression with constants, note that in the VN for the lhs.
11241         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
11242         fold them to constants if possible.  Run cleanup_cfg if done so.
11243         (execute_pre): Return todo.
11244         (do_pre): Likewise.
11245         (execute_fre): Likewise.
11246         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
11247         of constants.
11248         (get_prop_source_stmt): Look through pointer conversions.
11249
11250 2008-03-18  Jan Hubicka  <jh@suse.cz>
11251
11252         * tree-pretty-print.c: Include predict.h.
11253         (dump_generic_node): Dump predictor.
11254         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
11255         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
11256         * gimple-low.c (lower_stmt): Likewise.
11257         * expr.c (expand_expr_real): Likewise.
11258         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
11259         them.
11260         (build_predict_expr, build_predict_expr): New.
11261         * predict.h (predictor_name, build_predict_expr): Update.
11262         * c-typeck.c (c_finish_bc_stmt): Add prediction.
11263         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
11264         * predict.def (PRED_CONTINUE): Update hitrate.
11265         * tree.def (PREDICT_EXPR): Define.
11266         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
11267         do not handle BIND_EXPR.
11268         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
11269         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
11270         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
11271         operands.
11272
11273 2008-03-18  Michael Matz  <matz@suse.de>
11274
11275         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
11276
11277 2008-03-18  Richard Guenther  <rguenther@suse.de>
11278
11279         * tree-gimple.h (is_gimple_invariant_address): Declare.
11280         (is_gimple_constant): Likewise.
11281         * tree-gimple.c (is_gimple_constant): New function.
11282         (is_gimple_invariant_address): Likewise.
11283         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
11284         and is_gimple_invariant_address.
11285         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
11286         previous change.
11287         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
11288         an addressable base.
11289
11290 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
11291
11292         PR middle-end/35611
11293         * gimplify.c (gimplify_expr): Gimplify second operand of
11294         OMP_ATOMIC_LOAD.
11295
11296 2008-03-17  Richard Guenther  <rguenther@suse.de>
11297
11298         PR tree-optimization/19637
11299         * fold-const.c (fold_unary): Remove restrictions of removing
11300         intermediate pointer-conversions (P2)(P1)P0.
11301         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
11302         conversion to void pointer.
11303         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
11304
11305 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
11306
11307         PR debug/31510
11308         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
11309         emulated thread local variables.
11310
11311 2008-03-16  Richard Guenther  <rguenther@suse.de>
11312
11313         PR middle-end/35607
11314         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11315         expand TREE_INVARIANT operations that are not gimple invariant.
11316
11317 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
11318
11319         * doc/extend.texi (Alignment): Say that the ABI controls
11320         the __alignof__ for non-strict-alignment targets rather
11321         than being a recommendation.
11322
11323 2008-03-15  Paul Brook  <paul@codesourcery.com>
11324
11325         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
11326         annotations.
11327         (arm_output_fn_unwind): Mark functions that can not be unwound.
11328
11329 2008-03-15  Paul Brook  <paul@codesourcery.com>
11330
11331         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
11332         extension instructions.
11333
11334 2008-03-15  Richard Guenther  <rguenther@suse.de>
11335
11336         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
11337         and fold constant aggregate refs.
11338         (fold_const_aggregate_ref): Handle string constants
11339         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
11340         (evaluate_stmt): Simplify now that ccp_fold folds constant
11341         aggregate refs.
11342
11343 2008-03-15  Paul Brook  <paul@codesourcery.com>
11344
11345         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
11346         (extzv): Use gen_extzv_t2.
11347         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
11348
11349 2008-03-15  Richard Guenther  <rguenther@suse.de>
11350
11351         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
11352         (fold_const_aggregate_ref): Likewise.
11353         (get_value): Return NULL if we don't have any values.
11354         (ccp_finalize): Set const_val to NULL after freeing it.
11355         * tree-flow.h (get_symbol_constant_value): Declare.
11356         (fold_const_aggregate_ref): Likewise.
11357         * tree-ssa-sccvn.c (try_to_simplify): Use them.
11358
11359 2008-03-15  Richard Guenther  <rguenther@suse.de>
11360
11361         PR middle-end/35593
11362         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
11363         to not produce negative array indices if not allowed.  Add
11364         parameter to indicate that.
11365         (maybe_fold_offset_to_component_ref): Allow negative array
11366         indices only for the first member of a structure.
11367         (maybe_fold_offset_to_reference): Allow negative array indices.
11368         (maybe_fold_stmt_addition): Likewise.
11369
11370 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
11371             Anatoly Sokolov <aesok@post.ru>
11372
11373         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
11374         (avr_arch): Add ARCH_AVR6.
11375         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
11376         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
11377         instead of fixed value 2.
11378         (print_operand_address): Use gs() asm specifier instead of pm().
11379         (avr_assemble_integer): (Ditto.).
11380         (avr_output_addr_vec_elt): (Ditto.).
11381         (print_operand): Handle "!" code.
11382         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
11383         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
11384         (AVR_HAVE_EIJMP_EICALL): Define.
11385         (AVR_3_BYTE_PC): Redefine.
11386         (AVR_2_BYTE_PC): (Ditto.).
11387         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
11388         (LINK_SPEC): Add atmega2560 and atmega2561.
11389         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
11390         (crtm2561.o).
11391         * config/avr/avr.md (call_insn): Use eicall instead of icall 
11392         for 3 byte PC devices.
11393         (call_value_insn): (Ditto.).
11394         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
11395         (indirect_jump): Use only for for 2 byte PC devices.
11396         (*tablejump): (Ditto.).
11397         (*indirect_jump_avr6): Add insn.
11398         (*tablejump_rjmp): Don't use for 3 byte PC devices.
11399         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
11400         instead of ijmp for 3 byte PC devices.
11401         (__tablejump2__): (Ditto.).
11402         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
11403         (MULITLIB_DIRNAMES): (Ditto.). 
11404         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
11405
11406 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
11407
11408         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
11409         "sse2_umulsidi3".  Use V1DI mode for operand 0.
11410         ("mmx_psadbw"): Use V1DI mode for operand 0.
11411         * config/i386/i386-modes.def (V1SI): New vector mode.
11412         * config/i386/i386.c (struct builtin_description)
11413         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
11414         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
11415         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
11416         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
11417         v1di_ftype_v8qi_v8qi type.
11418         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
11419
11420         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
11421         __builtin_ia32_pmuludq]: Fix the mode of return value.
11422
11423 2008-03-15  Richard Guenther  <rguenther@suse.de>
11424
11425         PR middle-end/35595
11426         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
11427         being a PHI_NODE.
11428
11429 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
11430         
11431         * doc/invoke.texi (Option Summary, Xtensa Options): Document
11432         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
11433         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
11434         unless TARGET_SERIALIZE_VOLATILE is enabled.
11435         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
11436         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
11437         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
11438
11439 2008-03-14  Richard Guenther  <rguenther@suse.de>
11440
11441         PR tree-optimization/34172
11442         * tree-flow.h (refs_may_alias_p): Declare.
11443         (get_single_def_stmt): Likewise.
11444         (get_single_def_stmt_from_phi): Likewise.
11445         (get_single_def_stmt_with_phi): Likewise.
11446         * tree-dfa.c (refs_may_alias_p): New function.
11447         (get_single_def_stmt): Likewise.
11448         (get_single_def_stmt_from_phi): Likewise.
11449         (get_single_def_stmt_with_phi): Likewise.
11450         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
11451         (vn_reference_lookup_1): New helper function.
11452         (vn_reference_lookup): Walk the virtual use-def chain to
11453         continue searching for a match if the def does not alias the
11454         reference we are looking for.
11455
11456 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
11457
11458         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
11459         archive and Perzl.  Update The Written Word listing.
11460
11461 2008-03-14  Richard Guenther  <rguenther@suse.de>
11462
11463         PR tree-optimization/34043
11464         PR tree-optimization/33989
11465         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
11466         when doing FRE.
11467         (bitmap_find_leader): Use extra argument to verify dominance
11468         relationship inside a basic-block.
11469         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
11470         (find_leader_in_sets): Adjust.
11471         (create_component_ref_by_pieces): Take extra argument for
11472         dominance check, handle lookup failures.
11473         (find_or_generate_expression): Likewise.
11474         (create_expression_by_pieces): Likewise.
11475         (insert_into_preds_of_block): Adjust.
11476         (create_value_expr_from): If asked for, verify all operands
11477         are in the blocks AVAIL_OUT set.
11478         (make_values_for_stmt): Check for SSA_NAMEs that are life
11479         over an abnormal edge.
11480         (compute_avail): Remove such check.
11481         (do_SCCVN_insertion): New function.
11482         (eliminate): If we do not find a leader suitable for replacement
11483         insert a replacement expression from SCCVN if available.
11484         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
11485         (struct vn_ssa_aux): Add needs_insertion flag.
11486         * tree-ssa-sccvn.c (may_insert): New global flag.
11487         (copy_reference_ops_from_ref): Value-number union member access
11488         based on its size, not type and member if insertion is allowed.
11489         (visit_reference_op_load): For a weak match from union type
11490         punning lookup a view-converted value and insert a SSA_NAME
11491         for that value if that is not found.
11492         (visit_use): Make dumps shorter.  Do not disallow value numbering
11493         SSA_NAMEs that are life over an abnormal edge to constants.
11494         (free_scc_vn): Release inserted SSA_NAMEs.
11495         (run_scc_vn): New flag to specify whether insertion is allowed.
11496         Process SSA_NAMEs in forward order.
11497         * tree-ssa-loop-im.c (for_each_index): Handle invariant
11498         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
11499         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
11500         pointer type to/from integral types that do not change the
11501         precision to regular conversions.
11502
11503 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
11504
11505         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
11506         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
11507         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
11508         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
11509         input arguments and the mode of return value.  Built-in functions
11510         that operate on whole 64-bit MMX register now use V1DI mode.
11511
11512 2008-03-13  Alon Dayan  <alond@il.ibm.com>
11513             Olga Golovanevsky  <olga@il.ibm.com>
11514
11515         PR tree-optimization/35041
11516         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
11517         to locate the right position in a statement.
11518
11519 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
11520
11521         PR target/34000
11522         PR target/35553
11523         * config/i386/xmmintrin.h:  Change all static inline functions to
11524         extern inline and add __gnu_inline__ attribute.
11525         * config/i386/bmintrin.h: Ditto.
11526         * config/i386/smmintrin.h: Ditto.
11527         * config/i386/tmmintrin.h: Ditto.
11528         * config/i386/mmintrin-common.h: Ditto.
11529         * config/i386/ammintrin.h: Ditto.
11530         * config/i386/emmintrin.h: Ditto.
11531         * config/i386/pmmintrin.h: Ditto.
11532         * config/i386/mmintrin.h: Ditto.
11533         * config/i386/mm3dnow.h: Ditto.
11534
11535 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
11536
11537         PR middle-end/35185
11538         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
11539         (lower_omp_2): New function.
11540         (lower_omp_1, lower_omp): Rewritten.
11541
11542 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
11543
11544         PR 35054
11545         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
11546         with the phrase "Microsoft Windows compilers".
11547         (Push/Pop Macro Pragmas): New subsection. Document
11548         #pragma push_macro and pragma pop_macro.
11549
11550 2008-03-12  Paul Brook  <paul@codesourcery.com>
11551
11552         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
11553
11554 2008-03-12  Paul Brook  <paul@codesourcery.com>
11555
11556         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
11557         (thumb2_alusi3_short): Exclude PLUS and MINUS.
11558         (thumb2_addsi_shortim): Rename ...
11559         (thumb2_addsi_short): ... to this.  Allow register operands.
11560         (thumb2_subsi_short): New pattern.
11561         (thumb2_one_cmplsi2_short,
11562         thumb2_negsi2_short): New patterns and peepholes.
11563
11564 2008-03-12  Paul Brook  <paul@codesourcery.com>
11565
11566         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
11567
11568 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
11569
11570         * config/i386/i386.md (int_cond): New code iterator.
11571         (fp_cond): Ditto.
11572         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
11573         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
11574         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
11575         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
11576         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
11577         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
11578         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
11579         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
11580
11581 2008-03-12  Paul Brook  <paul@codesourcery.com>
11582
11583         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
11584         instead of {arm,thumb}_compute_save_reg_mask.
11585         (output_return_instruction): Ditto.
11586         (thumb_unexpanded_epilogue): Ditto.
11587         (thumb1_expand_prologue): Ditto.
11588         (thumb1_output_function_prologue): Ditto.
11589         (arm_set_return_address): Ditto.
11590         (thumb_set_return_address): Ditto.
11591         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
11592         regs to achieve stack alignment.
11593         (thumb1_compute_save_reg_mask): Fix compiler warning.
11594         (arm_output_epilogue): Use offsets->saved_regs_mask.
11595         Adjust stack pointer by poping call clobered registers.
11596         (arm_expand_prologue): Use offsets->saved_regs_mask.
11597         Adjust stack pointer by pushing extra registers.
11598         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
11599
11600 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
11601
11602         PR tree-opt/35422
11603         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
11604         conversion to the operands of a multiplication.
11605
11606 2008-03-12  Richard Guenther  <rguenther@suse.de>
11607
11608         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
11609         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
11610         * timevar.def (TV_TREE_PHIPROP): Add.
11611         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
11612         pass description.  Use TV_TREE_PHIPROP.
11613         * tree-ssa-forwprop.c: Remove phiprop code.
11614
11615 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
11616
11617         PR middle-end/35549
11618         * omp-low.c (maybe_lookup_decl): Constify first argument.
11619         (use_pointer_for_field): Change last argument from bool to
11620         omp_context *.  Disallow shared copy-in/out in nested
11621         parallel if decl is shared in outer parallel too.
11622         (build_outer_var_ref, scan_sharing_clauses,
11623         lower_rec_input_clauses, lower_copyprivate_clauses,
11624         lower_send_clauses, lower_send_shared_vars): Adjust callers.
11625
11626 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
11627             Ira Rosen  <irar@il.ibm.com>
11628
11629         * tree-vectorizer.c (free_stmt_vec_info): New function.
11630         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
11631         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
11632         * tree-vectorizer.h (free_stmt_vec_info): Declare.
11633         * tree-vect-transform.c (vectorizable_conversion): Free
11634         vec_oprnds0 if it was allocated.
11635         (vect_permute_store_chain): Remove unused VECs.
11636         (vectorizable_store): Free VECs that are allocated in the..
11637         function.
11638         (vect_transform_strided_load, vectorizable_load): Likewise.
11639         (vect_remove_stores): Simplify the code.
11640         (vect_transform_loop): Move code to vect_remove_stores().
11641         Call vect_remove_stores() and free_stmt_vec_info().
11642
11643 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11644
11645         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
11646         TARGET_HPUX.  Revise comment.
11647         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
11648         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
11649         Use sr4 variant of `be' instruction when not generating PIC code.
11650         (attr_length_call): Adjust for above change.
11651
11652 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11653
11654         * ipa-reference.c (static_execute): Remove module_statics_const and
11655         associated setting code.
11656
11657 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
11658
11659         PR target/35540
11660         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
11661         predicate for operand 1.
11662         (paritysi2_cmp): Use register_operand predicate for operand 2.
11663         Use earlyclobber modifier for operand 1.  Remove support for
11664         memory operands.
11665         (paritydi2_cmp): Use register_operand predicate for operand 3.
11666         Use earlyclobber modifier for operand 1.  Remove support for
11667         memory operands.
11668
11669 2008-03-11  Paul Brook  <paul@codesourcery.com>
11670             Vladimir Prus  <vladimir@codesourcery.com>
11671
11672         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
11673         (arm_compute_save_reg0_reg12_mask): Always
11674         check if register 11 must be saved.  Always safe hard frame pointer
11675         when frame_pointer_needeed.
11676         (arm_compute_save_reg_mask): Save IP and PC
11677         only with apcs frames.
11678         (arm_output_epilogue): Adjust Thumb2 codepath to
11679         be also invoked and work for ARM non-apcs frames.
11680         (arm_expand_prologue): Don't bother saving IP
11681         for non-apcs frame, since it's not clobbered by
11682         prologue code.  Implement non-apcs frame
11683         layout.
11684
11685 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
11686
11687         PR rtl-optimization/35281
11688         * expr.c (convert_move): Use a new pseudo for the intermediate
11689         from_mode->word_mode result.
11690
11691 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
11692
11693         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
11694         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
11695         * toplev.c (compile_file): Don't call it.
11696
11697 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
11698
11699         PR middle-end/35526
11700         * expr.c (store_expr): Call emit_block_move if the mode
11701         of "temp" RTX is BLKmode.
11702
11703 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11704             Richard Guenther  <rguenther@suse.de>
11705
11706         PR tree-optimization/31358
11707         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
11708         the step with a NULL_TREE.
11709         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
11710         to sizetype if type is a pointer type.
11711         (add_candidate_1): Don't convert the base and step to
11712         the generic type if the orginal type is a pointer type.
11713         (add_iv_value_candidates): Use sizetype for the step
11714         if type is a pointer type.
11715         (cand_value_at): Likewise.
11716         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
11717         for pointer types.
11718         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
11719         Don't convert the tem affine to the type.
11720         (add_elt_to_tree): Use sizetype for the step if a pointer.
11721         Use POINTER_PLUS_EXPR for pointers.
11722         (aff_combination_to_tree): Use sizetype for the step if a
11723         pointer.
11724
11725 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
11726
11727         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
11728         Remove commutativity hint.
11729
11730 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
11731
11732         PR c/35438
11733         PR c/35439
11734         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
11735         errorneous type.  Check that v is a VAR_DECL.
11736
11737         PR middle-end/35099
11738         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
11739
11740 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
11741
11742         PR tree-optimization/35494
11743         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
11744         may be overriden at link and run time.
11745
11746 2008-03-10  Richard Guenther  <rguenther@suse.de>
11747
11748         PR tree-optimization/34677
11749         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
11750         (poolify_tree): Likewise.
11751         (modify_expr_template): Likewise.
11752         (poolify_modify_stmt): Likewise.
11753         (insert_fake_stores): Handle all component-ref style stores
11754         in addition to INDIRECT_REF.  Also handle complex types.
11755         Do not poolify the inserted load.
11756         (realify_fake_stores): Do not rebuild the tree but only
11757         make it a SSA_NAME copy.
11758         (init_pre): Remove initialzation of modify_expr_template.
11759         Do not allocate modify_expr_node_pool.
11760         (fini_pre): Do not free modify_expr_node_pool.
11761
11762 2008-03-10  Paul Brook  <paul@codesourcery.com>
11763
11764         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
11765         to avoid conflicts.
11766
11767 2008-03-10  Paul Brook  <paul@codesourcery.com>
11768             Mark Shinwell  <shinwell@codesourcery.com>
11769
11770         * config/arm/cortex-r4.md: New.
11771         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
11772         insn attributes.
11773         * config/arm/arm.md: Include cortex-r4.md.
11774         (insn): Add smmls, sdiv and udiv values.
11775         (generic_sched): Don't use generic scheduling for Cortex-R4.
11776         (arm_issue_rate): New function.
11777         (TARGET_SCHED_ISSUE_RATE): Define.
11778
11779 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
11780
11781         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
11782
11783 2008-03-10  Richard Guenther  <rguenther@suse.de>
11784
11785         * tree-ssa-pre.c (get_sccvn_value): Simplify.
11786         (compute_avail): Do not add stmt uses to AVAIL_OUT.
11787
11788 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
11789
11790         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
11791         Set default to true.
11792
11793 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11794
11795         * c.opt (Wsynth): Deprecate.
11796         * doc/invoke.texi (Option Summary, Warning Options): Document
11797         -Wno-format-contains-nul.
11798
11799 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
11800
11801         PR target/35496
11802         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
11803         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
11804
11805 2008-03-09  Ira Rosen  <irar@il.ibm.com>
11806
11807         * config/rs6000/rs6000.c (builtin_description): Rename vector
11808         left shift operations.
11809         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
11810         (altivec_vsl<VI_char>): Rename to ...
11811         (ashl<mode>3): ... new name.
11812         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
11813         gen_ashlv4si3.
11814         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
11815
11816 2008-03-08  Richard Guenther  <rguenther@suse.de>
11817
11818         * coverage.h (tree_coverage_counter_addr): Declare.
11819         * coverage.c (tree_coverage_counter_addr): New function.
11820         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
11821         before using again.
11822         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
11823         (tree_gen_one_value_profiler): Likewise.
11824         (tree_gen_ic_profiler): Likewise.
11825         (tree_gen_average_profiler): Likewise.
11826         (tree_gen_ior_profiler): Likewise.
11827
11828 2008-03-08  Richard Guenther  <rguenther@suse.de>
11829
11830         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
11831         (vn_binary_op_insert): Likewise.
11832         (vn_unary_op_lookup): Likewise.
11833         (vn_unary_op_insert): Likewise.
11834         (vn_nary_op_lookup): Declare.
11835         (vn_nary_op_insert): Likewise.
11836         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
11837         and binary hashes, use a single obstack for unary_op_pool
11838         and binary_op_pool.
11839         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
11840         a single struct vn_nary_op_s.  Store tree code length and
11841         a variable number of operands.
11842         (struct vn_reference_op_struct): Remove unused op2.
11843         (vn_reference_op_eq): Do not compare op2.
11844         (vn_reference_op_compute_hash): Do not compute hash of op2.
11845         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
11846         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
11847         with vn_nary_op_compute_hash.
11848         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
11849         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
11850         vn_nary_op_lookup.
11851         (vn_unary_op_insert, vn_binary_op_insert): Replace with
11852         vn_nary_op_insert.
11853         (visit_unary_op): Call nary functions.
11854         (visit_binary_op): Likewise.
11855         (process_scc): Adjust for struct vn_tables_s changes.
11856         (allocate_vn_table): Likewise.
11857         (free_vn_table): Likewise.
11858         * tree-vn.c (vn_add): Call nary functions.
11859         (vn_lookup): Likewise.
11860
11861 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
11862
11863         PR target/35498
11864         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
11865         wdst back after sync_compare_and_swapqhi_internal.
11866
11867 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
11868
11869         PR target/22152
11870         * config/i386/i386-modes.def (V1DI): New vector mode.
11871         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
11872         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
11873         (MMXMODE248): Ditto.
11874         (MMXMODE): Add V1DI mode.
11875         (mmxvecsize): Change DI mode to V1DI mode.
11876         ("mov<mode>): Use MMXMODEI8 mode iterator.
11877         ("*mov<mode>_internal_rex64"): Ditto.
11878         ("*mov<mode>_internal"): Ditto.
11879         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
11880         ("mmx_sub<mode>3"): Ditto.
11881         ("mmx_adddi3"): Remove insn pattern.
11882         ("mmx_subdi3"): Ditto.
11883         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
11884         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
11885         ("mmx_ashl<mode>3"): Ditto.
11886         ("mmx_lshrdi3"): Remove insn pattern.
11887         ("mmx_ashldi3"): Ditto.
11888         * config/i386/i386.c (classify_argument): Handle V1DImode.
11889         (function_arg_advance_32): Ditto.
11890         (function_arg_32): Ditto.
11891         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
11892         mmx_addv1di3 insn pattern.
11893         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
11894         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
11895         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
11896         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
11897         Remove definitions of built-in functions.
11898         (V1DI_type_node): New node.
11899         (v1di_ftype_v1di_int): Ditto.
11900         (v1di_ftype_v1di_v1di): Ditto.
11901         (v2si_ftype_v2si_si): Ditto.
11902         (v4hi_ftype_v4hi_di): Remove node.
11903         (v2si_ftype_v2si_di): Ditto.
11904         (ix86_init_mmx_sse_builtins): Handle V1DImode.
11905         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
11906         Redefine builtins using def_builtin_const with *_ftype_*_int node.
11907         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
11908         Add new builtins using def_builtin_const.
11909         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
11910         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
11911         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
11912         * config/i386/mmintrin.h (__v1di): New typedef.
11913         (_mm_add_si64): Cast arguments to __v1di type.
11914         (_mm_sub_si64): Ditto.
11915         (_mm_sll_pi16): Cast __count to __v4hi type.
11916         (_mm_sll_pi32): Cast __count to __v2si type.
11917         (_mm_sll_si64): Cast arguments to __v1di type.
11918         (_mm_srl_pi16): Cast __count to __v4hi type.
11919         (_mm_srl_pi32): Cast __count to __v2si type.
11920         (_mm_srl_si64): Cast arguments to __v1di type.
11921         (_mm_sra_pi16): Cast __count to __v4hi type.
11922         (_mm_sra_pi32): Cast __count to __v2si type.
11923         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
11924         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
11925         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
11926         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
11927         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
11928         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
11929         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
11930         (_mm_srai_pi32): Use __builtin_ia32_psradi.
11931         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
11932         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
11933         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
11934         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
11935
11936 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
11937
11938         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
11939
11940 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
11941
11942         PR target/35373
11943         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
11944         reg+const addressing for Altivec modes.  Don't generate reg+reg
11945         addressing for TFmode or TDmode quantities.
11946
11947 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
11948
11949         * c-common.c (vector_types_convertible_p): Call langhook
11950         instead of comptypes.
11951
11952 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11953
11954         PR tree-opt/35402
11955         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
11956         integral and scalar float variables which have a
11957         NULL DECL_INITIAL.
11958
11959 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
11960
11961         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
11962         dwarf_register_span hook when emitting unwind information for
11963         register-to-memory saves.
11964         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
11965         (rs6000_frame_related): Remove call to spe_synthesize_frame.
11966
11967 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
11968
11969         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
11970         for the same VAR_DECL.
11971
11972 2008-03-06  Tom Tromey  <tromey@redhat.com>
11973
11974         * treelang: Delete.
11975         * doc/standards.texi (Standards): Don't mention treelang.
11976         * doc/invoke.texi (Overall Options): Don't mention treelang.
11977         * doc/install.texi (Prerequisites): Don't mention bison or
11978         treelang.
11979         (Configuration): Don't mention treelang.
11980         (Building): Likewise.
11981         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
11982
11983 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
11984
11985         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
11986         word-extractions out of a multi-word object.
11987
11988 2008-03-06  Richard Guenther  <rguenther@suse.de>
11989
11990         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
11991         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
11992         result type and precision.
11993         * expr.c (get_inner_reference): Set unsignedp based on the result
11994         type of BIT_FIELD_REF.
11995         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
11996         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
11997         (try_instantiate_multiple_fields): Likewise.  Use the correct type
11998         for BIT_FIELD_REF.
11999         (sra_build_assignment): Likewise.
12000         (sra_build_elt_assignment): Likewise.
12001         (sra_explode_bitfield_assignment): Likewise.
12002         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
12003         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
12004         set BIT_FIELD_REF_UNSIGNED.
12005         (vectorizable_load): Likewise.
12006
12007 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
12008
12009         * cse.c (cse_extended_basic_block): Invalidate artificial defs
12010         at bb start.
12011
12012 2008-03-06  Richard Guenther  <rguenther@suse.de>
12013
12014         * alias.c (struct alias_set_entry): Move has_zero_child field
12015         to pack with alias_set.
12016
12017 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
12018
12019         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12020         32bit host.
12021
12022 2008-03-05  Ian Lance Taylor  <iant@google.com>
12023
12024         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
12025
12026 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
12027
12028         * fwprop.c (update_df): Support width and offset parameters of
12029         df_ref_create.
12030         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
12031         global_conflicts): Change DF_REF_EXTRACT to either
12032         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12033         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12034         * df-scan.c (df_ref_record, df_defs_record,
12035         df_ref_create_structure, df_def_record_1, df_uses_record,
12036         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
12037         df_bb_refs_collect, df_entry_block_defs_collect,
12038         df_exit_block_uses_collect): Support new width and offset fields.
12039         (ref_extract_pool): New storage pool.
12040         (df_free_ref): New function.
12041         (df_reg_chain_unlink, df_free_collection_rec,
12042         df_sort_and_compress_refs): Call df_free_ref.
12043         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
12044         of df_ref_extract.
12045         (df_ref_create_structure): Allocate df_ref_extract if offset and
12046         width fields are used.
12047         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
12048         (df_uses_record): Get offset and width from ZERO_EXTRACT 
12049         and SIGN_EXTRACT.
12050         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
12051         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12052         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12053         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
12054         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
12055         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
12056         (df_ref_extract): New structure.
12057         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
12058         (df_ref_create): Add width and offset parameters.
12059         
12060 2008-03-05  Richard Guenther  <rguenther@suse.de>
12061
12062         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12063         Use ranges_overlap_p.
12064         (offset_overlaps_with_access): Rename
12065         to ranges_overlap_p and move ...
12066         * tree-flow-inline.h (ranges_overlap_p): ... here.
12067
12068         * tree.h (get_inner_reference, handled_component_p): Update
12069         comments.
12070
12071         * tree.h (record_component_aliases, get_alias_set,
12072         alias_sets_conflict_p, alias_sets_must_conflict_p,
12073         objects_must_conflict_p): Move declarations ...
12074         * alias.h (record_component_aliases, get_alias_set,
12075         alias_sets_conflict_p, alias_sets_must_conflict_p,
12076         objects_must_conflict_p): ... here.
12077         Include coretypes.h.
12078         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
12079
12080 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
12081
12082         * cfg.c: Include tree-flow.h.
12083         (remove_edge_raw): Call redirect_edge_var_map_clear.
12084         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
12085         * tree-flow-inline.h (redirect_edge_var_map_def): New.
12086         (redirect_edge_var_map_result): New.
12087         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
12088         PENDING_STMT use with redirect_edge_var_map_*.
12089         * tree-ssa.c (edge_var_maps): New definition.
12090         (redirect_edge_var_map_add): New.
12091         (redirect_edge_var_map_clear): New.
12092         (redirect_edge_var_map_dup): New.
12093         (redirect_edge_var_map_vector): New.
12094         (redirect_edge_var_map_destroy): New.
12095         (ssa_redirect_edge): Replace PENDING_STMT use with
12096         redirect_edge_var_map_*.
12097         (flush_pending_stmts): Same.
12098         (delete_tree_ssa): Destroy edge var map.
12099         * tree-flow.h (struct _edge_var_map): New.
12100         Define edge_var_map vector type.
12101         Declare redirect_edge_var_map_* prototypes.
12102         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
12103         * tree-cfg.c (reinstall_phi_args): Replace
12104         PENDING_STMT use with redirect_edge_var_map_*.
12105
12106 2008-03-05  Richard Guenther  <rguenther@suse.de>
12107
12108         PR tree-optimization/35472
12109         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
12110         whose single use_stmt has a overlapping set of loaded and
12111         stored symbols as that use_stmt might be a noop assignment then.
12112
12113 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
12114
12115         * gthr-rtems.h: Implement __gthread_mutex_destroy.
12116
12117 2008-03-05  Richard Guenther  <rguenther@suse.de>
12118
12119         PR c++/35336
12120         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
12121         should be constants.
12122         * tree-cfg.c (verify_expr): Verify it.
12123         * fold-const.c (fold_truthop): Remove code generating
12124         BIT_FIELD_REFs of structure bases.
12125         (fold_binary): Likewise.
12126         (fold_ternary): Position and size of BIT_FIELD_REFs are
12127         always host integers.
12128         (make_bit_field_ref): Remove.
12129         (optimize_bit_field_compare): Remove.
12130         (all_ones_mask_p): Remove.
12131
12132 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
12133
12134         PR gcc/33009
12135         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
12136         (split_block_and_df_analyze): New. Split basic block and rebuild
12137         dataflow.
12138         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
12139         SPLIT_BLOCK.
12140         (split_pattern_seq): Likewise.
12141         (erase_matching_seqs): Likewise.
12142         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
12143
12144 2008-03-04  Geoff Keating  <geoffk@apple.com>
12145
12146         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
12147         declaration and code.
12148         (tree_invalid_nonnegative_warnv_p): Likewise.
12149
12150 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
12151
12152         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
12153         examples.  Truncate option-names then causing overfull hbox.
12154
12155 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12156
12157         PR target/35222
12158         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
12159         on hpux10.
12160         * configure: Rebuilt.
12161
12162 2008-03-04  Rafael Espindola  <espindola@google.com>
12163
12164         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
12165         (tree_unary_nonnegative_warnv_p): New.
12166         (tree_binary_nonnegative_warnv_p): New.
12167         (tree_single_nonnegative_warnv_p): New.
12168         (tree_invalid_nonnegative_warnv_p): New.
12169         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
12170
12171 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12172
12173         PR 28322
12174         * opts.c (handle_option): Postpone 'unknown option' errors only for
12175         warning options.
12176
12177 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
12178
12179         PR target/35453
12180         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
12181         (_SIDD_XXX): This.
12182
12183 2008-03-04  Rafael Espindola  <espindola@google.com>
12184
12185         * fold-const.c (tree_unary_nonzero_warnv_p): New.
12186         (tree_binary_nonzero_warnv_p): New.
12187         (tree_single_nonzero_warnv_p): New.
12188         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
12189
12190 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
12191
12192         PR middle-end/35456
12193         * fold-const.c (fold_cond_expr_with_comparison): Prevent
12194         transformations for modes that have signed zeros.
12195         * ifcvt.c (noce_try_abs): Ditto.
12196
12197 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
12198
12199         * config/i386/i386.c (override_options): Force
12200         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
12201
12202 2008-03-04  Jan Hubicka  <jh@suse.cz>
12203
12204         PR c++/35262
12205         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
12206         in last commit.
12207
12208 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12209
12210         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
12211         label to probe the stack.
12212
12213 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
12214
12215         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
12216         (__gthr_win32_mutex_destroy): Declare.
12217         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
12218         __gthr_win32_mutex_destroy.
12219         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
12220
12221 2008-03-03  Jan Hubicka  <jh@suse.cz>
12222
12223         PR c++/35262
12224         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
12225         aggressive on inlining cold calls.
12226
12227 2008-03-03  Richard Guenther  <rguenther@suse.de>
12228
12229         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
12230         struct copies into the expression table.
12231         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
12232         (try_to_simplify): Likewise.
12233         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
12234         integral and pointer arguments which do not change the
12235         precision to NOP_EXPRs.
12236         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
12237         VIEW_CONVERT_EXPR case.
12238
12239 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
12240
12241         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
12242         defined in a loop at depth 0 is invariant.
12243         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
12244         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
12245         be called at loop depth 0.
12246
12247 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
12248
12249         PR driver/35420
12250         * gcc.c (process_command): Update copyright notice dates.
12251         * gcov.c (print_version): Likewise.
12252         * gcov-dump.c (print_version): Likewise.
12253         * mips-tfile.c (main): Likewise.
12254         * mips-tdump.c (main): Likewise.
12255
12256 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12257
12258         PR 24924
12259         * c-common.c (flag_permissive): Delete.
12260         (constant_expression_warnings): Check flags first.
12261         (constant_expression_error): New.
12262         * c-common.h (flag_permissive): Delete.
12263         (constant_expression_error): Declare.
12264         * flags.h (flag_permissive): Declare. Update description.
12265         * diagnostic.c (pedwarn): Update.
12266         (permerror): New.
12267         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
12268         (permissive_error_kind): New.
12269         * toplev.c (flag_permissive): Define. Update description.
12270         * toplev.h (permissive_error_kind): Declare.
12271         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
12272         (pedwarn_c90): Use pedantic_warning_kind.
12273         * c-opts.c (c_common_post_options): flag_permissive does not affect
12274         flag_pedantic_errors.
12275
12276 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
12277
12278         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
12279         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
12280         __absvsi2, __absvDI2): Use unsigned arithmetic.
12281
12282 2008-03-02  Andi Kleen  <ak@suse.de>
12283             Richard Guenther  <rguenther@suse.de>
12284
12285         * struct-equiv.c: Remove file.
12286         * cfg_cleanup.c (condjump_equiv_p): Remove.
12287         * Makefile.in (OBJS-common): Remove struct-equiv.o.
12288         (struct-equiv.o): Remove rule.
12289         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
12290         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
12291         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
12292
12293 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12294
12295         * ifcvt.c (noce_process_if_block): Try to handle only the then
12296         block if the else block exists but isn't suitable.
12297
12298 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
12299
12300         PR gcc/35063
12301         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
12302         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
12303         regression from previous patch.
12304
12305 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
12306
12307         PR gcc/35063
12308         * gthr.h: Add __gthread_mutex_destroy as a function that must be
12309         implemented.
12310         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
12311         * gthr-single.h (__gthread_mutex_destroy): Likewise.
12312         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
12313         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
12314         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
12315         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
12316         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
12317         (__gthread_mutex_destroy_function): Rename to
12318         __gthread_mutex_destroy.
12319         * gthr-dce.h (__gthread_mutex_destroy): Call
12320         pthread_mutex_destroy.
12321         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
12322         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
12323         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
12324
12325 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12326
12327         * df-scan.c (df_ref_chain_change_bb): Simplify.
12328         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
12329         set_block_for_insn if there's any change.
12330         * df.h ((df_insn_change_bb): Fix prototype.
12331         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
12332         df_insn_change_bb, don't call set_block_for_insn.
12333         * emit-rtl.c (reorder_insns): Likewise.
12334         * haifa-sched.c (move_insn): Likewise.
12335
12336 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12337
12338         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
12339
12340 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
12341
12342         * tree-flow-inline.h (next_readonly_imm_use): Return
12343         NULL_USE_OPERAND_P after the end.
12344
12345 2008-03-01  Richard Guenther  <rguenther@suse.de>
12346
12347         PR tree-optimization/35411
12348         * tree-sra.c (sra_build_assignment): Split conversion to
12349         final type to a separate statement if we are not assigning
12350         to a register.
12351
12352 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
12353
12354         * fold-const.c (fold_convertible_p): Correct the logic to follow
12355         that in fold_convert().
12356
12357 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
12358
12359         PR c++/35315
12360         * tree-inline.c (build_duplicate_type): When we make a
12361         duplicate type, make it unique in the canonical types system.
12362
12363 2008-02-29  Tom Tromey  <tromey@redhat.com>
12364
12365         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
12366         input_file_stack_history, input_file_stack_restored): Remove.
12367         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
12368         * input.h (struct file_stack): Remove.
12369         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
12370         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
12371         Likewise.
12372         * diagnostic.h (struct diagnostic_context) <last_module>: Change
12373         type.
12374         (diagnostic_last_module_changed): Add 'map' argument.
12375         (diagnostic_set_last_function): Likewise.
12376         * diagnostic.c (undiagnostic_report_current_module): Iterate using
12377         line map, not input_file_stack.
12378         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
12379
12380 2008-02-29  Paul Brook  <paul@codesourcery.com>
12381
12382         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
12383
12384 2008-02-29  Paul Brook  <paul@codesourcery.com>
12385
12386         * config/arm/ieee754-df.S (muldf3): Use RET macros.
12387
12388 2008-02-29  Richard Guenther  <rguenther@suse.de>
12389
12390         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
12391         vn_lookup_or_add.
12392         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
12393         value for comparing for a store match.
12394         (simplify_unary_expression): Do nothing for SSA_NAMEs.
12395         (try_to_simplify): Do not do a full-blown reference lookup.
12396
12397 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12398
12399         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
12400         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
12401
12402         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
12403
12404 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
12405
12406         * tree-loop-linear.c (try_interchange_loops): Compare memory access
12407         strides against cache sizes.
12408
12409 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
12410
12411         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
12412         constant to fpul.
12413
12414 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
12415
12416         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
12417         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
12418         is smaller than the original promoted value.
12419         (simplify_subreg): If OP is a SUBREG, try to preserve its
12420         SUBREG_PROMOTED_VAR_P information.
12421
12422 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
12423
12424         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
12425         (VN_INFO_GET): Allocate new objects on the obstack.
12426         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
12427         for rpo_numbers_temp, for consistency.
12428         (free_scc_vn): Free the obstack.
12429
12430 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
12431
12432         * doc/invoke.texi: Document -ftree-loop-distribution.
12433         * tree-loop-distribution.c: New.
12434         * tree-pass.h (pass_loop_distribution): New.
12435         * graphds.h (struct graph): Add htab_t indices.
12436         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
12437         * tree-vectorizer.c (rename_variables_in_loop): Extern.
12438         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
12439         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
12440         * tree-data-ref.c (debug_data_dependence_relations): New.
12441         (dump_data_dependence_relation): Also print data references.
12442         (free_data_ref): Extern.
12443         (same_access_functions): Moved...
12444         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
12445         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
12446         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
12447         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
12448         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
12449         (stmts_from_loop): Skip LABEL_EXPR.
12450         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
12451         New.
12452         (build_rdg): Initialize rdg->indices htab.
12453         (free_rdg, stores_from_loop, ref_base_address,
12454         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
12455         have_similar_memory_accesses_1, ref_base_address_1,
12456         remove_similar_memory_refs): New.
12457         * tree-data-ref.h: Depend on tree-chrec.h.
12458         (debug_data_dependence_relations, free_data_ref): Declared.
12459         (same_access_functions): ... here.
12460         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
12461         New.
12462         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
12463         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
12464         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
12465         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
12466         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
12467         rdg_vertex_for_stmt): Declared.
12468         (struct rdg_edge): Add level.
12469         (RDGE_LEVEL): New.
12470         (free_rdg, stores_from_loop, remove_similar_memory_refs,
12471         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
12472         Declared.
12473         (rdg_has_similar_memory_accesses): New.
12474         * tree-vect-analyze.c: Remove unused static decls.
12475         * lambda.h (dependence_level): New.
12476         * common.opt (ftree-loop-distribution): New.
12477         * tree-flow.h (mark_virtual_ops_in_bb, 
12478         slpeel_tree_duplicate_loop_to_edge_cfg,
12479         rename_variables_in_loop): Declared.
12480         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
12481         (OBJS-common): Add tree-loop-distribution.o.
12482         (tree-loop-distribution.o): New rule.
12483         * tree-cfg.c (mark_virtual_ops_in_bb): New.
12484         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
12485         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
12486
12487 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
12488
12489         PR target/33963
12490         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
12491         other than structures and unions.
12492
12493 2008-02-28  Richard Guenther  <rguenther@suse.de>
12494
12495         Revert:
12496         2008-02-26  Richard Guenther  <rguenther@suse.de>
12497
12498         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12499         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12500         (lookup_decl_from_uid): Declare.
12501         (remove_decl_from_map): Likewise.
12502         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12503         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12504         (decl_for_uid_map): New global hashtable mapping DECL_UID
12505         to the decl tree.
12506         (init_ttree): Allocate it.
12507         (insert_decl_to_uid_decl_map): New helper function.
12508         (make_node_stat): Insert new decls into the map.
12509         (copy_node_stat): Likewise.
12510         (lookup_decl_from_uid): New function.
12511         (remove_decl_from_map): Likewise.
12512         (print_decl_for_uid_map_statistics): New helper.
12513         (dump_tree_statistics): Call it.
12514
12515         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12516         (referenced_var_iterator): Adjust.
12517         (FOR_EACH_REFERENCED_VAR): Adjust.
12518         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12519         (num_referenced_vars): Adjust.
12520         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12521         (first_referenced_var): Remove.
12522         (end_referenced_vars_p): Likewise.
12523         (next_referenced_var): Likewise.
12524         (referenced_var_iterator_set): New helper function.
12525         * tree-dfa.c (referenced_var_lookup): Adjust.
12526         (referenced_var_check_and_insert): Likewise.
12527         (remove_referenced_var): Likewise.
12528         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12529         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12530         (verify_call_clobbering): Likewise.
12531         (verify_memory_partitions): Likewise.
12532         (init_tree_ssa): Allocate bitmap instead of hashtable for
12533         referenced_vars.
12534         (delete_tree_ssa): Adjust.
12535         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12536         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12537         (compute_tag_properties): Likewise.
12538         (set_initial_properties): Likewise.
12539         (find_partition_for): Likewise.
12540         (update_reference_counts): Likewise.
12541         (dump_may_aliases_for): Likewise.
12542         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12543         (add_call_clobber_ops): Likewise.
12544         (add_call_read_ops): Likewise.
12545         (get_asm_expr_operands): Likewise.
12546         * tree-into-ssa.c (dump_decl_set): Likewise.
12547         (update_ssa): Likewise.
12548         * tree-sra.c (scan_function): Likewise.
12549         (decide_instantiations): Likewise.
12550         (scalarize_parms): Likewise.
12551         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12552         (dsa_named_for): Likewise.
12553         * tree-ssa-structalias.c (update_alias_info): Likewise.
12554         (merge_smts_into): Likewise.
12555
12556 2008-02-27  David Daney  <ddaney@avtrex.com>
12557
12558         PR target/34409
12559         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
12560         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
12561         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
12562         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
12563         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
12564
12565 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
12566
12567         PR target/25477
12568         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
12569         (BUILT_IN_NEXTTOWARD): Remove.
12570         (BUILT_IN_NEXTTOWARDF): Ditto.
12571         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
12572         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
12573
12574 2008-02-27  Tom Tromey  <tromey@redhat.com>
12575
12576         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
12577         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
12578
12579 2008-02-27  Jan Beulich  <jbeulich@novell.com>
12580
12581         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
12582         update the respective field on newdecl.
12583
12584 2008-02-27  Revital Eres  <eres@il.ibm.com>
12585
12586         PR rtl-optimization/34999
12587         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
12588         crossing edges that ends with a call insn.
12589         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
12590         call insn and clear the EDGE_CROSSING flag of the crossing edge
12591         when fixing fallthru edges.
12592
12593 2008-02-27  Richard Guenther  <rguenther@suse.de>
12594
12595         PR middle-end/35390
12596         * fold-const.c (fold_unary): Return the correct argument,
12597         converted to the result type.
12598
12599 2008-02-27  Richard Guenther  <rguenther@suse.de>
12600
12601         PR middle-end/34971
12602         * expr.c (expand_expr_real_1): Assert on rotates that operate
12603         on partial modes.
12604         * fold-const.c (fold_binary): Use the types precision, not the
12605         bitsize of the mode if folding rotate expressions.  Build rotates
12606         only for full modes.
12607
12608 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
12609
12610         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
12611         and CPP_PRAGMA_EOL.
12612         * c-pragma.c (pragma_ns_name): New typedef.
12613         (registered_pp_pragmas): New variable.
12614         (c_pp_lookup_pragma): New function.
12615         (c_register_pragma_1): If flag_preprocess_only, do nothing
12616         for non-expanded pragmas, for expanded ones push pragma's
12617         namespace and name into registered_pp_pragmas vector.
12618         (c_invoke_pragma_handler): Register OpenMP pragmas even when
12619         flag_preprocess_only, don't register GCC pch_preprocess
12620         pragma if flag_preprocess_only.
12621         * c-opts.c (c_common_init): Call init_pragma even if
12622         flag_preprocess_only.
12623         * c-pragma.c (c_pp_lookup_pragma): New prototype.
12624         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
12625         cpp_register_pragma if flag_preprocess_only.
12626
12627 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12628
12629         PR c/28800
12630         * c-parser.c (c_parser_translation_unit): Warn for empty
12631         translation unit, not empty source file.
12632
12633 2008-02-26  Paul Brook  <paul@codesourcery.com>
12634
12635         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
12636         operand for Thumb-2.
12637         * config/arm/arm.h (reg_class): Add CORE_REGS.
12638         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
12639         (BASE_REG_CLASS): Use CORE_REGS.
12640         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
12641         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
12642         (REGNO_OK_FOR_INDEX_P): Exclude SP.
12643         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
12644         ARM_REGNO_OK_FOR_INDEX_P.
12645         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
12646         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
12647         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
12648         (ldm/stm peepholes): Ditto.
12649         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
12650         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
12651         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
12652         * config/arm/constraints.md: Enable "k" constraint on ARM.
12653
12654 2008-02-27  Ben Elliston  <bje@au.ibm.com>
12655
12656         * config/rs6000/rs6000.c: Annotate cache line size field in all
12657         instances of struct processor_costs.
12658
12659 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
12660
12661         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
12662         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
12663         jump_bypass): New counters.
12664         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
12665         * dce.c (gate_ud_dce): Same.
12666         (gate_fast_dce): Same.
12667         * dse.c (gate_dse1): New function.
12668         (gate_dse2): New function.
12669         (gate_dse): Merge results of new gate functions.
12670         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
12671         (gate_handle_jump_bypass): Add dbg_cnt.
12672         (gate_handle_gcse): Add dbg_cnt.
12673         * ifcvt.c (gate_handle_if_conversion): Same.
12674         (gate_handle_if_after_combine): Same.
12675         (gate_handle_if_after_reload): Same.
12676         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
12677
12678 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
12679
12680         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
12681         line sizes.
12682         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
12683
12684 2008-02-26  Jason Merrill  <jason@redhat.com>
12685
12686         PR c++/35315
12687         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
12688         alone if it's the naming decl for the type's main variant.
12689
12690 2008-02-26  Tom Tromey  <tromey@redhat.com>
12691
12692         * system.h (USE_MAPPED_LOCATION): Poison.
12693         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
12694         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
12695         (make_goto_expr_edges): Likewise.
12696         (remove_bb): Likewise.
12697         (execute_warn_function_return): Likewise.
12698         * basic-block.h (struct edge_def) <goto_locus>: Change type to
12699         location_t.
12700         * c-common.c (fname_decl): Remove old location code.
12701         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
12702         location code.
12703         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
12704         variant.
12705         (ASM_INPUT_SOURCE_LOCATION): Likewise.
12706         (gen_rtx_ASM_INPUT): Likewise.
12707         (gen_rtx_ASM_INPUT_loc): Likewise.
12708         (get_rtx_asm_OPERANDS): Remove.
12709         * cfglayout.c (insn_locators_alloc): Remove old location code.
12710         (set_curr_insn_source_location): Likewise.
12711         (curr_insn_locator): Likewise.
12712         * print-tree.c (print_node): Remove old location code.
12713         * tree-mudflap.c (mf_varname_tree): Remove old location code.
12714         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
12715         * cfgexpand.c (expand_gimple_cond_expr): Don't use
12716         location_from_locus.
12717         (construct_exit_block): Remove old location code.
12718         * emit-rtl.c (force_next_line_note): Remove old location code.
12719         * profile.c (branch_prob): Remove old location code.
12720         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
12721         LOC_LINE): Remove old-location variants.
12722         * langhooks.c (lhd_print_error_function): Remove old location
12723         code.
12724         * configure, config.in: Rebuilt.
12725         * configure.ac (--enable-mapped-location): Remove.
12726         * c-decl.c (c_init_decl_processing): Remove old location code.
12727         (finish_function): Likewise.
12728         * recog.c (decode_asm_operands): Remove old location code.
12729         * c-pch.c (c_common_read_pch): Remove old location code.
12730         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
12731         variants.
12732         * gimple-low.c (lower_function_body): Remove old location code.
12733         * toplev.c (unknown_location): Remove.
12734         (push_srcloc): Remove old-location variant.
12735         (process_options): Remove old location code.
12736         (lang_dependent_init): Likewise.
12737         * input.h (UNKNOWN_LOCATION): Move definition.
12738         (location_t): Undeprecate.
12739         (source_locus): Remove.
12740         (location_from_locus): Remove.
12741         (struct location_s): Remove.
12742         Remove all old-location code.
12743         (input_line, input_filename): Remove.
12744         * final.c (final_scan_insn): Remove old location code.
12745         * diagnostic.c (diagnostic_build_prefix): Remove
12746         USE_MAPPED_LOCATION test.
12747         * tree.h (gimple_stmt) <locus>: Now a location_t.
12748         (tree_exp) <locus>: Likewise.
12749         (DECL_IS_BUILTIN): Remove old-location variant.
12750         (annotate_with_file_line, annotate_with_locus): Likewise.
12751         (expr_locus, set_expr_locus): Update.
12752         * tree.c (build1_stat): Remove old location code.
12753         (last_annotated_node): Remove.
12754         (annotate_with_file_line): Remove old-location variant.
12755         (annotate_with_locus): Likewise.
12756         (expr_location): Remove old location code.
12757         (set_expr_location): Likewise.
12758         (expr_has_location): Likewise.
12759         (expr_locus): Likewise.
12760         (set_expr_locus): Likewise.
12761         (expr_filename): Don't use location_from_locus.
12762         (expr_lineno): Likewise.
12763         * rtl-error.c (location_for_asm): Remove old location code.
12764         * c-lex.c (cb_line_change): Remove old location code.
12765         (fe_file_change): Likewise.
12766         (cb_def_pragma): Likewise.
12767         (c_lex_with_flags): Likewise.
12768         * gengtype.c (do_typedef): Don't special-case location types.
12769         (define_location_structures): Remove.
12770         (main): Don't call define_location_structures.
12771         * tree-pretty-print.c (dump_implicit_edges): Remove old location
12772         code.
12773
12774 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12775
12776         PR 26264
12777         * builtins.def (BUILT_IN_STDARG_START): Remove.
12778         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
12779         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
12780         * tree-inline.c (inline_forbidden_p_1): Likewise.
12781         
12782 2008-02-26  Richard Guenther  <rguenther@suse.de>
12783
12784         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12785         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12786         (lookup_decl_from_uid): Declare.
12787         (remove_decl_from_map): Likewise.
12788         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12789         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12790         (decl_for_uid_map): New global hashtable mapping DECL_UID
12791         to the decl tree.
12792         (init_ttree): Allocate it.
12793         (insert_decl_to_uid_decl_map): New helper function.
12794         (make_node_stat): Insert new decls into the map.
12795         (copy_node_stat): Likewise.
12796         (lookup_decl_from_uid): New function.
12797         (remove_decl_from_map): Likewise.
12798         (print_decl_for_uid_map_statistics): New helper.
12799         (dump_tree_statistics): Call it.
12800
12801         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12802         (referenced_var_iterator): Adjust.
12803         (FOR_EACH_REFERENCED_VAR): Adjust.
12804         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12805         (num_referenced_vars): Adjust.
12806         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12807         (first_referenced_var): Remove.
12808         (end_referenced_vars_p): Likewise.
12809         (next_referenced_var): Likewise.
12810         (referenced_var_iterator_set): New helper function.
12811         * tree-dfa.c (referenced_var_lookup): Adjust.
12812         (referenced_var_check_and_insert): Likewise.
12813         (remove_referenced_var): Likewise.
12814         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12815         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12816         (verify_call_clobbering): Likewise.
12817         (verify_memory_partitions): Likewise.
12818         (init_tree_ssa): Allocate bitmap instead of hashtable for
12819         referenced_vars.
12820         (delete_tree_ssa): Adjust.
12821         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12822         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12823         (compute_tag_properties): Likewise.
12824         (set_initial_properties): Likewise.
12825         (find_partition_for): Likewise.
12826         (update_reference_counts): Likewise.
12827         (dump_may_aliases_for): Likewise.
12828         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12829         (add_call_clobber_ops): Likewise.
12830         (add_call_read_ops): Likewise.
12831         (get_asm_expr_operands): Likewise.
12832         * tree-into-ssa.c (dump_decl_set): Likewise.
12833         (update_ssa): Likewise.
12834         * tree-sra.c (scan_function): Likewise.
12835         (decide_instantiations): Likewise.
12836         (scalarize_parms): Likewise.
12837         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12838         (dsa_named_for): Likewise.
12839         * tree-ssa-structalias.c (update_alias_info): Likewise.
12840         (merge_smts_into): Likewise.
12841
12842 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12843
12844         PR 34351
12845         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
12846         * c-opts.c (c_common_handle_option): Wall enables
12847         Wvolatile-register-var.
12848         * common.opt: Move Wvolatile-register-var to...
12849         * c.opt: ...here.
12850         
12851 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12852
12853         * common.opt (Wlarger-than=): New.
12854         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
12855         -Wlarger-than=.
12856         * opts.c (common_handle_option): Handle -Wlarger-than=.
12857         * optc-gen.awk: Likewise.
12858         * opth-gen.awk: Likewise.
12859         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
12860         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12861         
12862 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12863
12864         * c-common.c (match_case_to_enum_1): Add appropriate
12865         OPT_W* parameter to warning.
12866         (c_do_switch_warnings): Likewise.
12867         * c-typeck.c (warning_init): Add one more parameter following
12868         'warning' function.
12869         (push_init_level): Update call to warning_init.
12870         (pop_init_level): Likewise.
12871         (add_pending_init): Likewise.
12872         (output_init_element: Likewise.
12873
12874 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12875
12876         PR 28322
12877         * toplev.c (toplev_main): If there are warnings or error, print
12878         errors for ignored options.
12879         * opts.c (ignored_options): New static variable.
12880         (postpone_unknown_option_error): New.
12881         (print_ignored_options): New.
12882         (handle_option): Postpone errors for unknown -Wno-* options.
12883         * opts.h (print_ignored_options): Declare.
12884         
12885 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
12886
12887         * config/mips/mips.md (loadgp_blockage, blockage): Change type
12888         to "ghost".
12889
12890 2008-02-25  Richard Guenther  <rguenther@suse.de>
12891
12892         Revert:
12893         2008-02-25  Richard Guenther  <rguenther@suse.de>
12894
12895         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12896         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12897         (lookup_decl_from_uid): Declare.
12898         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12899         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12900         (decl_for_uid_map): New global hashtable mapping DECL_UID
12901         to the decl tree.
12902         (init_ttree): Allocate it.
12903         (insert_decl_to_uid_decl_map): New helper function.
12904         (make_node_stat): Insert new decls into the map.
12905         (copy_node_stat): Likewise.
12906         (lookup_decl_from_uid): New function.
12907         (print_decl_for_uid_map_statistics): New helper.
12908         (dump_tree_statistics): Call it.
12909
12910         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12911         (referenced_var_iterator): Adjust.
12912         (FOR_EACH_REFERENCED_VAR): Adjust.
12913         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12914         (num_referenced_vars): Adjust.
12915         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12916         (first_referenced_var): Remove.
12917         (end_referenced_vars_p): Likewise.
12918         (next_referenced_var): Likewise.
12919         (referenced_var_iterator_set): New helper function.
12920         * tree-dfa.c (referenced_var_lookup): Adjust.
12921         (referenced_var_check_and_insert): Likewise.
12922         (remove_referenced_var): Likewise.
12923         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
12924         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12925         (verify_call_clobbering): Likewise.
12926         (verify_memory_partitions): Likewise.
12927         (init_tree_ssa): Allocate bitmap instead of hashtable for
12928         referenced_vars.
12929         (delete_tree_ssa): Adjust.
12930         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
12931         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
12932         (compute_tag_properties): Likewise.
12933         (set_initial_properties): Likewise.
12934         (find_partition_for): Likewise.
12935         (update_reference_counts): Likewise.
12936         (dump_may_aliases_for): Likewise.
12937         * tree-ssa-operands.c (add_virtual_operand): Likewise.
12938         (add_call_clobber_ops): Likewise.
12939         (add_call_read_ops): Likewise.
12940         (get_asm_expr_operands): Likewise.
12941         * tree-into-ssa.c (dump_decl_set): Likewise.
12942         (update_ssa): Likewise.
12943         * tree-sra.c (scan_function): Likewise.
12944         (decide_instantiations): Likewise.
12945         (scalarize_parms): Likewise.
12946         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
12947         (dsa_named_for): Likewise.
12948         * tree-ssa-structalias.c (update_alias_info): Likewise.
12949         (merge_smts_into): Likewise.
12950
12951 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
12952
12953         PR fortran/29549
12954         * doc/invoke.texi (-fcx-limited-range): Document new option.
12955         * toplev.c (process_options): Handle -fcx-fortran-rules.
12956         * common.opt: Add documentation for -fcx-fortran-rules.
12957
12958 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
12959
12960         PR c/35162
12961         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
12962         actual behaviour and C99.
12963         
12964 2008-02-26  Ben Elliston  <bje@au.ibm.com>
12965
12966         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
12967         (ASM_CPU_POWER6_SPEC): Likewise.
12968         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
12969         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
12970         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
12971
12972 2008-02-25  Richard Guenther  <rguenther@suse.de>
12973
12974         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
12975         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
12976         (lookup_decl_from_uid): Declare.
12977         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
12978         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
12979         (decl_for_uid_map): New global hashtable mapping DECL_UID
12980         to the decl tree.
12981         (init_ttree): Allocate it.
12982         (insert_decl_to_uid_decl_map): New helper function.
12983         (make_node_stat): Insert new decls into the map.
12984         (copy_node_stat): Likewise.
12985         (lookup_decl_from_uid): New function.
12986         (print_decl_for_uid_map_statistics): New helper.
12987         (dump_tree_statistics): Call it.
12988
12989         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
12990         (referenced_var_iterator): Adjust.
12991         (FOR_EACH_REFERENCED_VAR): Adjust.
12992         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
12993         (num_referenced_vars): Adjust.
12994         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
12995         (first_referenced_var): Remove.
12996         (end_referenced_vars_p): Likewise.
12997         (next_referenced_var): Likewise.
12998         (referenced_var_iterator_set): New helper function.
12999         * tree-dfa.c (referenced_var_lookup): Adjust.
13000         (referenced_var_check_and_insert): Likewise.
13001         (remove_referenced_var): Likewise.
13002         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13003         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13004         (verify_call_clobbering): Likewise.
13005         (verify_memory_partitions): Likewise.
13006         (init_tree_ssa): Allocate bitmap instead of hashtable for
13007         referenced_vars.
13008         (delete_tree_ssa): Adjust.
13009         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13010         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13011         (compute_tag_properties): Likewise.
13012         (set_initial_properties): Likewise.
13013         (find_partition_for): Likewise.
13014         (update_reference_counts): Likewise.
13015         (dump_may_aliases_for): Likewise.
13016         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13017         (add_call_clobber_ops): Likewise.
13018         (add_call_read_ops): Likewise.
13019         (get_asm_expr_operands): Likewise.
13020         * tree-into-ssa.c (dump_decl_set): Likewise.
13021         (update_ssa): Likewise.
13022         * tree-sra.c (scan_function): Likewise.
13023         (decide_instantiations): Likewise.
13024         (scalarize_parms): Likewise.
13025         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13026         (dsa_named_for): Likewise.
13027         * tree-ssa-structalias.c (update_alias_info): Likewise.
13028         (merge_smts_into): Likewise.
13029
13030 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
13031
13032         PR target/35258
13033         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
13034         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
13035         * alias.h (nonoverlapping_memrefs_p): Likewise.
13036
13037 2008-02-25  Jan Beulich  <jbeulich@novell.com>
13038
13039         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
13040         * config/i386/netware-libgcc.exp: Add __bswap?i2,
13041         __emultls_get_address, __emultls_register_common,
13042         __floatundi?f, and _Unwind_GetIPInfo.
13043         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
13044         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
13045         (gen_regparm_prefix): Likewise.
13046         (i386_nlm_encode_section_info): Sync with
13047         config/i386/winnt.c:i386_pe_encode_section_info().
13048         (i386_nlm_maybe_mangle_decl_assembler_name): New.
13049         i386_nlm_mangle_decl_assembler_name): New.
13050         (netware_override_options): New.
13051         * config/i386/netware.h (netware_override_options): Declare.
13052         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
13053         (i386_nlm_mangle_decl_assembler_name): Declare.
13054         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
13055
13056 2008-02-25  Ben Elliston  <bje@au.ibm.com>
13057
13058         PR other/32948
13059         * c-decl.c (grokdeclarator): Remove unused local variables
13060         `typedef_type' and `type_as_written'.
13061         * bb-reorder.c
13062         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
13063         unused local variable `has_hot_blocks'.
13064         (fix_crossing_conditional_branches): Remove unused local variable
13065         `prev_bb'.
13066         
13067 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
13068
13069         PR middle-end/19984
13070         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
13071         using DEF_C99_BUILTIN.
13072         (BUILT_IN_NANF): Ditto.
13073         (BUILT_IN_NANL): Ditto.
13074
13075 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
13076             Revital Eres  <eres@il.ibm.com>
13077
13078         * modulo-sched.c (calculate_must_precede_follow): Address TODO
13079         regarding the order of two dependent insns in the same row.
13080
13081 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
13082
13083         * stor-layout.c (layout_decl): Do not bump the alignment of a
13084         bit-field to more than byte alignment if it is packed.
13085
13086 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
13087
13088         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
13089         e300c2 and e300c3.
13090
13091 2008-02-24  Diego Novillo  <dnovillo@google.com>
13092
13093         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
13094
13095         PR 33738
13096         * tree-vrp.c (vrp_evaluate_conditional): With
13097         -Wtype-limits, emit a warning when comparing against a
13098         constant outside the natural range of OP0's type.
13099         * c.opt (Wtype-limits): Move ...
13100         * common.opt (Wtype-limits): ... here.
13101
13102 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
13103
13104         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
13105         * config/rs6000/e300c2c3.md: New file.
13106         * config/rs6000/rs6000.c (processor_costs): Add new costs for
13107         e300c2 and e300c3.
13108         (rs6000_override_options): Add e300c2 and e300c3 cases to
13109         processor_target_table. Do not allow usage of Altivec or Spe
13110         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
13111         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
13112         * config/rs6000/rs6000.h (processor_type): Add
13113         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
13114         (ASM_CPU_SPEC): Add e300c2 and e300c3.
13115         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
13116         and ppce300c3. Include e300c2c3.md.
13117
13118 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
13119
13120         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
13121         instead of TARGET_STRICT_ALIGN.
13122
13123 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
13124
13125         * explow.c (memory_address): Assert that the generated address is
13126         valid.
13127
13128 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13129
13130         PR target/25477
13131         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
13132         * config/darwin-ppc-ldouble-patch.def: New file.
13133         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
13134         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
13135         SUBTARGET_INIT_BUILTINS if defined.
13136         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
13137         New functions.
13138
13139 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13140
13141         PR rtl-opt/33512
13142         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
13143         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
13144
13145 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13146
13147         PR pch/35027
13148         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
13149         file" warning condtional on -Winvalid-PCH.
13150
13151 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
13152
13153         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
13154
13155 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
13156
13157         PR target/22076
13158         PR target/34256 
13159         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
13160         prevent reload from using MMX registers.
13161         (*mov<mode>_internal): Ditto.
13162         (*movv2sf_internal_rex64): Ditto.
13163         (*movv2sf_internal): Ditto.
13164
13165 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13166
13167         PR documentation/31569
13168         * doc/install.texi2html: Use makeinfo --no-number-sections.
13169
13170 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13171
13172         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
13173         ensure that we can address an entire entity > 8 bytes.  Don't
13174         generate reg+reg addressing for such data.
13175
13176 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13177
13178         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
13179         strings when optimizing for size, unless the target cares about
13180         alignment.
13181
13182 2008-02-22  Tom Tromey  <tromey@redhat.com>
13183
13184         * regclass.c (current_pass): Remove declaration.
13185
13186 2008-02-22  Anatoly Sokolov <aesok@post.ru>
13187
13188         * config/avr/libgcc.S (__RAMPZ__): Define.
13189         (__do_copy_data): Add for devices with 128KB code memory.
13190
13191 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
13192
13193         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
13194         Use spe_abi.
13195         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
13196
13197 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
13198
13199         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
13200         GENNONACR_REGS.
13201
13202 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13203
13204         PR c/19999
13205         * c-typeck.c (build_binary_op): Warn about floating point
13206         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
13207
13208 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
13209
13210         PR target/34526
13211         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
13212         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
13213         add vrsave.
13214         (rs6000_override_options): Set altivec_abi as default, not override,
13215         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
13216         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
13217         is used; use new member spe_abi.
13218         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
13219         spe_abi and altivec_abi.
13220
13221 2008-02-22  Tomas Bily  <tbily@suse.cz>
13222
13223         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
13224
13225 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13226
13227         PR bootstrap/35273
13228         * config.build (build_file_translate): Set to `CMD //c' only if
13229         it works.
13230         * Makefile.in (build_file_translate): Improve comment.
13231
13232 2008-02-21  Jan Hubicka  <jh@suse.cz>
13233
13234         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
13235         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
13236         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
13237
13238 2008-02-21  Michael Matz  <matz@suse.de>
13239
13240         PR target/35264
13241         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
13242
13243 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
13244
13245         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
13246         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
13247         as insn constraint.
13248         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
13249         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
13250         SSE_VEC_FLOAT_MODE_P as insn constraint.
13251         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
13252         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
13253         sse4a_movntdf using MODEF mode iterator.
13254         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
13255         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
13256         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
13257         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
13258         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
13259         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
13260         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
13261
13262 2008-02-21  Richard Guenther  <rguenther@suse.de>
13263
13264         * tree.def (PAREN_EXPR): New tree code.
13265         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
13266         and PAREN_EXPR.
13267         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
13268         * expr.c (expand_expr_real_1): Likewise.
13269         * tree-inline.c (estimate_num_insns_1): Likewise.
13270         * tree-complex.c (expand_complex_move): Likewise.
13271         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
13272         as plain x.
13273
13274 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13275
13276         PR target/35225
13277         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
13278
13279 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
13280
13281         PR target/35190
13282         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
13283
13284         * config/sh/sh.c (find_barrier): Don't go past
13285         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
13286
13287 2008-02-20  DJ Delorie  <dj@redhat.com>
13288
13289         * config/h8300/h8300.md (insv): Force source operand to be a register.
13290
13291         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
13292         as a jump, not as a plain insn.
13293         
13294 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
13295
13296         * doc/invoke.texi (Warning Options): Add new option
13297         -Wframe-larger-than=.
13298         (-Wframe-larger-than): Document.
13299
13300         * flags.h (warn_frame_larger_than, frame_larger_than_size):
13301         Add declarations for new option variables.
13302
13303         * final.c (final_start_function): Check the frame size
13304         before emission and issue a Wframe-larger-than warning.
13305
13306         * opts.c (warn_frame_larger_than, frame_larger_than_size):
13307         Add definitions for new option variables.
13308         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
13309
13310         * common.opt (Wframe-larger-than=): New option.
13311
13312 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
13313
13314         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
13315         (<sse>_div<mode>3): Ditto.
13316         (<sse>_vmdiv<mode>3): Ditto.
13317         (<sse>_vmsqrt<mode>2): Ditto.
13318         (*smax<mode>3): Ditto.
13319         (sse5_frcz<mode>2): Ditto.
13320         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
13321         as insn constraint.
13322
13323 2008-02-20  Richard Guenther  <rguenther@suse.de>
13324
13325         PR middle-end/35265
13326         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
13327         be happy with INTEGRAL_TYPE_P.
13328
13329 2008-02-20  Richard Guenther  <rguenther@suse.de>
13330
13331         * fold-const.c (split_tree): Associate floatig-point expressions
13332         if flag_associative_math is set.
13333
13334 2008-02-20  Richard Guenther  <rguenther@suse.de>
13335
13336         * tree.h (fold_real_zero_addition_p): Declare.
13337         * fold-const.c (fold_real_zero_addition_p): Export.
13338         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
13339         floating-point operations with zero and one.
13340
13341 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
13342
13343         * doc/install.texi: Correct references to CFLAGS, replacing them
13344         with BOOT_CFLAGS.  Document flags used during bootstrap for
13345         target libraries.
13346                                 
13347 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
13348
13349         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
13350         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
13351         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
13352         insn constraint.
13353         (smin<mode>3): Ditto from similar patterns.
13354         (smax<mode>3): Ditto.
13355         (*ieee_smin<mode>3): Ditto.
13356         (*ieee_smax<mode>3): Ditto.
13357         * config/i386/sse.md (sse): New mode attribute.
13358         (mov<mode>): Macroize expander from movv4sf and movv2df using
13359         SSEMODEF2P mode iterator.
13360         (<sse>_movnt<mode>): Ditto from similar patterns. Use
13361         SSE_VEC_FLOAT_MODE_P as insn constraint.
13362         (storent<mode>): Ditto.
13363         (storent<mode>): Macroize expander from storentsf and storentdf using
13364         MODEF mode iterator.
13365         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
13366         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
13367         (abs<mode>2): Ditto from similar patterns.
13368         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
13369         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
13370         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
13371         (<sse>_vmsqrt<mode>2): Ditto.
13372         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
13373         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
13374         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
13375         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
13376         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
13377         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
13378         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
13379         insn constraint.
13380         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
13381         iterator and SSE_FLOAT_MODE_P as insn constraint.
13382         (<sse>_ucomi): Ditto from similar patterns.
13383         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
13384         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
13385         SSE_VEC_FLOAT_MODE_P as insn constraint.
13386         (vcond<mode>): Ditto from similar patterns.
13387         (and<mode>3, *and<mode>3): Ditto.
13388         (<sse>_nand<mode>3): Ditto.
13389         (ior<mode>3, *ior<mode>3): Ditto.
13390         (xor<mode>3, *xor<mode>3): Ditto.
13391         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
13392         iterator and SSE_FLOAT_MODE_P as insn constraint.
13393         (*nand<mode>3): Ditto from similar patterns.
13394         (*ior<mode>3): Ditto.
13395         (*xor<mode>3): Ditto.
13396
13397 2008-02-20  Ira Rosen  <irar@il.ibm.com>
13398
13399         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
13400         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
13401         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
13402
13403 2008-02-19  Jan Hubicka  <jh@suse.cz>
13404
13405         * predict.c (tree_bb_level_predictions): Remove variable next
13406         mistakely introduced by previous commit.
13407
13408 2008-02-19  Jan Hubicka  <jh@suse.cz>
13409
13410         * predict.c (predict_paths_leading_to): Rewrite.
13411         (predict_paths_for_bb): New.
13412         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
13413
13414 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13415
13416         PR bootstrap/35218
13417         * Makefile.in (build_file_translate): New.
13418         (gcc-vers.texi): Use it for translating $(abs_srcdir).
13419         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
13420         * configure.ac (build_file_translate): Substitute it.
13421         * configure: Regenerate.
13422
13423 2008-02-19  Jan Hubicka  <jh@suse.cz>
13424
13425         PR rtl-optimization/34408
13426         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
13427         invalid sharing.
13428
13429 2008-02-19  Jan Hubicka  <jh@suse.cz>
13430
13431         PR middle-end/28779
13432         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
13433         call_expr.
13434
13435 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
13436
13437         PR Ada/35186
13438         * config/i386/i386-modes.def: Revert the last DI alignment
13439         change until Ada people can look into it.
13440
13441 2008-02-19  Nick Clifton  <nickc@redhat.com>
13442
13443         * opts.c (print_specific_help): Fix typo in --help text.
13444
13445 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
13446
13447         PR target/35239
13448         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
13449         32-bit inline asm without asm alternatives for host GCC < 3.0.
13450
13451 2008-02-19  Richard Guenther  <rguenther@suse.de>
13452
13453         PR tree-optimization/34989
13454         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
13455         Allow propagation to INDIRECT_REF if we can simplify only.
13456
13457 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13458
13459         * c-common.c (warn_for_collisions_1): Use appropriate option when
13460         warning.
13461
13462 2008-02-19  Nick Clifton  <nickc@redhat.com>
13463
13464         PR other/31349
13465         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
13466         (handle_options): Fix indentation.
13467         (print_filtered_help): If no language-specific options were
13468         displayed tell the user how to list all the options supported by
13469         the language's front-end.
13470         (print_specific_help): Fix indentation and remove duplicate line.
13471         (common_handle_option): Handle the -v option.
13472         For --help enable the display of undocumented options if the -v
13473         switch has been included on the command line.
13474         For --help= check for overlaps in the arguments between the option
13475         classes and the language names and issue a warning when they
13476         cannot be disambiguated.
13477         * c.opt (v): Pass on to the common option handler.
13478
13479 2008-02-19  Revital Eres  <eres@il.ibm.com> 
13480
13481         * modulo-sched.c (sms_schedule): Change dump message when
13482         create_ddg function fails.
13483         (try_scheduling_node_in_cycle): Rename row to cycle.
13484         (print_partial_schedule): Rename CYCLE to ROW.
13485
13486 2008-02-19  Christian Bruel  <christian.bruel@st.com>
13487             Zdenek Dvorak  <ook@ucw.cz>
13488
13489         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
13490
13491 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
13492
13493         PR target/33555
13494         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
13495         (*x86_movdicc_0_m1_se): Ditto.
13496
13497 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
13498
13499         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
13500         (CMPtype): Define as __gcc_CMPtype.
13501         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
13502         (CMPtype): Define as __gcc_CMPtype.
13503
13504 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
13505
13506         Support valgrind 3.3 for --enable-checking=valgrind.
13507         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
13508         here.
13509         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
13510         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
13511         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
13512         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
13513         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
13514         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
13515         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
13516         respectively.
13517         * ggc-zone.c: Similar.
13518         * ggc-page.c: Similar.
13519
13520 2008-02-19  Paul Brook  <paul@codesourcery.com>
13521
13522         PR target/35071
13523         * config/arm/ieee754-df.S: Fix do_it typo.
13524         * config/arm/ieee754-sf.S: Fix do_it typo.
13525
13526 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
13527
13528         PR target/35189
13529         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
13530         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
13531         (OPTION_MASK_ISA_SSE_SET): Likewise.
13532         (OPTION_MASK_ISA_SSE2_SET): Likewise.
13533         (OPTION_MASK_ISA_SSE3_SET): Likewise.
13534         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
13535         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
13536         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
13537         (OPTION_MASK_ISA_SSE4_SET): Likewise.
13538         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
13539         (OPTION_MASK_ISA_SSE5_SET): Likewise.
13540         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
13541         (OPTION_MASK_ISA_MMX_UNSET): Updated.
13542         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
13543         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
13544         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
13545         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
13546         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
13547         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
13548         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
13549         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
13550         (OPTION_MASK_ISA_SSE4): Removed.
13551         (ix86_handle_option): Turn on bits in ix86_isa_flags and
13552         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
13553         (override_options): Don't turn on implied SSE/MMX bits in
13554         ix86_isa_flags.
13555
13556 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
13557
13558         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
13559         32bit host.
13560
13561 2008-02-18  Joey Ye  <joey.ye@intel.com>
13562
13563         PR middle-end/34921
13564         * tree-nested.c (insert_field_into_struct): Set type alignment
13565         to field alignment if the former is less than the latter.
13566
13567 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
13568
13569         * BASE-VER: Set to 4.4.0.
13570
13571 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13572
13573         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
13574         * doc/cfg.texi: Likewise.
13575         * doc/extend.texi: Likewise.
13576         * doc/gty.texi: Likewise.
13577         * doc/invoke.texi: Likewise.
13578         * doc/loop.texi: Likewise.
13579         * doc/md.texi: Likewise.
13580         * doc/passes.texi: Likewise.
13581         * doc/rtl.texi: Likewise.
13582         * doc/sourcebuild.texi: Likewise.
13583         * doc/tm.texi: Likewise.
13584         * doc/tree-ssa.texi: Likewise.
13585
13586 2008-02-17  Richard Guenther  <rguenther@suse.de>
13587
13588         PR middle-end/35227
13589         * tree-complex.c (init_parameter_lattice_values): Handle parameters
13590         without default definition.
13591
13592 2008-02-17  Richard Guenther  <rguenther@suse.de>
13593
13594         PR tree-optimization/35231
13595         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
13596         if A | B != 1.
13597
13598 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
13599
13600         Revert:
13601         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
13602         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
13603         libgcc_cmp_return mode.
13604
13605 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13606
13607         PR c/28368
13608         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
13609
13610 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
13611
13612         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
13613         multilibs.
13614
13615 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13616
13617         * doc/c-tree.texi: Use `@.' where appropriate.
13618         * doc/extend.texi: Likewise.
13619         * doc/install.texi: Likewise.
13620         * doc/invoke.texi: Likewise.
13621         * doc/loop.texi: Likewise.
13622         * doc/makefile.texi: Likewise.
13623         * doc/md.texi: Likewise.
13624         * doc/passes.texi: Likewise.
13625         * doc/standards.texi: Likewise.
13626         * doc/tm.texi: Likewise.
13627
13628 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
13629
13630         PR middle-end/35196
13631         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
13632         in entry_bb.
13633         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
13634         rather than in entry_bb.
13635
13636 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
13637
13638         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
13639         libgcc_cmp_return mode.
13640
13641 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
13642
13643         PR middle-end/35130
13644         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
13645         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
13646
13647 2008-02-15  Richard Guenther  <rguenther@suse.de>
13648             Zdenek Dvorak  <ook@ucw.cz>
13649
13650         PR tree-optimization/35164
13651         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
13652         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
13653         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
13654         Only propagate addresses which do not have abnormal SSA_NAMEs
13655         in their operands.
13656
13657 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
13658
13659         PR target/35088
13660         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
13661
13662 2008-02-15  Jan Hubicka  <jh@suse.cz>
13663
13664         PR middle-end/35149
13665         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
13666
13667 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
13668
13669         PR middle-end/34621
13670         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
13671         when calculating alignment_pad.
13672
13673 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
13674
13675         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
13676         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
13677         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
13678         and STACK_BOUNDARY define.
13679
13680 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
13681
13682         PR preprocessor/35061
13683         * c-pragma.c (handle_pragma_pop_macro): Check that
13684         pushed_macro_table has been allocated.
13685
13686 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
13687
13688         PR middle-end/35136
13689         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
13690         (force_gimple_operand): Likewise.
13691         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
13692         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
13693         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
13694         (find_interesting_uses_address): Check addressability and alignment
13695         of the base expression only after substituting bases of IVs into it.
13696
13697 2008-02-14  Michael Matz  <matz@suse.de>
13698
13699         PR target/34930
13700         * function.c (instantiate_virtual_regs_in_insn): Reload address
13701         before falling back to reloading the whole operand.
13702
13703 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
13704
13705         * config/s390/s390.c (s390_mainpool_start): Emit the pool
13706         before the first section switch note.
13707
13708 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13709
13710         * doc/bugreport.texi: Update copyright years.
13711         * doc/c-tree.texi: Likewise.
13712         * doc/cfg.texi: Likewise.
13713         * doc/cpp.texi: Likewise.
13714         * doc/cppinternals.texi: Likewise.
13715         * doc/fragments.texi: Likewise.
13716         * doc/frontends.texi: Likewise.
13717         * doc/gcc.texi: Likewise.
13718         * doc/gty.texi: Likewise.
13719         * doc/hostconfig.texi: Likewise.
13720         * doc/implement-c.texi: Likewise.
13721         * doc/libgcc.texi: Likewise.
13722         * doc/loop.texi: Likewise.
13723         * doc/makefile.texi: Likewise.
13724         * doc/options.texi: Likewise.
13725         * doc/passes.texi: Likewise.
13726         * doc/rtl.texi: Likewise.
13727         * doc/sourcebuild.texi: Likewise.
13728         * doc/standards.texi: Likewise.
13729         * doc/tree-ssa.texi: Likewise.
13730         * doc/trouble.texi: Likewise.
13731
13732         * doc/extend.texi: Use @: or add comma where appropriate.
13733         * doc/invoke.texi: Likewise.
13734         * doc/tm.texi: Likewise.
13735
13736 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
13737
13738         PR target/34393
13739         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
13740         to a reg.
13741
13742 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
13743
13744         * doc/md.texi (clz, ctz): Add reference.
13745         * doc/rtl.texi (clz, ctz): Likewise.
13746
13747 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13748
13749         PR other/35148
13750         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
13751         srcdir.
13752
13753 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
13754
13755         * config/s390/s390.c (struct constant_pool): New field
13756         emit_pool_after added.
13757         (s390_mainpool_start): Set the emit_pool_after flag according
13758         to the section switch notes.
13759         (s390_mainpool_finish): Consider emit_pool_after when emitting
13760         the literal pool at the end of the function.
13761         (s390_chunkify_start): Force literal pool splits at section
13762         switch notes.
13763
13764 2008-02-13  Michael Matz  <matz@suse.de>
13765
13766         PR debug/35065
13767         * var-tracking.c (clobber_variable_part): Correctly traverse the
13768         list.
13769
13770 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13771
13772         PR 29673
13773         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
13774         Add -fdump-ipa-inline.
13775         * tree-dump.c (dump_files): Remove tree-inlined dump.
13776         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
13777         
13778 2008-02-12  Richard Guenther  <rguenther@suse.de>
13779
13780         PR tree-optimization/35171
13781         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
13782         default defs.
13783
13784 2008-02-12  Richard Guenther  <rguenther@suse.de>
13785
13786         PR middle-end/35163
13787         * fold-const.c (fold_widened_comparison): Use get_unwidened in
13788         value-preserving mode.  Disallow final truncation.
13789
13790 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
13791
13792         PR middle-end/35136
13793         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
13794         code from here to...
13795         (force_gimple_operand): ...here.
13796
13797 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
13798
13799         PR c++/35144
13800         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
13801         non-compatible pointers.
13802         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
13803         different FIELD_DECLs, try harder by comparing field offsets, sizes
13804         and types.
13805
13806         PR inline-asm/35160
13807         * function.c (match_asm_constraints_1): Don't replace the same input
13808         multiple times.
13809
13810 2008-02-12  Anatoly Sokolov <aesok@post.ru>
13811
13812         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
13813         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
13814         (expand_epilogue): Restore RAMPZ register.
13815         * config/avr/avr.md (RAMPZ_ADDR): New constant.
13816
13817 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
13818
13819         * config/i386/cygwin.asm: (__alloca): Correct calling
13820         convention and alignment.
13821         (__chkstk): Force 8 byte stack alignment.
13822
13823 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
13824             Richard Guenther  <rguenther@suse.de>
13825
13826         PR tree-optimization/33992
13827         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
13828         the zero we compare against.
13829
13830 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
13831
13832         PR libfortran/35063
13833         * gthr-win32.h (__gthread_mutex_destroy_function): New function
13834         to CloseHandle after unlocking to prevent accumulation of handle
13835         count.
13836
13837 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13838
13839         PR middle_end/34150
13840         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
13841         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
13842         and update LABEL_NUSES during and after reload.
13843
13844 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
13845
13846         PR middle-end/34627
13847         * combine.c (simplify_if_then_else): Make sure the comparison is
13848         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
13849
13850 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
13851
13852         PR bootstrap/35051
13853         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
13854         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
13855         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
13856         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
13857         * tree.h (get_type_static_bounds): Likewise.
13858
13859 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13860
13861         * doc/invoke.texi (Option Summary, C++ Dialect Options)
13862         (Objective-C and Objective-C++ Dialect Options, Warning Options):
13863         Make -Wfoo language annotations match what the compiler outputs.
13864
13865 2008-02-08  Sa Liu  <saliu@de.ibm.com>
13866
13867         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
13868         intrinsics spu_convts, spu_convtu, spu_convtf.
13869
13870 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
13871
13872         * doc/extend.texi (Function Attributes) <noinline>: Mention
13873         asm ("") as method to keep calls.
13874
13875 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13876
13877         PR other/32754
13878         * doc/options.texi (Options): Replace references to opts.sh with
13879         optc-gen.awk.
13880         * opts-common.c: Likewise.
13881         * optc-gen.awk: Likewise.
13882         
13883 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
13884
13885         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
13886
13887 2008-02-07  Richard Henderson  <rth@redhat.com>
13888
13889         PR rtl-opt/33410
13890         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
13891         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
13892         funny mode.
13893
13894 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
13895
13896         PR tree-optimization/35085
13897         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
13898         for operand entry oe2 in addition to operand entry oe3 in order to
13899         expose more opportunities for vectorizer sum reduction.
13900
13901 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13902
13903         PR other/35107
13904         * Makefile.in (LIBS): Remove $(GMPLIBS).
13905         (cc1-dummy, cc1): Add $(GMPLIBS).
13906
13907 2008-02-06  Jan Hubicka  <jh@suse.cz>
13908
13909         PR target/23322
13910         * i386.md (moddf_integer): Do not produce partial memory stalls for
13911         targets where it hurts.
13912
13913 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
13914
13915         PR target/35083
13916         * optabs.c (expand_float): Do not check for decimal modes when
13917         expanding unsigned integer through signed conversion.
13918
13919 2008-02-06  Nick Clifton  <nickc@redhat.com>
13920
13921         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
13922         inside the clobber with a match_operand and duplicated operand
13923         number in the constraint.
13924         (ineqbranchsi): Delete redundant comment.
13925
13926 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
13927
13928         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
13929         builtin_define ("__USE_INIT_FINI__").
13930         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
13931         -msx multilibs.
13932         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
13933
13934 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13935
13936         PR documentation/30330
13937         * doc/invoke.texi (C++ Dialect Options)
13938         (Objective-C and Objective-C++ Dialect Options, Warning Options):
13939         For each warning option -Wfoo that allows -Wno-foo, ensure both
13940         -Wfoo and -Wno-foo are listed in the option index.  Fix index
13941         entry of -Wswitch-default, index -Wnormalized= including the
13942         `=', and -Wlarger-than-@var{len} including @var{len}.
13943
13944 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
13945
13946         * config/i386/i386.md (floatunssisf2): Use
13947         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
13948         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
13949         Macroize expander using MODEF mode iterator.
13950
13951 2008-02-05  Diego Novillo  <dnovillo@google.com>
13952
13953         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
13954
13955         PR 33738
13956         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
13957
13958 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13959
13960         PR other/35070
13961         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
13962
13963 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
13964
13965         PR target/35084
13966         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
13967         to indicate if a message should be generated.
13968         (init_cumulative_args): Updated.
13969         (function_value_32): Likewise.
13970
13971 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
13972
13973         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
13974
13975 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
13976
13977         PR target/35083
13978         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
13979         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
13980
13981 2008-02-04  Diego Novillo  <dnovillo@google.com>
13982
13983         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
13984
13985         PR 33738
13986         * tree-vrp.c (vrp_evaluate_conditional): With
13987         -Wtype-limits, emit a warning when comparing against a
13988         constant outside the natural range of OP0's type.
13989
13990 2008-02-04  Richard Guenther  <rguenther@suse.de>
13991
13992         PR middle-end/33631
13993         * expr.c (count_type_elements): Give for unions instead of
13994         guessing.
13995
13996 2008-02-04  Richard Guenther  <rguenther@suse.de>
13997
13998         PR middle-end/35043
13999         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
14000         to TYPE_DOMAINs base type instead of using bitsizetype here.
14001
14002 2008-02-03  Jason Merrill  <jason@redhat.com>
14003
14004         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
14005
14006 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14007
14008         PR other/29972
14009         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
14010         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
14011         (RS/6000 and PowerPC Options): Fix typos and markup.
14012         * doc/passes.texi (Tree-SSA passes): Likewise.
14013
14014 2008-02-02  Michael Matz  <matz@suse.de>
14015
14016         PR target/35045
14017         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
14018         from record_last_reg_set_info.
14019         (record_last_reg_set_info): Take an RTX argument, iterate over all
14020         constituent hardregs.
14021         (record_last_set_info, record_opr_changes): Change calls to
14022         new signature or to record_last_reg_set_info_regno.
14023
14024 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
14025
14026         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
14027
14028 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
14029
14030         PR rtl-optimization/34773
14031         * reg-notes.def (EQUAL): Mention significance of combination of
14032         REG_EQUAL and REG_RETVAL.
14033         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
14034         insn that has a REG_RETVAL.
14035
14036 2008-02-01  Roger Sayle  <roger@eyesopen.com>
14037
14038         PR bootstrap/33781
14039         * configure.ac (--enable-fixed-point): Disable unless explicitly
14040         requested on IRIX.
14041         * configure: Regenerate.
14042
14043 2008-02-01  Richard Guenther  <rguenther@suse.de>
14044
14045         PR other/35042
14046         * invoke.texi (-finline-limit): Remove no longer true parts
14047         of the documentation.  Note that there is no default value.
14048
14049 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
14050             Mark Mitchell  <mark@codesourcery.com>
14051             Ben Elliston  <bje@au.ibm.com>
14052
14053         PR c/29326
14054         * doc/extend.texi (Other Builtins): Document.
14055
14056 2008-01-31  Tom Browder <tom.browder@gmail.com>
14057
14058         * doc/c-tree.texi (Types): Fix grammar.
14059         (Expression trees): Ditto.
14060         * doc/passes.texi (Tree-SSA passes): Ditto.
14061         
14062         * doc/configterms.texi (Configure Terms): Fix typo.
14063         * doc/cpp.texi (Common Predefined Macros): Ditto.
14064         * doc/md.texi (Machine Constraints): Ditto.
14065         
14066         * doc/makefile.texi (Makefile): Add comma.
14067
14068 2008-01-31  Tom Browder  <tom.browder@gmail.com>
14069             Gerald Pfeifer  <gerald@pfeifer.com>
14070         
14071         * doc/sourcebuild.texi (Front End): Remove references to CVS
14072         and CVSROOT/modules.
14073         (Texinfo Manuals): Replace reference to CVS by one to SVN.
14074         (Back End): Remove reference to CVS.
14075
14076 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14077
14078         PR target/34900
14079         * config/mips/mips.c (gen_load_const_gp): New function, taking a
14080         comment from...
14081         (mips16_gp_pseudo_reg): ...here.
14082         * config/mips/mips.md (load_const_gp): Replace with...
14083         (load_const_gp_<mode>): ...this :P-based insn.
14084
14085 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14086
14087         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
14088         options. Minor fixes.
14089         (-std): Move reference to standards closer to where language
14090         standards are first mentioned.
14091         
14092 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
14093
14094         PR rtl-optimization/34995
14095         * reload.c (alternative_allows_const_pool_ref): Take an rtx
14096         parameter and return a bool.  If the rtx parameter is nonnull,
14097         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
14098         (find_reloads): Update call accordingly.  Pass the new operand
14099         if it needed no address reloads, otherwise pass null.
14100
14101 2008-01-30  Richard Henderson  <rth@redhat.com>
14102
14103         PR c/34993
14104         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
14105         for unbounded arrays.
14106
14107 2008-01-30  Silvius Rus  <rus@google.com>
14108
14109         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
14110
14111 2008-01-30  Jan Hubicka  <jh@suse.cz>
14112
14113         PR target/34982
14114         * i386.c (init_cumulative_args): Use real function declaration when
14115         calling locally.
14116
14117 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
14118
14119         PR rtl-optimization/34998
14120         * global.c (build_insn_chain): Treat non-subreg_lowpart
14121         SUBREGs of pseudos as clobbering all the words covered by the
14122         SUBREG, not just all the bytes.
14123         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
14124         original df_ref rather than an extract parameter.
14125         (global_conflicts): Update call accordingly.
14126
14127 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
14128
14129         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
14130         the overflow check to make it easier to read.
14131         (__fixtfdi): Change the type of the ll member in union
14132         long_double to UDItype_x.
14133
14134 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
14135
14136         PR middle-end/34969
14137         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
14138         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
14139         * tree-inline.c (fold_marked_statements): Call
14140         cgraph_update_edges_for_call_stmt if folding a call statement.
14141         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
14142         debug_generic_stmt calls, reset it back afterwards.
14143
14144         PR c/35017
14145         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
14146         static decls.
14147         * c-typeck.c (build_external_ref): Don't pedwarn about
14148         static vars in current function's scope.
14149
14150 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
14151
14152         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
14153
14154 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
14155
14156         PR c/35002
14157         * ipa-struct-reorg.c: Fix spelling.
14158         * params.def: Ditto.
14159
14160 2008-01-29  Richard Guenther  <rguenther@suse.de>
14161
14162         PR middle-end/35006
14163         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
14164         field.
14165         * tree-inline.c (remap_type): Increment remapping_type_depth
14166         around remapping types.
14167         (copy_body_r): Only add referenced variables if they are referenced
14168         from code, not types.
14169
14170 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
14171
14172         PR c++/34055
14173         PR c++/34103
14174         PR c++/34219
14175         PR c++/34606
14176         PR c++/34753
14177         PR c++/34754
14178         PR c++/34755
14179         PR c++/34919
14180         PR c++/34961
14181         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
14182         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
14183
14184 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
14185
14186         PR target/34412
14187         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
14188         pointer for tiny stack.
14189
14190 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14191
14192         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
14193
14194 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
14195
14196         * config/vx-common.h: Fix typo in comment.
14197
14198 2008-01-28  Ian Lance Taylor  <iant@google.com>
14199
14200         PR c++/34862
14201         PR c++/33407
14202         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
14203         coalesce pointers if they have different DECL_NO_TBAA_P values.
14204         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
14205         between variables with different DECL_NO_TBAA_P values.
14206
14207 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
14208
14209         PR 31535
14210         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
14211         are not legitimate small data references on SPE targets.
14212
14213 2008-01-28  David Daney  <ddaney@avtrex.com>
14214
14215         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
14216
14217 2008-01-28  David Daney  <ddaney@avtrex.com>
14218
14219         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
14220
14221 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
14222
14223         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
14224         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
14225         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
14226         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
14227         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
14228         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
14229         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
14230         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
14231
14232 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14233
14234         * basic-block.h (condjump_equiv_p): Fix comment.
14235
14236 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14237
14238         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
14239         print_generic_stmt_indented): Fix comment.
14240
14241 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
14242
14243         * configure.ac (__stack_chk_fail): Add detecion for availability
14244         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
14245         * configure: Regenerate.
14246
14247 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
14248
14249         PR middle-end/34688
14250         * final.c (output_addr_const): Handle TRUNCATE.
14251
14252 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
14253
14254         PR target/34711
14255         * tree-ssa-loop-ivopts.c (comp_cost): New type.
14256         (zero_cost, infinite_cost): New constants.
14257         (struct cost_pair): Change type of cost to comp_cost.
14258         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
14259         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
14260         New functions.
14261         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
14262         split_address_cost, ptr_difference_cost, difference_cost,
14263         get_computation_cost_at, get_computation_cost,
14264         determine_use_iv_cost_generic, determine_use_iv_cost_address,
14265         determine_use_iv_cost_condition, determine_use_iv_costs,
14266         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
14267         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
14268         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
14269         Change type of cost to comp_cost.
14270         (determine_iv_cost): Increase cost of non-original ivs, instead
14271         of decreasing the cost of original ones.
14272         (get_address_cost): Indicate the complexity of the addressing mode 
14273         in comp_cost.
14274         (try_add_cand_for): Prefer using ivs not specific to some object.
14275         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
14276
14277 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
14278             Janis Johnson  <janis187@us.ibm.com>
14279
14280         PR target/34814
14281         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
14282         (TARGET_INSTANTIATE_DECLS): Likewise.
14283         * target.h (expand_to_rtl_hook): New target hook.
14284         (instantiate_decls): Likewise.
14285         * function.c (instantiate_decl): Make non-static.  Rename to...
14286         (instantiate_decl_rtl): ... this.
14287         (instantiate_expr): Use instantiate_decl_rtl.
14288         (instantiate_decls_1): Likewise.
14289         (instantiate_decls): Likewise.
14290         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
14291         * function.h (instantiate_decl_rtl): Add prototype.
14292         * cfgexpand.c (target.h): New include.
14293         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
14294         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
14295         (TARGET_INSTANTIATE_DECLS): Likewise.
14296         (TARGET_INITIALIZER): New target hooks added.
14297         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
14298         New prototype.
14299         * config/rs6000/rs6000.c (tree-flow.h): New include.
14300         (machine_function): Add sdmode_stack_slot field.
14301         (rs6000_alloc_sdmode_stack_slot): New function.
14302         (rs6000_instantiate_decls): Likewise.
14303         (rs6000_secondary_memory_needed_rtx): Likewise.
14304         (rs6000_check_sdmode): Likewise.
14305         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
14306         (TARGET_INSTANTIATE_DECLS): Likewise.
14307         (rs6000_hard_regno_mode_ok): Allow SDmode.
14308         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
14309         (rs6000_emit_move): Handle SDmode.
14310         (function_arg_advance): Likewise.
14311         (function_arg): Likewise.
14312         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
14313         SDmode var args for 32-bit compiles.
14314         (rs6000_secondary_reload_class): Handle SDmode.
14315         (rs6000_output_function_epilogue): Likewise.
14316         (rs6000_function_value): Simplify if statement.
14317         (rs6000_libcall_value): Likewise.
14318         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
14319         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
14320         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
14321         (movsd_hardfloat): New define_insn.
14322         (movsd_softfloat): Likewise.
14323         (movsd_store): Likewise.
14324         (movsd_load): Likewise.
14325         (extendsddd2): Likewise.
14326         (extendsdtd2): Likewise.
14327         (truncddsd2): Likewise.
14328         (movdd_hardfloat64): Fixup comment.
14329         (UNSPEC_MOVSD_LOAD): New constant.
14330         (UNSPEC_MOVSD_STORE): Likewise.
14331
14332 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
14333
14334         PR c++/34965
14335         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
14336         TRUTH_XOR_EXPR.
14337         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
14338         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
14339         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
14340         and TRUTH_XOR_EXPR.
14341
14342 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
14343
14344         PR target/34794
14345         * config.gcc: Separate AIX 5.3 from AIX 6.1.
14346         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14347         __LONGDOUBLE128 too.
14348         * config/rs6000/aix61.h: New file.
14349
14350 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
14351
14352         PR rtl-optimization/34959
14353         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
14354         popcount and parity rtxes the same mode as their operand.
14355         Truncate or extend the result to the return value's mode
14356         if necessary.
14357
14358 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
14359
14360         PR target/34981
14361         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
14362         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
14363         to GOT_VERSION_REGNUM.
14364         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
14365         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
14366         * config/mips/mips.c (mips_emit_call_insn): New function.
14367         (mips_call_tls_get_addr): Call mips_expand_call directly.
14368         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
14369         emit_call_insn.
14370         (mips16_build_call_stub): Likewise.  Return the call insn or null.
14371         (mips_expand_call): Update the call to mips16_build_call_stub
14372         accordingly and a remove redundant condition.  Assert that MIPS16
14373         stubs do not use lazy binding.  Use mips_emit_call_insn and return
14374         the call insn.
14375         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
14376         TARGET_USE_GOT.
14377         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
14378         (mips_avoid_hazard): Remove hazard_set handling.
14379         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
14380         (UNSPEC_RESTORE_GP): ...this.
14381         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
14382         (FAKE_CALL_REGNO): Rename to...
14383         (GOT_VERSION_REGNUM): ...this.
14384         (type): Add "ghost" value.  Add an associated insn reservation.
14385         (hazard_set): Remove.
14386         (exception_receiver): Rename to...
14387         (restore_gp): ...this and update the unspec identifier accordingly.
14388         (exception_receiver, nonlocal_got_receiver): New expanders.
14389         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
14390         FAKE_CALL_REGNO.  Remove hazard_set attribute.
14391         (set_got_version, update_got_version): New patterns.
14392
14393 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
14394
14395         PR target/34970
14396         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
14397
14398 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
14399
14400         PR other/31955
14401         * doc/install.texi2html: Generate gcc-vers.texi.
14402
14403 2008-01-25  DJ Delorie  <dj@redhat.com>
14404
14405         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
14406
14407 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
14408
14409         * config/c4x: Remove directory.
14410         * config.gcc (crx-*, mt-*): Mark obsolete.
14411         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
14412         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
14413         sh-*-rtemscoff*): Remove cases.
14414         * defaults.h (C4X_FLOAT_FORMAT): Remove.
14415         * real.c (encode_c4x_single, decode_c4x_single,
14416         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
14417         c4x_extended_format): Remove.
14418         * real.h (c4x_single_format, c4x_extended_format): Remove.
14419         * doc/extend.texi (interrupt, naked): Remove mention of attributes
14420         on C4x.
14421         (Pragmas): Remove comment about c4x pragmas.
14422         * doc/install.texi (c4x): Remove target-specific instructions.
14423         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
14424         * doc/md.texi (Machine Constraints): Remove C4x documentation.
14425         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
14426         refer to C4x source files as examples.
14427         (C4X_FLOAT_FORMAT): Remove documentation.
14428
14429 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
14430
14431         * config/bfin/bfin.c (override_options): Reorder tests so that
14432         flag_pic gets enabled for -msep-data.
14433
14434 2008-01-25  Richard Guenther  <rguenther@suse.de>
14435
14436         PR middle-end/32244
14437         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
14438         to its bitfield precision if required.
14439
14440 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
14441
14442         PR middle-end/33880
14443         * tree-nested.c (walk_omp_for): New function.
14444         (convert_nonlocal_reference, convert_local_reference): Call
14445         walk_omp_for on OMP_FOR.
14446         (convert_call_expr): Call walk_body on OMP_FOR's
14447         OMP_FOR_PRE_INIT_BODY.
14448
14449 2008-01-25  Richard Guenther  <rguenther@suse.de>
14450
14451         PR tree-optimization/34966
14452         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
14453         default defs and PHI_NODEs we have to insert after the
14454         defining statement.
14455
14456 2008-01-24  Nick Clifton  <nickc@redhat.com>
14457
14458         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
14459         Provide a default definition.
14460         (LIBGCC2_UNITS_PER_WORD): Likewise.
14461
14462         * config/stormy16/stormy16.c: Include df.h for the prototype
14463         for df_regs_ever_live_p.
14464         (xstormy16_expand_builtin_va_start): Convert the stack offset
14465         into a component_ref and then use POINTER_PLUS_EXPR to add it
14466         to the incoming_virtual_args_rtx.
14467         (xstormy16_gimplify_va_arg_expr): Rename to
14468         xstormy16_gimplify_va_arg_expr.
14469         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
14470         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
14471         xstormy16_gimplify_va_arg_expr.
14472         Fix up some formatting issues.
14473
14474         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
14475         Move to predicates.md.
14476         (xs_hi_general_operand): Likewise.
14477         (xs_hi_nonmemory_operand): Likewise.
14478         * config/stormy16/predicates.md:
14479         (xstormy16_carry_plus_operand): New predicate.
14480         (xs_hi_general_operand): New predicate.
14481         (xs_hi_nonmemory_operand): New predicate.
14482         * config/stormy16/stormy16-protos.h:
14483         (xstormy16_carry_plus_operand): Delete prototype.
14484         (xs_hi_general_operand): Likewise.
14485         (xs_hi_nonmemory_operand): Likewise.
14486
14487         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
14488         modifiers as they are no longer needed and they can trigger
14489         reload spill failures.
14490
14491         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
14492         with a match_operand in order to help reload.
14493
14494         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
14495         constraint with 'e' for the 8th alternative as this version of
14496         the mov.w instruction only accepts the lower 8 registers.
14497
14498 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
14499
14500         PR target/34856
14501         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
14502         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
14503         vector elements.
14504
14505 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
14506
14507         PR middle-end/33333
14508         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
14509
14510 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
14511
14512         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
14513         New functions.
14514         (remove_structure): Update allocations list before removing structure.
14515         
14516 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
14517
14518         * ipa-struct-reorg.c (is_safe_cond_expr, 
14519         create_new_stmts_for_cond_expr): Use integer_zerop function,
14520         that recognize not only zero-pointer, but zero-integer too.
14521
14522 2008-01-25  Ben Elliston  <bje@au.ibm.com>
14523
14524         PR other/22232
14525         * fixproto: Escape "." in sed expression that strips leading "./".
14526
14527 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14528
14529         PR driver/34904
14530         * gcc.c (SWITCH_OK): Removed.
14531         (SWITCH_LIVE): Changed to bit.
14532         (SWITCH_FALSE): Likewise.
14533         (SWITCH_IGNORE): Likewise.
14534         (switchstr): Change live_cond to unsigned int.
14535         (process_command): Replace SWITCH_OK with 0.
14536         (do_self_spec): Likewise.
14537         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
14538         (give_switch): Likewise.
14539         (used_arg): Likewise.
14540         (do_spec_1): Set the SWITCH_IGNORE bit.
14541         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
14542         bits.  Set the SWITCH_LIVE bit.
14543
14544 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
14545
14546         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
14547
14548 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
14549
14550         PR tree-optimization/34472
14551         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
14552         parameter to a "bool *" and set *DATA to false if there is
14553         an unsafe access.  Do not delete the structure here.
14554         (check_cond_exprs): Delete it here instead.
14555         (check_cond_exprs, exclude_cold_structs): Do not increase
14556         I when removing a structure.
14557
14558 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
14559
14560         PR target/34856
14561         * config/i386/i386.c (ix86_expand_vector_init): Consider only
14562         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
14563
14564 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
14565
14566         PR middle-end/34934
14567         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
14568         a fixed vector for stack.
14569
14570 2008-01-24  Ben Elliston  <bje@au.ibm.com>
14571
14572         PR c++/25701
14573         * doc/gcc.texi (Software development): Add a direntry for g++.
14574         
14575 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
14576
14577         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
14578         stale and straggling -fforce-addr comments above.
14579
14580         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
14581         define.
14582         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
14583         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
14584
14585 2008-01-23  Michael Matz  <matz@suse.de>
14586
14587         PR debug/34895
14588         * dwarf2out.c (force_type_die): Use modified_type_die instead of
14589         gen_type_die.
14590
14591 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
14592
14593         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
14594         malloc result type.
14595
14596 2008-01-23 Anatoly Sokolov <aesok@post.ru>
14597
14598         * config/avr/avr.c (avr_current_arch): New variable.
14599         (avr_arch_types): Add 'avr31' and 'avr51' entries.
14600         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
14601         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
14602         (avr_override_options): Init 'avr_current_arch'. 
14603         (base_arch_s): Move from here...
14604         * config/avr/avr.h (base_arch_s): ... here. Add new members 
14605         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
14606         'mega' to 'have_jmp_call'.
14607         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
14608         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
14609         macros.
14610         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
14611         architectures.
14612         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
14613         MULTILIB_MATCHES): (Ditto.).
14614
14615 2008-01-23  Richard Guenther  <rguenther@suse.de>
14616
14617         PR middle-end/31529
14618         * cgraphunit.c (cgraph_reset_node): Always mark the node
14619         not reachable if it is not queued already.
14620
14621 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
14622
14623         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
14624         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
14625         (cputype_selected): New static variable.
14626         (bfin_handle_option): Set it if -mcpu is used.
14627         (override_option): Select default set of workarounds if no cpu type
14628         selected on the command line.
14629         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
14630
14631         From  Michael Frysinger  <michael.frysinger@analog.com>
14632         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
14633         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
14634
14635         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
14636         for bf547, bf523, bf524, and bf526.
14637         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
14638         bf526.
14639         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
14640         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
14641         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
14642         __ADSPBF547__ and __ADSPBF54x__ for bf547.
14643         * doc/invoke.texi (Blackfin Options): Document that
14644         -mcpu now accept bf547, bf523, bf524, and bf526.
14645
14646 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14647
14648         PR rtl-optimization/34628
14649         * combine.c (try_combine): Stop and undo after the first combination
14650         if an autoincrement side-effect on the first insn has effectively
14651         been lost.
14652
14653 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
14654
14655         PR target/34529
14656         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
14657         Offset addresses are not valid for Altivec or paired float modes.
14658
14659 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
14660
14661         PR c++/34607
14662         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
14663         if DECL_INITIAL (decl) is error_mark_node.
14664
14665         PR c++/34914
14666         * c-common.c (handle_vector_size_attribute): Only allow
14667         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
14668         the same way as pointer, array etc. types.
14669         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
14670
14671         PR c++/34917
14672         * tree.c (build_type_attribute_qual_variant): Call
14673         build_qualified_type if attributes are equal, but quals are not.
14674
14675 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14676
14677         PR 32102
14678         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
14679         * flags.h (warn_strict_aliasing): Remove.
14680         (warn_strict_overflow): Remove.
14681         * opts.c (warn_strict_aliasing): Remove.
14682         (warn_strict_overflow): Remove.
14683         * c-opts.c (c_common_handle_option): -Wall only sets
14684         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
14685         (c_common_post_options): Give default values to -Wstrict-aliasing
14686         and -Wstrict-overflow if they are uninitialized.
14687         * common.opt (Wstrict-aliasing): Specify Var and Init.
14688         (Wstrict-overflow): Likewise.
14689
14690 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
14691
14692         PR rtl-optimization/26854
14693         PR rtl-optimization/34400
14694         PR rtl-optimization/34884
14695         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
14696         DF_RD->gen.
14697         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
14698         (df_rd_bb_info.expanded_lr_out): Deleted
14699         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
14700         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
14701         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
14702         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
14703         Removed code to allocate, initialize or free expanded_lr_out.
14704         (df_rd_bb_local_compute_process_def): Restructured to make more
14705         understandable.
14706         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
14707         sets if the sets are being trimmed.
14708
14709 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
14710
14711         PR bootstrap/32287
14712         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
14713         (as_vers): Likewise.
14714         * configure: Regenerated.
14715
14716 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14717
14718         PR middle-end/33092
14719         * tree-pass.h (pass_build_alias): New pass.
14720         * tree-ssa-alias.c (gate_build_alias): New.
14721         (pass_build_alias): New.
14722         * passes.c (init_optimization_passes): Add pass_build_alias after
14723         pass_create_structure_vars.
14724
14725 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
14726
14727         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
14728         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
14729         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
14730         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
14731         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
14732         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
14733         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
14734         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
14735         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
14736         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
14737         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
14738         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
14739         * config/s390/s390.md (FP_ALL): New mode iterator.
14740         (_d): New mode attribute.
14741         ("*signbit<mode>2>"): Changed mode of first operand.
14742         ("isinf<mode>2"): Changed mode of first operand.
14743         ("*TDC_insn"): Adaptation for DFP modes.
14744
14745 2008-01-22  Ben Elliston  <bje@au.ibm.com>
14746
14747         * tree.c (check_qualified_type): Improve function description.
14748
14749 2008-01-21  Jason Merrill  <jason@redhat.com>
14750
14751         PR c++/34196
14752         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
14753         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
14754         if it is set.
14755
14756 2008-01-21  DJ Delorie  <dj@redhat.com>
14757
14758         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
14759         return zero.
14760
14761 2008-01-21  Richard Guenther  <rguenther@suse.de>
14762
14763         PR middle-end/34856
14764         * tree-cfg.c (verify_expr): Allow all invariant expressions
14765         instead of just constant class ones as reference argument.
14766         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
14767         like any other constant.
14768         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
14769
14770 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
14771
14772         * regmove.c (fixup_match_1): Update call crossed frequencies.
14773
14774 2008-01-21  Richard Guenther  <rguenther@suse.de>
14775
14776         PR c/34885
14777         * tree-inline.c (setup_one_parameter): Deal with mismatched
14778         types using a VIEW_CONVERT_EXPR.
14779
14780 2008-01-21  Alon Dayan  <alond@il.ibm.com>
14781             Olga Golovanevsky  <olga@il.ibm.com>
14782         
14783         PR tree-optimization/34701
14784         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
14785         when the structure size is not a power of 2.
14786
14787 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
14788
14789         * doc/install.texi: Add doc for --enable-checking=df.
14790         
14791 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14792
14793         PR rtl-optimization/34808
14794         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
14795
14796 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
14797
14798         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
14799         input.
14800
14801 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
14802
14803         PR rtl-optimization/26854
14804         PR rtl-optimization/34400
14805         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
14806         DF_RD->gen.
14807         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
14808         (df_rd_bb_info.expanded_lr_out): New.
14809         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
14810         * loop_iv.c (iv_analysis_loop_init): Ditto.
14811         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
14812         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
14813         Added code to allocate, initialize or free expanded_lr_out.
14814         (df_rd_bb_local_compute_process_def): Restructured to make
14815         more understandable.
14816         (df_rd_confluence_n): Add code to do nothing with fake edges and
14817         code to no apply invalidate_by_call sets if the sets are being trimmed.
14818         (df_lr_local_finalize): Renamed to df_lr_finalize.
14819         (df_live_local_finalize): Renamed to df_live_finalize.
14820
14821 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
14822
14823         PR target/34831
14824         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
14825         deciding whether to use reciprocal instructions.
14826
14827 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
14828
14829         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
14830         dwarf2out_note_section_used if cold_text_section is NULL.
14831
14832 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
14833
14834         PR gcov-profile/34610
14835         * tree-cfg.c (make_edges): Mark both outgoing edges from
14836         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
14837         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
14838         from OMP_FOR and OMP_CONTINUE outgoing edges.
14839
14840         * tree-profile.c (tree_profiling): Return early if
14841         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
14842         at the end.
14843         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
14844         from cfun to child_cfun.
14845         * function.h (struct function): Add after_tree_profile bit.
14846
14847 2008-01-19 Anatoly Sokolov <aesok@post.ru>
14848
14849         * config/avr/avr.S (_exit): Disable interrupt.
14850
14851 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
14852             Steven Bosscher  <stevenb.gcc@gmail.com>
14853
14854         PR rtl-optimization/26854
14855         PR rtl-optimization/34400
14856         * df-problems.c (df_live_scratch): New scratch bitmap.
14857         (df_live_alloc): Allocate df_live_scratch when doing df_live.
14858         (df_live_reset): Clear the proper bitmaps.
14859         (df_live_bb_local_compute): Only process the artificial defs once
14860         since the order is not important.
14861         (df_live_init): Init the df_live sets only with the variables
14862         found live by df_lr.
14863         (df_live_transfer_function): Use the df_lr sets to prune the
14864         df_live sets as they are being computed.  
14865         (df_live_free): Free df_live_scratch.
14866
14867 2008-01-18  Ian Lance Taylor  <iant@google.com>
14868
14869         * common.opt: Add fmerge-debug-strings.
14870         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
14871         flag_merge_debug_strings rather than flag_merge_constants.
14872         * doc/invoke.texi (Option Summary): Mention
14873         -fmerge-debug-strings.
14874         (Debugging Options): Document -fmerge-debug-strings.
14875
14876 2008-01-18  Ian Lance Taylor  <iant@google.com>
14877
14878         PR c++/33407
14879         * tree.h (DECL_IS_OPERATOR_NEW): Define.
14880         (struct tree_function_decl): Add new field operator_new_flag.
14881         * tree-inline.c (expand_call_inline): When inlining a call to
14882         operator new, force the return value to go into a variable, and
14883         set DECL_NO_TBAA_P on that variable.
14884         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
14885
14886 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
14887
14888         PR debug/34484
14889         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
14890         DWARF2_DEBUGGING_INFO.
14891         (dwarf2out_note_section_used): Ditto.  Add prototype.
14892         (have_multiple_function_sections, text_section_used,
14893         cold_text_section_used, *cold_text_sections): Move declarations
14894         before their uses.
14895
14896 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
14897
14898         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
14899         field and add signal_ra.
14900         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
14901         assignments to frame state pc.  Move end of stack check after
14902         MD_FALLBACK_FRAME_STATE_FOR.
14903         (uw_update_context_1): Use frame state signal_regs if set, instead
14904         of checking signal_frame flag.
14905         (uw_update_context): Use frame state signal_ra if set.
14906         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
14907         * config/xtensa/linux-unwind.h: New file.
14908
14909 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
14910
14911         * modulo-sched.c (get_sched_window): Fix comment typo.
14912
14913 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
14914
14915         PR tree-optimization/34648
14916         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
14917
14918 2008-01-17  Anatoly Sokolov <aesok@post.ru>
14919
14920         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
14921         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
14922
14923 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
14924
14925         PR rtl-optimization/34400
14926         * df-core.c (df_worklist_dataflow_overeager,
14927         df_worklist_dataflow_doublequeue): New functions.
14928         (df_worklist_dataflow): Two different worklist solvers.
14929         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
14930         New param.
14931
14932 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14933
14934         PR testsuite/34821
14935         * doc/invoke.texi: Document the dependence on pthread for fopenmp
14936         and ftree-parallelize-loops.
14937
14938 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
14939
14940         PR rtl-optimization/34826
14941         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
14942
14943 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
14944
14945         * global.c (find_reg): Mark the eh regs as used if necessary.
14946         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
14947         * ra.h (struct allocno): no_eh_reg field added.  Changed
14948         no_stack_reg type to bitfield.
14949
14950 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
14951
14952         * tree.c (substitute_in_expr): Add missing 'break'.
14953
14954 2008-01-17  Richard Guenther  <rguenther@suse.de>
14955
14956         PR tree-optimization/34825
14957         * tree-ssa-math-opts.c (is_division_by): Do not recognize
14958         x / x as division to handle.
14959
14960 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14961
14962         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
14963         "-pthread" is specified.
14964         * pa-hpux11.h (LIB_SPEC): Likewise.
14965
14966 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
14967             Peter Bergner  <bergner@vnet.ibm.com>
14968
14969         PR rtl-optimization/33796
14970         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
14971
14972 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14973
14974         PR libgfortran/34699
14975         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
14976         static links.
14977         * pa-hpux10.h (LINK_SPEC): Likewise.
14978         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
14979
14980 2008-01-16  Richard Guenther  <rguenther@suse.de>
14981
14982         PR middle-end/32628
14983         * fold-const.c (fold_convert_const_int_from_int): Do not
14984         set overflow if that occured only because of a sign extension
14985         change when converting from/to a sizetype with the same
14986         precision and signedness.
14987
14988 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
14989
14990         PR debug/34249
14991         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
14992         location address to the correct place.  Update copyright year.
14993
14994 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14995
14996         * lambda-code.c (lambda_transform_legal_p): Handle the case of
14997         no dependences in the dependence_relations vector.
14998
14999 2008-01-16  Jan Hubicka  <jh@suse.cz>
15000
15001         PR rtl-optimization/31396
15002         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
15003         * cfg.c (dump_reg_info): Print it.
15004         * regs.h (struct reg_info_t): add freq_calls_crossed.
15005         (REG_FREQ_CALLS_CROSSED): New macro.
15006         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
15007         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
15008         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
15009         regmove_optimize): Update call crossed frequencies.
15010         * local-alloc.c (struct qty): Add freq_calls_crossed.
15011         (alloc_qty): Copute freq_calls_crossed.
15012         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
15013         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
15014         * ra.h (struct allocno): Add freq_calls_crossed.
15015
15016 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15017
15018         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
15019         libgomp when compiling with ftree-parallelize-loops.
15020         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
15021
15022 2008-01-16  Richard Guenther  <rguenther@suse.de>
15023
15024         PR tree-optimization/34769
15025         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
15026         * tree.c (int_cst_value): Instead make this function more
15027         permissive in what it accepts as valid input.  Document this
15028         function always sign-extends the value.
15029
15030 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
15031             Richard Guenther  <rguenther@suse.de>
15032
15033         PR c/34668
15034         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
15035         (gimple_fold_indirect_ref_rhs): ... this.
15036         (gimple_fold_indirect_ref): New function with foldings
15037         that preserve lvalueness.
15038         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
15039         * tree-flow.h (gimple_fold_indirect_ref): Declare.
15040         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
15041         to fold an INDIRECT_REF, fall back to the old use of
15042         fold_indirect_ref_1.
15043
15044 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15045
15046         * tree-data-ref.c (subscript_dependence_tester_1): Call 
15047         free_conflict_function.
15048         (compute_self_dependence): Same.
15049
15050 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15051
15052         PR debug/34249
15053         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
15054         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
15055         function global.
15056         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
15057         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
15058         for DWARF2_UNWIND_INFO targets.
15059
15060 2008-01-16  Richard Guenther  <rguenther@suse.de>
15061
15062         PR c/34768
15063         * c-typeck.c (common_pointer_type): Do not merge inconsistent
15064         type qualifiers for function types.
15065
15066 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
15067
15068         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
15069         loop_iterator li from previous commit.
15070
15071 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15072
15073         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
15074
15075 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15076
15077         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
15078         (parallelize_loops): Don't parallelize irreducible components.
15079
15080 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15081
15082         PR c++/24924
15083         * c-opts (c_common_post_options): Do not enable CPP
15084         flag_pedantic_errors by default.
15085         
15086 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
15087
15088         PR rtl-optimization/31944
15089         * cse.c (remove_pseudo_from_table): New function.
15090         (merge_equiv_classes): Use above function to remove pseudo-registers.
15091         (invalidate): Likewise.
15092
15093 2008-01-13  Richard Guenther  <rguenther@suse.de>
15094
15095         PR middle-end/34601
15096         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
15097         instead of TYPE_MODE to deal with calls from expand_one_error_var.
15098
15099 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
15100
15101         * gcse.c (cprop_jump): Call validate_unshare_change instead of
15102         validate_change to unshare the source of the PC set.
15103
15104 2008-01-12  Jan Hubicka  <jh@suse.cz>
15105
15106         PR middle-end/32135
15107         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
15108         references above array bounds.  This might trigger bounds checks for
15109         pointers to arrays.
15110
15111 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
15112
15113         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
15114         new_replaceable_dependencies.
15115
15116 2008-01-12  Doug Kwan  <dougkwan@google.com>
15117
15118         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
15119         instead of OPT_Wreturn_type in warning due to ignored return type
15120         qualifiers.
15121         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
15122         options included in -Wextra.
15123         * c.opt: New option -Wignored_qualifiers.
15124         * doc/invoke.texi (Warning Options, -Wextra): Add new option
15125         -Wignore_qualifiers.
15126         (-Wignored-qualifiers): Document.
15127         (-Wreturn-type): Remove description of functionality now handled
15128         by -Wignored-qualifiers.
15129
15130 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
15131
15132         PR ada/33788
15133         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
15134         NOP_EXPR if it is between integral types with the same precision.
15135
15136 2008-01-12  Jan Hubicka  <jh@suse.cz>
15137
15138         PR other/28023
15139         * invoke.texi (max-inline-recursive-depth): Fix default value.
15140
15141 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
15142
15143         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
15144         correct type.
15145
15146 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
15147         
15148         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
15149         
15150 2008-01-11  James E. Wilson  <wilson@specifix.com>
15151
15152         PR target/26015
15153         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
15154
15155 2008-01-11  Anatoly Sokolov <aesok@post.ru>
15156
15157         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
15158         save/restore frame pointer register and don't use 'call-prologues' 
15159         optimization in function with "OS_task" attribute.
15160
15161 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
15162
15163         PR middle-end/31309
15164         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
15165         when copying to memory.
15166
15167 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
15168
15169         PR rtl-optimization/30905
15170         * cfgcleanup.c: Include dce.h
15171         (crossjumps_occured): New global variable.
15172         (try_crossjump_bb): Exit loop after finding a fallthru edge.
15173         If something changed, set crossjumps_occured to true.
15174         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
15175         Don't add/remove fake edges to exit here...
15176         (cleanup_cfg): ...but do it here, when crossjumping.
15177         Run a fast DCE when successful crossjumps occured in the latest
15178         iteration of try_optimize_cfg.
15179
15180 2008-01-11  Richard Guenther  <rguenther@suse.de>
15181
15182         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
15183         (struct vn_unary_op_s): Likewise.
15184         (vn_reference_insert): Free old reference on hash collision.
15185
15186 2008-01-10  Raksit Ashok  <raksit@google.com>
15187
15188         PR rtl-optimization/27971
15189         * combine.c (find_split_point): Split PLUS expressions which are
15190         inside a MEM rtx, and whose first operand is complex.
15191
15192 2008-01-10  DJ Delorie  <dj@redhat.com>
15193
15194         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
15195         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
15196         (m32c_hard_regno_ok): Call the underlying function.
15197
15198 2008-01-10  Richard Guenther  <rguenther@suse.de>
15199
15200         PR middle-end/34683
15201         * tree-cfg.c (tree_merge_blocks): Do not go through the
15202         full-blown folding and stmt updating path if we just deal
15203         with virtual operands.
15204         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
15205         test for abnormal SSA_NAMEs.
15206
15207 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
15208
15209         PR middle-end/34641
15210         * reload.c (push_reload): Add assertions.  All constants from
15211         reg_equiv_constant should have been used for replacing the respective
15212         pseudo earlier.
15213         (find_reloads_address): Invoke find_reloads_address_part for
15214         constant taken from the reg_equiv_constant array.
15215
15216 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
15217
15218         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
15219         field (valnum) the first in the struct.  Replace bools with
15220         unit bit fields.
15221
15222 2008-01-10  Richard Guenther  <rguenther@suse.de>
15223
15224         PR tree-optimization/34651
15225         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
15226         types and ordering for masking and converting.
15227
15228 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
15229
15230         PR tree-optimization/34017
15231         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
15232         also for PHI_NODE expressions.
15233
15234 2008-01-09  Jan Hubicka  <jh@suse.cz>
15235
15236         PR tree-optimization/34708
15237         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
15238         based on number of case labels.
15239         (init_inline_once): Remove switch_cost.
15240         * tree-inline.h (eni_weights_d): Remove switch_cost.
15241
15242 2008-01-09  Richard Guenther  <rguenther@suse.de>
15243         Andrew Pinski  <andrew_pinski@playstation.sony.com>
15244
15245         PR middle-end/30132
15246         * gimplify.c (gimplify_cond_expr): Do not create an addressable
15247         temporary if an rvalue is ok or an lvalue is not required.
15248
15249 2008-01-09  Richard Guenther  <rguenther@suse.de>
15250
15251         PR middle-end/34458
15252         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
15253         adjust return type.
15254
15255 2008-01-09  Richard Guenther  <rguenther@suse.de>
15256
15257         PR middle-end/34679
15258         * tree.c (host_integerp): Check for sizetype only if the
15259         type is an integer type.
15260
15261 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
15262
15263         PR debug/26364
15264         * opts.c (decode_options): Disable inlining of functions called
15265         once if not in unit-at-a-time mode.
15266
15267 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
15268
15269         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
15270
15271 2008-01-08  Richard Guenther  <rguenther@suse.de>
15272
15273         PR middle-end/31863
15274         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
15275         out early if the result will be unused.
15276
15277 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
15278
15279         PR target/34709
15280         Revert:
15281
15282         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15283         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
15284         for TARGET_RECIP.       
15285         
15286 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
15287         
15288         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
15289         for vectorization tuned.
15290         
15291 2008-01-08  Richard Guenther  <rguenther@suse.de>
15292
15293         PR tree-optimization/34683
15294         * tree-ssa-operands.c (operand_build_cmp): Export.
15295         * tree-ssa-operands.h (operand_build_cmp): Declare.
15296         * tree-vn.c (vuses_compare): Remove.
15297         (sort_vuses): Use operand_build_cmp.
15298         (sort_vuses_heap): Likewise.
15299         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
15300         to re-use old VEC if available.  Do not sort already sorted VUSEs.
15301         (vdefs_to_vec): Do not sort already sorted VDEFs.
15302
15303 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
15304
15305         PR middle-end/34694
15306         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
15307
15308 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
15309
15310         PR target/34702
15311         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
15312         limitations of reciprocal sequences on x86 targets.
15313
15314 2008-01-08  Richard Guenther  <rguenther@suse.de>
15315
15316         PR tree-optimization/34683
15317         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
15318
15319 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
15320
15321         PR target/34622
15322         * config/darwin.c (darwin_mergeable_string_section): Don't use
15323         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
15324
15325 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
15326
15327         PR target/34682
15328         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
15329         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
15330         predicates of op0 and op1 to register_operand.
15331         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
15332         expander using X87MODEF mode iterator.  Change predicates of
15333         op0 and op1 to register_operand.
15334         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
15335         corresponding patterns and macroize using MODEF macro.  Change
15336         predicates of op0 and op1 to register_operand and remove
15337         "m" constraint. Disparage "r" alternative with "!".
15338         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
15339         macroize using X87MODEF macro.  Change predicates of op0 and op1
15340         to register_operand and remove "m" constraint.  Disparage "r"
15341         alternative with "!".
15342         (absneg splitter with memory operands): Remove.
15343         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
15344         patterns and macroize using X87MODEF mode iterator.
15345         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
15346         Change predicate of op1 to register_operand.
15347         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
15348         for memory operands.
15349
15350 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
15351
15352         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
15353
15354 2008-01-07  Richard Guenther  <rguenther@suse.de>
15355
15356         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
15357         fields.
15358
15359 2008-01-07  Richard Guenther  <rguenther@suse.de>
15360
15361         PR tree-optimization/34683
15362         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
15363         VOPs of the needed size to save memory.  Use VEC_quick_push
15364         to save compile-time.
15365         (vdefs_to_vec): Likewise.
15366
15367 2008-01-07  Sa Liu  <saliu@de.ibm.com>
15368
15369         * config/spu/spu.md (divdf3): Genetate inline code for double
15370         division.  The implementation doesn't handle INF or NAN, therefore it
15371         only applies when -ffinite-math-only is given.
15372
15373 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
15374
15375         PR libstdc++/34680
15376         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
15377         * doc/cpp.texi ([Common Predefined Macros]): Document.
15378
15379 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
15380
15381         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
15382         order to use commutative addition instead of subtraction.
15383
15384 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15385             Mircea Namolaru  <namolaru@il.ibm.com>
15386             Vladimir Yanovsky  <yanov@il.ibm.com>
15387             Revital Eres  <eres@il.ibm.com>
15388
15389         PR tree-optimization/34263
15390         * tree-outof-ssa.c (process_single_block_loop_latch,
15391         contains_tree_r): New functions.
15392         (analyze_edges_for_bb): Call process_single_block_loop_latch
15393         function to empty single-basic-block latch block if possible.
15394
15395 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15396
15397         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
15398         for TARGET_RECIP.
15399         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
15400
15401 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
15402
15403         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
15404
15405 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
15406
15407         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
15408
15409 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
15410
15411         PR tree-optimization/34618
15412         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
15413         flag from T.
15414
15415 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
15416
15417         PR target/34673
15418         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
15419         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
15420         Update copyright year.
15421
15422         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
15423         Update copyright year.
15424         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
15425         using NR fixup.
15426
15427 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
15428
15429         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
15430         edge does not point to current bb before changing need_assert.
15431
15432 2008-01-04  Richard Guenther  <rguenther@suse.de>
15433
15434         PR middle-end/34029
15435         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
15436         for verifying purposes if they are is_gimple_min_invariant.
15437
15438 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
15439
15440         PR tree-optimization/34448
15441         PR tree-optimization/34465
15442         * gimplify.c (gimplify_init_constructor): Add new parameter
15443         notify_temp_creation.  Use it.
15444         (gimplify_modify_expr_rhs): Take volatiles into account when
15445         optimizing constructors.
15446         Do not optimize constructors if gimplify_init_constructor will dump to
15447         memory.
15448         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
15449         * gcc.c-torture/compile/pr34448.c: New.
15450
15451 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
15452
15453         PR gcov-profile/34609
15454         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
15455         return_slot if result is TREE_ADDRESSABLE.
15456
15457 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
15458
15459         * config/mips/mips.md (sqrt_condition): Tweak comment.
15460         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
15461
15462 2008-01-03  Tom Tromey  <tromey@redhat.com>
15463
15464         PR c/34457
15465         * c-common.c (c_type_hash): Handle VLAs.
15466
15467 2008-01-03  Jan Hubicka  <jh@suse.cz>
15468
15469         PR tree-optimization/31081
15470         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
15471         0 when inlining and not inlining to first basic block.
15472         (remap_decl): When var is initialized to 0, don't set default_def.
15473         (expand_call_inline): Set entry_bb.
15474         * tree-inline.h (copy_body_data): Add entry_bb.
15475
15476 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
15477
15478         PR c++/34619
15479         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
15480         before returning.
15481
15482         PR tree-optimization/29484
15483         * tree-inline.c (inline_forbidden_p_2): New function.
15484         (inline_forbidden_p): Disallow inlining if some static var
15485         has an address of a local LABEL_DECL in its initializer.
15486         * doc/extend.texi (Labels as Values): Document &&foo behaviour
15487         vs. inlining.
15488
15489 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
15490
15491         PR tree-optimization/34635
15492         * tree-data-ref.c (add_other_self_distances): Make sure that the
15493         evolution step is constant.
15494
15495 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
15496
15497         PR middle-end/34608
15498         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
15499
15500 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
15501
15502         * tree-sra.c (scalarize_init): Insert the generate_element_init
15503         statements after the generate_element_zero statements.
15504
15505 2008-01-02  Richard Guenther  <rguenther@suse.de>
15506
15507         PR middle-end/34093
15508         PR middle-end/31976
15509         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
15510         for very large number of operands instead of ICEing.
15511
15512 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
15513
15514         PR target/34013
15515         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
15516         while stack probing.
15517
15518 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
15519
15520         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
15521         in C++0x mode.
15522
15523 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
15524
15525         PR libmudflap/26442
15526         * tree-mudflap.c (mx_register_decls): Guard warning by
15527         !DECL_ARTIFICIAL check.
15528
15529 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
15530
15531         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
15532         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
15533         sse5_perm<mode>): Fix constraints.