OSDN Git Service

53e1131037d934f81154a6e5630999e2edc6eb83
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-17  Martin Jambor  <mjambor@suse.cz>
2
3         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
4         that nodes are relevant by examining the node->analyzed flag.
5         (ipcp_init_stage): Check which nodes are relevant, assert that the
6         relevant ones are also required.
7         (ipcp_propagate_stage): Check on the side arrays are properly
8         allocated.
9         (ipcp_print_all_jump_functions): Make sure not to touch any node
10         that is not analyzed or an edge that does not have a corresponding
11         entry in the on-the-side vectors.
12         (ipcp_function_scale_print): Likewise.
13         (ipcp_update_callgraph): Check that the node is relevant.
14         (ipcp_insert_stage): Check that the node is relevant.  Check there is
15         an info for every node and edge.
16         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
17         (ipa_print_all_tree_maps): Likewise and a new variable info.
18         (ipa_print_all_params_modified): Likewise.
19         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
20
21 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
22
23         PR target/25343
24         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
25
26 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
27
28         PR rtl-optimization/36753
29         * fwprop.c (use_killed_between): Don't shortcut
30         single-definition global registers.
31
32 2008-07-16  Jan Hubicka  <jh@suse.cz>
33
34         * cgraph.h (varpool_empty_needed_queue): Declare.
35         * cgraphunit.c (output_in_order): Mark all variables as needed;
36         empty the queue.
37         * varpool.c (varpool_assemble_node): Update debug queue.
38         (varpool_assemble_pending_decls): Don't do it here.
39         (varpool_empty_needed_queue):  New function.
40
41 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
42
43         * recog.c (peephole2_optimize): Fix formatting.
44
45 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
46
47         * c-pch.c (get_ident): Avoid C++ keywords.
48         * combine-stack-adj.c (single_set_for_csa): Likewise.
49         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
50         output_asm_insn): Likewise.
51         * reload.c (push_secondary_reload, find_reusable_reload,
52         push_reload, combine_reloads, find_reloads,
53         debug_reload_to_stream): Likewise.
54         * reload.h (struct reload): Likewise.
55         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
56         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
57         emit_output_reload_insns): Likewise.
58         * targhooks.c (default_secondary_reload): Likewise.
59         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
60
61 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
62
63         * recog.c (validate_change_1, validate_change,
64         validate_unshare_change, validate_replace_rtx_1, struct
65         funny_match, constrain_operands, peephole2_optimize): Avoid C++
66         keywords.
67         * reload.c (push_secondary_reload, secondary_reload_class,
68         scratch_reload_class, find_valid_class, find_reusable_reload,
69         push_reload, find_dummy_reload, find_reloads_address_1,
70         find_reloads_address_part, find_equiv_reg): Likewise.
71         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
72         choose_reload_regs): Likewise.
73         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
74         Likewise.
75         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
76         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
77         * sched-rgn.c (concat_INSN_LIST): Likewise.
78         * stor-layout.c (mode_for_size, mode_for_size_tree,
79         smallest_mode_for_size): Likewise.
80
81 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
82
83         * cfg.c (dump_reg_info): Avoid C++ keywords.
84         * dwarf2asm.c (dw2_force_const_mem,
85         dw2_asm_output_encoded_addr_rtx): Likewise.
86         * except.c (gen_eh_region, add_action_record, output_ttype):
87         Likewise.
88         * expmed.c (expand_shift): Likewise.
89         * global.c (find_reg): Likewise.
90         * graph.c (draw_edge): Likewise.
91         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
92         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
93         widen_clz, widen_bswap, expand_parity, expand_unop,
94         emit_cmp_and_jump_insn_1): Likewise.
95         * postreload.c (reload_cse_simplify_operands): Likewise.
96         * ra.h (add_neighbor): Likewise.
97         * reg-stack.c (remove_regno_note, change_stack): Likewise.
98         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
99         record_reg_classes, copy_cost, record_address_regs,
100         invalid_mode_change_p): Likewise.
101         * regrename.c (regrename_optimize, scan_rtx_reg,
102         dump_def_use_chain, find_oldest_value_reg,
103         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
104
105 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
106
107         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
108         MASK_POWERPC64 for power4 in previous commit.
109
110 2008-07-16  Olivier Hainque  <hainque@adacore.com>
111
112         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
113         instead of bare conversion to cast const-ness away.
114
115 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
116
117         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
118         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
119         * config/xtensa/xtensa.c (xtensa_function_value): New function.
120         (TARGET_FUNCTION_VALUE): Define.
121
122 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
123
124         * config/rs6000/rs6000.c (processor_target_table): Add
125         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
126
127 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
128
129         PR target/36827
130         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
131         (m32c_legitimate_address_p): Handle "++rii" addresses created by
132         m32c_legitimize_reload_address.
133
134 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
135
136        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
137        DECL_IN_SYSTEM_HEADER in sync.
138
139 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
140
141         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
142         * tree-ssa-pre.c (pre_expr_eq): Ditto
143         (get_constant_for_value_id): Take a type as an argument.
144         (fully_constant_expression): Pass in type.
145         (find_or_generate_expression): Short circuit constant case.
146         (create_expression_by_pieces): Remove special casing of
147         pointer_plus.
148         (do_regular_insertion): Short circuit constant case.
149         (do_partial_partial_insertion): Ditto.
150
151 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
152
153         PR target/36782
154         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
155
156 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
157         
158         * config/xtensa/libgcc-xtensa.ver: New file.
159         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
160         
161 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
162
163         * df-problems.c (df_set_note): Avoid C++ keywords.
164         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
165         * dse.c (record_store, remove_useless_values): Likewise.
166         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
167         gen_reg_rtx_offset, operand_subword, change_address_1,
168         change_address, adjust_address_1, offset_address,
169         widen_memory_access, emit_copy_of_insn_after): Likewise.
170         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
171         * fwprop.c (should_replace_address, propagate_rtx_1,
172         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
173         Likewise.
174         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
175         gcse_emit_move_after, update_ld_motion_stores): Likewise.
176         * lcm.c (compute_insert_delete, pre_edge_lcm,
177         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
178         * lower-subreg.c (resolve_reg_notes): Likewise.
179         * mode-switching.c (optimize_mode_switching): Likewise.
180
181 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
182
183         * bt-load.c (add_btr_def, migrate_btr_def,
184         branch_target_load_optimize): Avoid C++ keywords.
185         * caller-save.c (insert_restore, insert_save, insert_one_insn):
186         Likewise.
187         * combine.c (subst, simplify_set, make_extraction,
188         make_compound_operation, known_cond, simplify_shift_const_1):
189         Likewise.
190         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
191         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1):
192         Likewise.
193
194 2008-07-15  Richard Guenther  <rguenther@suse.de>
195
196         PR middle-end/36369
197         * c-common.c (strict_aliasing_warning): Do not warn for
198         TYPE_REF_CAN_ALIAS_ALL pointers.
199         (c_common_get_alias_set): may_alias types are not special.
200         * tree.c (build_pointer_type_for_mode): Look up the may_alias
201         attribute and set can_ref_all accordingly.
202         (build_reference_type_for_mode): Likewise.
203         * doc/extend.texi (may_alias): Clarify.
204
205 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
206
207         PR target/36780
208         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
209         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
210
211 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
212
213         PR target/31568
214         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
215         gcc_assert, instead call output_operand_lossage.
216
217 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
218
219         * builtins.c (std_canonical_va_list): Treat structure based
220         va_list types.
221
222 2008-07-15  Ben Elliston  <bje@au.ibm.com>
223
224         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
225
226 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
227
228         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
229         is set.
230
231 2008-07-14  Jan Hubicka  <jh@suse.cz>
232
233         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
234         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
235         fix predicates and constraints.
236         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
237         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
238
239 2008-07-14  Doug Kwan  <dougkwan@google.com>
240
241         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
242         additional option file arm/eabi.opt.
243         * config/arm/eabi.h (File): New configuration file for EABI targets.
244         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
245         SUBSUBTARGET_EXTRA_SPECS.
246         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
247         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
248         from STARTFILE_SPEC so that it can be referenced in an override.
249         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
250         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
251         can be referenced in an override.
252         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
253         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
254         so that it can be referenced in an override.
255         (LINK_SPEC): Use BPABI_LINK_SPEC.
256         * config/arm/eabi.opt (File): New.
257
258 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
259
260         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
261         (FIXED_VALUE_H): New variable.
262         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
263         input.h, fixed-value.h.
264         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
265         (BASIC_BLOCK_H): Use $(BITMAP_H).
266         (FUNCTION_H): Add varray.h.
267         (IPA_REFERENCE_H): Use $(BITMAP_H).
268         (CGRAPH_H): Add $(BASIC_BLOCK_H).
269         (DF_H): Use $(BITMAP_H).
270         (GGC_H): Add statistics.h.
271         (INSN_ADDR_H): New.
272         (INSN_ATTR_H): Use it.
273         (SYSTEM_H): Add safe-ctype.h, filenames.h.
274         (INPUT_H): New.
275         (SYMTAB_H): Add $(OBSTACK_H).
276         (CPP_INTERNAL_H): New.
277         (TREE_DUMP_H): Add tree-pass.h.
278         (TREE_FLOW_H): Use $(BITMAP_H)
279         (PRETTY_PRINT_H): Use $(INPUT_H).
280         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
281         (GSTAB_H): New.
282         (BITMAP_H): New.
283         (many object files): Fix lots of header dependencies throughout.
284
285 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
286
287         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
288         New macros.
289         (s-gtyp-input): Use them to write tmp-gi.list.
290         (echo_to_gi.list): Remove.
291
292 2008-07-14  Richard Guenther  <rguenther@suse.de>
293
294         * tree-ssa-sccvn.c (pre_info): Remove.
295         (switch_to_PRE_table): Likewise.
296         (free_scc_vn): Do not clear SSA_NAME_VALUE.
297         Do not free pre_info.
298         (set_hashtable_value_ids): Do not create value-ids for the
299         optimistic tables.
300         (run_scc_vn): Remove double test.  Remove bogus special-case
301         in value-number printing.
302         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
303         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
304         SSA_NAME_VALUE.
305         * tree-flow-inline.h (get_value_handle): Remove.
306         * tree-flow.h (get_value_handle): Remove.
307
308 2008-07-14  Martin Jambor  <mjambor@suse.cz>
309
310         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
311         in which we generate arithmetics is not a subrange.
312
313 2008-07-14  Martin Jambor  <mjambor@suse.cz>
314
315         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
316
317 2008-07-14  Richard Guenther  <rguenther@suse.de>
318
319         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call
320         convert.
321
322 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
323
324         PR target/36745
325         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
326         reload for symbol refs moved to r0 with -fPIC.
327         (legitimize_pic_address): Use the target register as temporary
328         reg if possible.
329         (emit_symbolic_move): Adjust comment.
330         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
331         New expanders.
332
333 2008-07-14  Ben Elliston  <bje@au.ibm.com>
334
335         * c-common.h (C_CPP_HASHNODE): New macro.
336         * coretypes.h (struct cpp_token): Forward declare.
337         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
338         the context-sensitive keyword method.
339         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
340         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
341         expand_bool_pixel): New.
342         (altivec_categorize_keyword): New function.
343         (init_vector_keywords): New function.
344         (rs6000_macro_to_expand): Likewise.
345         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
346         compiling an ISO C dialect.
347
348 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
349
350         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert
351         calls.
352         (create_expression_by_pieces): Fix typo.
353         (do_regular_insertion): Use debug counter here too.
354
355 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
356
357         PR target/35492.
358         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
359         CONST_OK_FOR_LETTER_P.  All port-local users changed.
360         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
361         implement Kp matching power-of-two.
362         (CONSTRAINT_LEN): Define to match.
363         * config/cris/cris.md: Replace all use of constraint K with Kc.
364         ("*btst*): Use Kp for operand 0 of last alternative.
365
366 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
367
368         PR testsuite/36440
369         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
370         and quad formats.
371
372 2008-07-13  Jan Hubicka  <jh@suse.cz>
373
374         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
375         to be mangled too.
376
377 2008-07-13  Richard Guenther  <rguenther@suse.de>
378
379         PR middle-end/36811
380         * langhooks.c (lhd_print_error_function): Deal with recursive
381         BLOCK trees.
382
383 2008-07-12  Jan Hubicka  <jh@suse.cz>
384
385         * cgraph.c (assembler_name_hash): New static var.
386         (hash_node_by_assembler_name, eq_assembler_name): New.
387         (cgraph_node_for_asm): Use hashtable.
388         (cgraph_remove_node): Maintain hashtable.
389         (change_decl_assembler_name): Sanity check that names are not changing
390         after aliasing was processed.
391         * cgraph.h (varpoon_node): Add next GGC marker.
392         * tree.c (decl_assembler_name_equal): Constify.
393         (decl_assembler_name_hash): New.
394         * tree.h (decl_assembler_name_equal): Constify.
395         (decl_assembler_name_hash): Update.
396
397 2008-07-12  David Daney  <ddaney@avtrex.com>
398
399         * config/mips/driver-native.c (host_detect_local_cpu): Handle
400         sb1 and r5000 cpus.
401
402 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
403
404         * doc/md.texi: Document the MIPS "v" constraint.
405         * config/mips/mips.h (reg_class): Revert last change.
406         (REG_CLASS_NAMES): Likewise.
407         (REG_CLASS_CONTENTS): Likewise.
408         * config/mips/mips.c (mips_regno_to_class): Likewise.
409         * config/mips/constraints.md (v): Likewise, but add documentation.
410         Add a comment to say that this constraint should not be used in
411         gcc code.
412
413 2008-07-11  DJ Delorie  <dj@redhat.com>
414
415         * config/h8300/h8300.md (length): Fix branch offset limit.
416
417 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
418
419         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
420         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
421         (avr_hard_regno_scratch_ok): New function.
422         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
423         * config/avr/avr.md (all peepholes that request a scratch register):
424         Remove avr_peep2_scratch_safe use.
425
426 2008-07-11  Tom Tromey  <tromey@redhat.com>
427             Ian Lance Taylor  <iant@google.com>
428
429         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
430         (struct c_common_resword): Define.
431         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
432         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
433         (c_common_reswords, num_c_common_reswords): Declare.
434         * c-common.c (c_common_reswords): New global const array.
435         (num_c_common_reswords): New const int.
436         * c-parser.c (struct resword, reswords): Don't define.
437         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
438         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
439         than reswords.  If warning about C++ keywords, give them a special
440         RID code.
441         (c_lex_one_token): Warn about C++ keywords.  Call
442         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
443         (c_parser_external_declaration): Look for RID_xxx rather than
444         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
445         (c_parser_statement_after_labels): Likewise.
446         (c_parser_objc_class_instance_variables): Likewise.
447         (c_parser_objc_class_declaration): Likewise.
448         (c_parser_objc_try_catch_statement): Likewise.
449         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
450         (declspecs_add_type): Likewise.
451
452 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
453
454         * ggc-page.c (alloc_page):
455         Substituting xmalloc, xcalloc with
456         XNEWVEC and XCNEWVAR macros which add the
457         needed casts.
458
459 2008-07-11  Richard Guenther  <rguenther@suse.de>
460
461         PR tree-optimization/36765
462         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
463         aliases from HEAP vars to SMTs.
464
465 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
466
467         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
468         * configure.ac (loose_warn): Move -Wc++-compat from here...
469         (strict_warn): ...to here.
470         * configure: Regenerate.
471
472 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
473
474         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
475         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
476         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
477         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
478         excluding more specific h8300-*-* and sh-*-* targets.
479
480 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
481
482         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert
483         calls.
484         (eliminate): Ditto.
485         (execute_pre): Call loop_optimizer_finalize in early exit.
486
487 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
488
489         PR middle-end/36790
490         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
491         uids in the bitmap, not just VAR_DECL uids.
492
493         PR rtl-optimization/36419
494         * combine-stack-adj.c (adjust_frame_related_expr): New function.
495         (combine_stack_adjustments_for_block): Call it if needed.  Delete
496         correct insn.
497         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
498         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
499         prologue sp adjustment.
500
501 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
502
503         PR other/28322
504         * opts.c (print_ignored_options): Report postponed diagnostics for
505         unknown -Wno-* options as warnings, not errors.
506         (postpone_unknown_option_error): Renamed to...
507         (postpone_unknown_option_warning): ... this.
508
509 2008-07-09  Doug Kwan  <dougkwan@google.com>
510
511         Revert:
512         2008-07-08  Doug Kwan  <dougkwan@google.com>
513
514         * config/arm/arm.opt (mandroid): New option.
515         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
516         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
517         (CC1_SPEC): Same.
518         (CC1PLUS_SPEC): Same.
519         (LIB_SPEC): Same.
520         (STARTFILE_SPEC): Same.
521         (ENDFILE_SPEC): Same.
522         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
523         used.
524
525 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
526
527         PR target/35802
528         * config/mips/mips.h (reg_class): Remove V1_REG.
529         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
530         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
531         instead of V1_REGS.
532         (mips_get_tp): New function.
533         (mips_legitimize_tls_address): Use it.
534         * config/mips/constraints.md (v): Delete.
535         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
536         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
537         After reload, split into a move and ...
538         (*tls_get_tp_<mode>_split): ...this new instruction.
539
540 2008-07-09  David Daney  <ddaney@avtrex.com>
541
542         * config/mips/driver-native.c: Include coretypes.h and tm.h.
543
544 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
545
546         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
547         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
548         Add c argument.
549         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
550         htab_delete should be called.  Don't free c.
551         (lookup_tmp_var): Create temp_htab lazily.
552         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
553         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
554         callers.
555         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
556         lower_omp_ordered, lower_omp_critical, lower_omp_for,
557         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
558         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
559         * tree-sra.c (generate_element_init): Likewise.
560         * tree-mudflap.c (execute_mudflap_function_ops,
561         execute_mudflap_function_decls): Likewise.
562         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
563         * tree-gimple.h (struct gimplify_ctx): New type.
564         (push_gimplify_context): Adjust prototype.
565
566 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
567
568         * tree-ssa-pre.c (phi_translate_1): Update placement of
569         add_to_value calls.
570
571 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
572
573         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
574         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
575         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
576         * targhooks.c (default_hard_regno_scratch_ok): New function.
577         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
578         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
579         * recog.c:  Include "target.h".
580         (peep2_find_free_register): Add check for global regs. Add target
581         specific check.
582         * Makefile.in (recog.o): Depend on target.h.
583
584 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
585
586         * config/sh/sh.c (sh_canonical_va_list_type): New.
587         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
588
589 2008-07-09  Raksit Ashok <raksit@google.com>
590
591         * doc/invoke.texi (Option Summary): Mention new option
592         -Wdisallowed-function-list=...
593         (Warning Options): Document -Wdisallowed-function-list=...
594         * common.opt (Wdisallowed-function-list=): New flag.
595         * flags.h (warn_disallowed_functions): External definition of new
596         boolean warning flag.
597         (warn_if_disallowed_function_p): Declare new function.
598         * opts.c (warning_disallowed_functions): New static variable.
599         (warn_disallowed_functions): New boolean warning flag.
600         (warn_if_disallowed_function_p): New function.
601         (add_comma_separated_to_vector): Rename
602         add_instrument_functions_exclude_list to this.
603         (common_handle_option): Handle new option. Rename calls to
604         add_instrument_functions_exclude_list into calls to
605         add_comma_separated_to_vector.
606         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
607         based on flag warn_disallowed_functions.
608
609 2008-07-09  Christian Bruel  <christian.bruel@st.com>
610
611         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
612          instead of get_attr_length.
613
614 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
615
616         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
617         keywords.
618         * genemit.c (gen_insn): Likewise.
619         * gengtype.c (note_def_vec): Likewise.
620         * gengtype.h (note_def_vec): Likewise.
621         * genoutput.c (struct data, output_insn_data, process_template,
622         gen_expand, gen_split, note_constraint): Likewise.
623         * genrecog.c (new_decision, add_to_sequence, factor_tests,
624         make_insn_sequence): Likewise.
625         * gensupport.c (record_insn_name): Likewise.
626
627 2008-07-08  Doug Kwan  <dougkwan@google.com>
628
629         * config/arm/arm.opt (mandroid): New option.
630         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
631         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
632         (CC1_SPEC): Same.
633         (CC1PLUS_SPEC): Same.
634         (LIB_SPEC): Same.
635         (STARTFILE_SPEC): Same.
636         (ENDFILE_SPEC): Same.
637         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
638         used.
639
640 2008-07-08  Raksit Ashok  <raksit@google.com>
641
642         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
643         (set_storage_via_setmem): Fix expected_align parameter.
644         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
645         missing from the list.
646         * doc/md.texi (movmem): Explicitly state that expected alignment is
647         to be expressed in bytes.
648         (setmem): Explicitly state that expected alignment is to be expressed
649         in bytes.
650
651 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
652
653         * reload.c (find_reloads_subreg_address): Do not require validity
654         of address in original mode before reloading address.
655
656 2008-07-07  Tianwei Sheng  <tianweis@google.com>
657
658         * df-core.c (df_remove_problem): Adjust the access to avoid out of
659         bounds array access.
660
661 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
662
663         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P
664         dst.
665
666 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
667         
668         Fix PR tree-optimization/23455
669         Fix PR tree-optimization/35286
670         Fix PR tree-optimization/35287
671         * Makefile.in (OBJS-common): Remove tree-vn.o.
672         tree-vn.o: Remove.
673         * dbgcnt.def: Add treepre_insert debug counter.
674         * gcc/tree-flow.h (add_to_value): Updated for other changes.
675         (debug_value_expressions): Ditto.
676         (print_value_expressions): Ditto.
677         * tree-pretty-print.c (dump_generic_node): Updated for
678         VALUE_HANDLE removal.
679         * tree-ssa-dom.c (record_equality): Ditto.
680         (cprop_operand): Ditto.
681         (lookup_avail_expr): Ditto.
682         * tree-ssa-threadedge.c
683         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
684         (simplify_control_stmt_condition): Ditto.
685         * tree.c (tree_code_size): Ditto.
686         (tree_node_structure): Ditto.
687         (iterative_hash_expr): Ditto.
688         * tree.def: Ditto.
689         * tree.h (VALUE_HANDLE_ID): Ditto.
690         (VALUE_HANDLE_EXPR_SET): Ditto.
691         (struct tree_value_handle): Ditto.
692         (union tree_node): Ditto.
693         * treestruct.def: Ditto.
694         * tree-vn.c: Removed.
695         * tree-ssa-pre.c: Rewritten entirely.
696         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
697         (constant_value_ids): Ditto.
698         (vn_nary_op_t): Moved to header.
699         (vn_phi_t): Ditto.
700         (vn_reference_op_t): Ditto
701         (vn_reference_t): Ditto.
702         (next_value_id): New variable.
703         (VN_INFO): Add an assert.
704         (vn_constant_eq): New function.
705         (vn_constant_hash): Ditto.
706         (get_or_alloc_constant_value_id): Ditto.
707         (value_id_constant_p): Ditto.
708         (vn_reference_compute_hash): De-staticify.
709         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
710         Disable some code with a FIXME.
711         Remove VALUE_HANDLE use.
712         (valueize_refs): Update opcode if it changes from ssa name to
713         constant.
714         (vn_reference_lookup_1): Add new argument.
715         (vn_reference_lookup):  Ditto.
716         (vn_reference_lookup_pieces): New function.
717         (vn_reference_insert): Add return type. Modify to deal with value
718         ids.
719         (vn_reference_insert_pieces):  New function.
720         (vn_nary_op_compute_hash): De-staticify.
721         (vn_nary_op_eq): Ditto.
722         (vn_nary_op_lookup_pieces): New function.
723         (vn_nary_op_lookup): Add new argument.  
724         (vn_nary_op_insert_pieces): New function.
725         (vn_nary_op_insert): Add return type. Modify to deal with value
726         ids.
727         (vn_phi_insert): Ditto.
728         (visit_unary_op): Update for callee changes.
729         (visit_binary_op): Ditto.
730         (visit_reference_op_load): Ditto.
731         (visit_reference_op_store): Ditto.
732         (init_scc_vn): Init next_value_id, constant_to_value_id and
733         constant_value_ids. 
734         (free_scc_vn): Free them.
735         (set_hashtable_value_ids): New function.
736         (run_scc_vn): Use it.
737         (get_max_value_id): New function.
738         (get_next_value_id): Ditto.
739         (expressions_equal_p): Moved from tree-vn.c
740         (sort_vuses): Ditto.
741         (sort_vuses_heap): Ditto.
742         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
743         above).
744         * tree.c (iterative_hash_hashval_t): Made non-static
745         * tree.h (iterative_hash_hashval_t): Declare it.
746         
747 2008-07-08  Martin Jambor  <mjambor@suse.cz>
748
749         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
750         instead of ipa_create_node_params.
751         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
752         ipa_check_create_edge_args, free them with
753         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
754
755         * ipa-prop.c: Include flags.h and tree-inline.h.
756         (ipa_node_params_vector): New variable.
757         (ipa_edge_args_vector): New variable.
758         (edge_removal_hook_holder): New variable.
759         (node_removal_hook_holder): New variable.
760         (edge_duplication_hook_holder): New variable.
761         (node_duplication_hook_holder): New variable.
762         (ipa_detect_param_modifications): Check for presence of modified flags.
763         (ipa_compute_jump_functions): Check for presence of jump functions.
764         (ipa_free_edge_args_substructures): New function.
765         (ipa_create_node_params): Removed.
766         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
767         (ipa_free_node_params_substructures): New function.
768         (ipa_free_all_node_params): Changed to deallocate the on-the-side
769         vector.
770         (ipa_edge_removal_hook): New function.
771         (ipa_node_removal_hook): New function.
772         (duplicate_array): New function.
773         (ipa_edge_duplication_hook): New function.
774         (ipa_node_duplication_hook): New function.
775         (ipa_register_cgraph_hooks): New function.
776         (ipa_unregister_cgraph_hooks): New function.
777         (free_all_ipa_structures_after_ipa_cp): New function.
778         
779         * ipa-prop.h: Include vec.h.
780         (ipa_node_params_t): New typedef with vector types for it.
781         (ipa_edge_args_t):  New typedef with vector types for it.
782         (IPA_NODE_REF): Changed to access an on-the-side vector.
783         (IPA_EDGE_REF): Changed to access an on-the-side vector.
784         (ipa_check_create_node_params): New function.
785         (ipa_check_create_edge_args): New function.
786         
787         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
788         all users.
789         
790 2008-07-07  Tom Tromey  <tromey@redhat.com>
791
792         * configure, config.in: Rebuilt.
793         * configure.ac: Don't check for scandir or alphasort.
794
795 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
796
797         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
798         types immediately after creating them.
799
800 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
801
802         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
803
804 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
805
806         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
807         dump_constraint_graph.
808         (dump_constraint_edge): New function.
809         (dump_constraint_graph): New function.
810         (debug_constraint_graph): New function.
811         (dump_constraint): Removed useless comparison.
812         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
813         (dump_constraint_graph): Declare.
814         (debug_constraint_graph): Declare.
815         * tree-dump.c (struct dump_option_value_info): Declare
816         TDF_GRAPH.
817
818 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
819
820         * config/i386/i386.c (is_va_list_char_pointer): New.
821         (ix86_va_start): Replace compare with ms_va_list_type_node
822         by is_va_list_char_pointer.
823         (ix86_gimplify_va_arg): Likewise.
824
825 2008-07-07  Martin Jambor  <mjambor@suse.cz>
826
827         * cgraph.c (cgraph_edge_max_uid): New variable.
828         (struct cgraph_edge_hook_list): New type.
829         (struct cgraph_node_hook_list): New type.
830         (struct cgraph_2edge_hook_list): New type.
831         (struct cgraph_2node_hook_list): New type.
832         (first_cgraph_edge_removal_hook): New variable.
833         (first_cgraph_node_removal_hook): New variable.
834         (first_cgraph_edge_duplicated_hook): New variable.
835         (first_cgraph_node_duplicated_hook): New variable.
836         (cgraph_add_edge_removal_hook): New function.
837         (cgraph_remove_edge_removal_hook): New function.
838         (cgraph_call_edge_removal_hooks):  New function.
839         (cgraph_add_node_removal_hook):  New function.
840         (cgraph_remove_node_removal_hook):  New function.
841         (cgraph_call_node_removal_hooks):  New function.
842         (cgraph_add_edge_duplication_hook):  New function.
843         (cgraph_remove_edge_duplication_hook):  New function.
844         (cgraph_call_edge_duplication_hooks):  New function.
845         (cgraph_add_node_duplication_hook):  New function.
846         (cgraph_remove_node_duplication_hook):  New function.
847         (cgraph_call_node_duplication_hooks):  New function.
848         (cgraph_create_edge): Assign to edge uid.
849         (cgraph_remove_edge): Call edge removal hooks.
850         (cgraph_node_remove_callees): Call edge removal hooks.
851         (cgraph_node_remove_callers): Call edge removal hooks.
852         (cgraph_remove_node): Call node removal hooks.
853         (cgraph_clone_edge): Call edge duplication hooks.
854         (cgraph_clone_node): Call node duplication hooks.
855
856         * cgraph.h (cgraph_edge): New field uid.
857         (cgraph_edge_hook): New type.
858         (cgraph_node_hook): New type.
859         (cgraph_2edge_hook): New type.
860         (cgraph_2node_hook): New type.
861
862 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
863
864         * config.in: Regenerate.
865
866 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
867
868         * gcc.c (print_sysroot): New.
869         (option_map, display_help, process_command): Handle the
870         -print-sysroot option.
871         (main): Print the sysroot if requested.
872         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
873         
874 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
875
876         PR target/34780
877         * unwind-pe.h (size_of_encoded_value): add attribute unused.
878
879 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
880
881         * function.c (assign_parm_remove_parallels): Check mode of
882         entry_parm.
883         (assign_parm_setup_block_p): Also check mode of entry_parm.
884
885 2008-07-07  Richard Guenther  <rguenther@suse.de>
886
887         * tree-ssa-structalias.h (set_used_smts): Remove.
888         * tree-ssa-structalias.c (used_smts): Likewise.
889         (set_used_smts): Likewise.
890         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
891         call to set_used_smts.
892
893 2008-07-07  Richard Guenther  <rguenther@suse.de>
894
895         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
896         (new_var_info): Set it to false.
897         (solution_set_add): Correctly handle pointers outside a var and
898         inside a field.
899         (type_safe): Treat variables with is_full_var properly.
900         (do_sd_constraint): Likewise.
901         (do_ds_constraint): Likewise.
902         (process_constraint): Remove zeroing offset for !use_field_sensitive.
903         (get_constraint_for_ptr_offset): New function.
904         (get_constraint_for_component_ref): For addresses at least include
905         the last field of the variable.  Handle is_full_vars properly.
906         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
907         (handle_ptr_arith): Remove.
908         (find_func_aliases): Simplify assignment handling.
909         (create_function_info_for): For parameter and result varinfos set
910         is_full_var flag.
911         (create_variable_info_for): Set is_full_var flag whenever we
912         just created a single varinfo for a decl.
913         (init_alias_vars): Initialize use_field_sensitive from
914         max-fields-for-field-sensitive parameter.
915
916 2008-07-07  Richard Guenther  <rguenther@suse.de>
917
918         PR tree-optimization/36713
919         * tree-flow-inline.h (is_call_used): New function.
920         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
921         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
922         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
923
924 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
925
926         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
927         
928 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
929
930         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
931
932 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
933             Nathan Sidwell  <nathan@codesourcery.com>
934
935         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
936         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
937         tmake_file.
938         * config/m68k/t-linux: New.
939         * doc/install.texi: Document m68k-*-linux is now multilibbed by
940         default.
941
942 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
943
944         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
945         * config/m68k/m68k-devices.def: Remove multilibs that only differ
946         by MAC/EMAC.
947
948 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
949
950         * gcc.c (execute): Fix -Wc++-compat warning.
951
952 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
953
954         PR target/36720
955         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
956         constant for little endian.
957
958 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
959
960         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
961         mips_base_mips16 instead of TARGET_MIPS16.
962         (mips_base_mips16): Declare.
963         * config/mips/mips.c (mips_base_mips16): Make global.
964         (was_mips16_p): Remove GTY marker.
965         (was_mips16_pch_p): New variable.
966         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
967         (mips_override_options): Force to non-MIPS16 mode initially.
968         Do not complain about MIPS16 PIC incompatibilities here.
969         Only allow -mgpopt if -mexplicit-relocs is in force for
970         non-MIPS16 code.
971
972 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
973
974         * configure.ac: Check for caddr_t, define to char * if not defined.
975         * configure: Regenerate.
976         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
977         (mmap_gt_pch_use_address): Likewise.
978         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
979
980 2008-07-06  Richard Guenther  <rguenther@suse.de>
981
982         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
983         (new_var_info): Deal with it.
984         (solution_set_add): Likewise.
985         (bitpos_of_field): Make signed, fix.
986         (struct fieldoff): Remove type and decl fields.  Make size field
987         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
988         flags.
989         (fieldoff_compare): Deal with it.
990         (push_fields_onto_fieldstack): Remove has_union argument, glob
991         adjacent non-pointer fields together.
992         (create_function_info_for): Do not set has_union.
993         (create_variable_info_for): Simplify.
994
995 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
996
997         * config.gcc (extra_headers): Add cross-stdarg.h for target
998         x86_64-*-* and i?86-*-*.
999         * config/i386/cross-stdarg.h: New.
1000         * builtins.c (std_fn_abi_va_list): New.
1001         (std_canonical_va_list_type): New.
1002         (stabilize_va_list): Replace va_list_type_node use by
1003         mtarget.canonical_va_list_type.
1004         (gimplify_va_arg_expr): Likewise.
1005         (expand_builtin_va_copy): Replace va_list_type_node use by
1006         mtarget.fn_abi_va_list.
1007         * tree-sra.c (is_va_list_type): New helper.
1008         (decl_can_be_decomposed_p): Replace
1009         va_list_type_node use by is_va_list_type.
1010         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
1011         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1012         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
1013         * config/i386/i386-protos.h (ix86_get_valist_type): New.
1014         (ix86_enum_va_list): New.
1015         * config/i386/i386.c (sysv_va_list_type_node): New.
1016         (ms_va_list_type_node): New.
1017         (ix86_function_type_abi): Remove sorry.
1018         (ix86_build_builtin_va_list_abi): New.
1019         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
1020         for 64-bit targets.
1021         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
1022         (ix86_init_builtins_va_builtins_abi): New.
1023         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
1024         for 64-bit targets.
1025         (ix86_handle_abi_attribute): New.
1026         (attribute_spec): Add sysv_abi and ms_abi.
1027         (ix86_fn_abi_va_list): New.
1028         (ix86_canonical_va_list_type): New.
1029         (ix86_enum_va_list): New.
1030         (TARGET_FN_ABI_VA_LIST): New.
1031         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1032         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
1033         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
1034         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1035         (TARGET_ENUM_VA_LIST): New.
1036         * expr.h (std_fn_abi_va_list): New.
1037         (std_canonical_va_list_type): New.
1038         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
1039         (TARGET_CANONICAL_VA_LIST_TYPE): New.
1040         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
1041         TARGET_CANONICAL_VA_LIST_TYPE.
1042         * target.h (struct gcc_target): Add fn_abi_va_list hook
1043         and canonical_va_list_type hook.
1044
1045 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1046
1047         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
1048         integral and pointer types.
1049
1050 2008-07-04  Roger Sayle  <roger@eyesopen.com>
1051
1052         * config/rs6000/host-darwin.c (darwin_rs6000_extra_siganls): Cast
1053         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
1054
1055 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1056
1057         PR target/36684
1058         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
1059         for PIC.
1060
1061 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
1062
1063         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
1064         build_gimple_modify_stmt.
1065         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
1066         gimple operand.  Use fold_build* instead of build*.
1067
1068 2008-07-04  Richard Guenther  <rguenther@suse.de>
1069
1070         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
1071         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
1072         properly to compute the reachability set if we do field-sensitive PTA.
1073         * invoke.texi (max-fields-for-field-sensitive): Document default.
1074         * opts.c (decode_options): Set max-fields-for-field-sensitive to
1075         100 for optimize >= 2.
1076
1077 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1078
1079         * ggc-zone.c (lookup_page_table_if_allocated,
1080         set_page_table_entry, zone_find_object_size, alloc_small_page,
1081         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
1082         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
1083         -Wc++-compat and/or -Wcast-qual warnings.
1084
1085 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
1086
1087         PR target/36634
1088         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
1089         pic_offset_table_rtx to be marked as used here.
1090         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
1091         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
1092         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
1093         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
1094         !TARGET_SECURE_PLT.
1095
1096 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1097
1098         * alloc-pool.c (hash_descriptor, eq_descriptor,
1099         alloc_pool_descriptor): Fix -Wc++-compat warnings.
1100         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
1101         Likewise.
1102         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
1103         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
1104         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics):
1105         Likewise.
1106         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
1107         Likewise.
1108
1109 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1110
1111         * tree-flow.h (loop_only_exit_p): Declare.
1112         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
1113         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
1114         the number of iterations if it is constant.  Otherwise, if this is the
1115         only possible exit of the loop, use the conservative estimate on the
1116         number of iterations of the entire loop if available.
1117
1118 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
1119
1120         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
1121         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
1122         Add synchronization functions.
1123         * config/sync.c: New file.
1124         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
1125         (LIBGCC_SYNC_CFLAGS): Likewise.
1126
1127 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
1128
1129         PR target/36710
1130         * config/i386/i386.md (mode): Add TF to "mode" attribute.
1131         (*pushtf_sse): New insn pattern.
1132         (pushtf splitters): New splitters.
1133
1134 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
1135
1136         PR middle-end/35736
1137         * predict.c (build_predict_expr): Use void_type_node for the tree
1138         type, instead of NULL_TREE.
1139
1140 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
1141
1142         * config/i386/i386.c (contains_aligned_value_p): Return true
1143         for TCmode.
1144         (ix86_data_alignment): Align TCmode to 128bits.
1145         (ix86_local_alignment): Likewise.
1146
1147 2008-07-03  Andrew Haley  <aph@redhat.com>
1148
1149         PR bootstrap/33304
1150         * vec.h (VEC_TA): New.
1151         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
1152         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
1153         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
1154         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
1155         (C_COMMON_FIXED_TYPES): Remove first arg.
1156         (C_COMMON_FIXED_MODE_TYPES): Likewise.
1157         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
1158         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
1159         not to use empty macro arguments.
1160
1161 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
1162
1163         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
1164         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
1165         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
1166         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
1167         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
1168         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
1169         config/ia64/crtn.asm, config/m68hc11/larith.asm,
1170         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
1171         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
1172         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1173         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1174         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1175         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
1176         config/rs6000/e500crtres64gpr.asm,
1177         config/rs6000/e500crtres64gprctr.asm,
1178         config/rs6000/e500crtrest32gpr.asm,
1179         config/rs6000/e500crtrest64gpr.asm,
1180         config/rs6000/e500crtresx32gpr.asm,
1181         config/rs6000/e500crtresx64gpr.asm,
1182         config/rs6000/e500crtsav32gpr.asm,
1183         config/rs6000/e500crtsav64gpr.asm,
1184         config/rs6000/e500crtsav64gprctr.asm,
1185         config/rs6000/e500crtsavg32gpr.asm,
1186         config/rs6000/e500crtsavg64gpr.asm,
1187         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
1188         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
1189         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
1190         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
1191         config/sparc/sol2-cn.asm: Remove .file directives.
1192
1193 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
1194
1195         * resource.c (mark_referenced_resources): Look inside
1196         UNSPEC_VOLATILEs and ASM_INPUTs.
1197
1198 2008-07-02  Ian Lance Taylor  <iant@google.com>
1199
1200         * rtlanal.c (add_reg_note): New function.
1201         * rtl.h (add_reg_note): Declare.
1202         * auto-inc-dec.c (attempt_change): Use add_reg_note.
1203         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
1204         * builtins.c (expand_builtin_longjmp): Likewise.
1205         (expand_builtin_nonlocal_goto): Likewise.
1206         * calls.c (emit_call_1, expand_call): Likewise.
1207         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1208         * cfglayout.c (fixup_reorder_chain): Likewise.
1209         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
1210         (commit_one_edge_insertion): Likewise.
1211         * combine.c (move_deaths, distribute_notes): Likewise.
1212         * df-problems.c (df_set_note): Likewise.
1213         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
1214         (set_unique_reg_note): Likewise.
1215         (emit_copy_of_insn_after): Likewise.
1216         * expr.c (expand_expr_real): Likewise.
1217         * gcse.c (add_label_notes): Likewise.
1218         * haifa-sched.c (create_check_block_twin): Likewise.
1219         * jump.c (mark_jump_label_1): Likewise.
1220         * loop-doloop.c (add_test, doloop_modify): Likewise.
1221         * loop-unswitch.c (compare_and_jump_seq): Likewise.
1222         * lower-subreg.c (move_eh_region_note): Likewise.
1223         * optabs.c (emit_libcall_block): Likewise.
1224         * predict.c (predict_insn): Likewise.
1225         (combine_predictions_for_insn): Likewise.
1226         * recog.c (peephole2_optimize): Likewise.
1227         * regmove.c (try_auto_increment): Likewise.
1228         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
1229         * reload.c (find_reloads): Likewise.
1230         * reload1.c (fixup_eh_region_note): Likewise.
1231         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
1232         * reorg.c (delete_prior_computation): Likewise.
1233         (delete_computation, dbr_schedule): Likewise.
1234         * config/pa/pa.c (legitimize_pic_address): Likewise.
1235         * config/sh/sh.c (sh_reorg): Likewise.
1236
1237 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1238
1239         PR target/36669
1240         * config/libgcc-glibc.ver: Add %exclude.
1241         * config/m32r/libgcc-glibc.ver: Likwise.
1242         * config/s390/libgcc-glibc.ver: Likwise.
1243         * config/sh/libgcc-glibc.ver: Likwise.
1244         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
1245
1246         * config/i386/libgcc-glibc.ver: New.
1247
1248         * config/i386/libgcc-x86_64-glibc.ver: Removed.
1249
1250 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
1251
1252         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
1253         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
1254         i[34567]86-*-linux*, x86_64-*-linux*.  Add
1255         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
1256         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
1257         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
1258         i[34567]86-*-linux*, x86_64-*-linux*.
1259
1260         * libgcc-std.ver: Add empty GCC_4.4.0.
1261
1262         * mkmap-symver.awk: Support multiple versions per symbol.
1263
1264         * config/i386/i386.c (ix86_init_builtins): Always define
1265         __builtin_fabsq and __builtin_copysignq with fallbacks.
1266         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
1267         and __builtin_copysignq if SSE2 isn't available.
1268
1269         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
1270         (LIBGCC2_TF_CEXT): Likwise.
1271         (TF_SIZE): Likwise.
1272
1273         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
1274
1275         * config/i386/sfp-machine.h: Moved to libgcc.
1276
1277         * config/i386/sfp-machine.h: New.
1278         * config/i386/t-linux: Likwise.
1279
1280         * config/i386/t-darwin: Remove softfp_wrap_start and
1281         softfp_wrap_end.
1282         * config/i386/t-darwin64: Likewise.
1283
1284         * config/i386/t-fprules-softfp64: Renamed to ...
1285         * config/i386/t-fprules-softfp: This.
1286
1287         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
1288         and softfp_wrap_end.
1289
1290 2008-07-02  Jason Merrill  <jason@redhat.com>
1291
1292         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
1293
1294         * tree.c (ctor_to_list): New fn.
1295         * tree.h: Declare it.
1296         (CONSTRUCTOR_ELT): New macro.
1297         (CONSTRUCTOR_NELTS): New macro.
1298
1299 2008-07-02  Richard Guenther  <rguenther@suse.de>
1300
1301         * tree-ssa-structalias.c (struct variable_info): Reorder
1302         to fill padding on 64bit hosts.  Make collapsed_to an int.
1303         (get_varinfo_fc): Deal with that.
1304         (new_var_info): Likewise.
1305         (collapse_rest_of_var): Likewise.
1306
1307 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
1308
1309         * doc/install.texi (--enable-java-home): Document.
1310         (--enable-aot-compile-rpm): Likewise.
1311         (--with-arch-directory): Likewise.
1312         (--with-os-directory): Likewise.
1313         (--with-origin-name): Likewise.
1314         (--with-arch-suffix): Likewise.
1315         (--with-jvm-root-dir): Likewise.
1316         (--with-jvm-jar-dir): Likewise.
1317         (--with-python-dir): Likewise.
1318
1319 2008-07-02  Richard Guenther  <rguenther@suse.de>
1320
1321         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1322         from decls explicitly.  Merge operand checking from tuples.
1323
1324 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1325
1326         * tree-switch-conversion.c: Included timevar.h which I forgot before.
1327         
1328 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1329
1330         * tree-switch-conversion.c: Included timevar.h
1331         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
1332
1333         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
1334
1335 2008-07-02  Martin Jambor  <mjambor@suse.cz>
1336
1337         * tree-switch-conversion.c: Corrected various comments and
1338         whitespace issues
1339         (build_constructors): Fixed minor formatting mistakes.
1340
1341         * invoke.texi (Optimize Options): Corrected the
1342         switch-conversion-max-branch-ratio parameter.
1343
1344 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
1345
1346         * final.c (asm_insn_count): Return zero for an empty asm body.
1347
1348 2008-07-02  Richard Guenther  <rguenther@suse.de>
1349
1350         * bitmap.h (bitmap_set_bit): Return bool.
1351         (bitmap_clear_bit): Likewise.
1352         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
1353         write to the bitmap if it would.
1354         (bitmap_clear_bit): Likewise.
1355         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
1356         bitmap_set_bit return value.
1357         (add_pred_graph_edge): Likewise.
1358         (add_graph_edge): Likewise.
1359         (do_sd_constraint): Likewise.
1360         (do_ds_constraint): Likewise.
1361
1362 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1363
1364         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
1365         Fix -Wc++-compat and/or -Wcast-qual warnings.
1366         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
1367         gen_regparm_prefix): Likewise.
1368         * vmsdbgout.c (write_modbeg, lookup_filename,
1369         vmsdbgout_source_line, vmsdbgout_init): Likewise.
1370
1371 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
1372
1373         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
1374         defaults.h definition apply.
1375
1376 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1377
1378         * function.c (assign_parm_remove_parallels): New.
1379         (assign_parm_setup_block_p): Do not return true for non-BLKmode
1380         PARALLELs.
1381         (assign_parm_setup_block): Do not handle them.
1382         (assign_parm_setup_reg, assign_parm_setup_stack): Call
1383         assign_parm_remove_parallels.
1384
1385 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
1386
1387         * c-typeck.c (convert_for_assignment): Use
1388         vector_targets_convertible_p.
1389         * c-common.c (vector_targets_convertible_p): New.
1390         * c-common.h (vector_targets_convertible_p): New prototype.
1391         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
1392         opaque_p_V2SI_type_node.
1393
1394 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
1395
1396         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
1397         RFmode constants.
1398
1399 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
1400
1401         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
1402         TFmode constants via two element DImode vector for hosts with
1403         HOST_BITS_PER_WIDE_INT < 64.
1404         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
1405         also for HOST_BITS_PER_WIDE_INT < 64.
1406
1407 2008-07-01  Richard Guenther  <rguenther@suse.de>
1408
1409         PR tree-optimization/36666
1410         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
1411         (get_constraint_exp_from_ssa_var): Split into ...
1412         (get_constraint_exp_for_temp): ... this ...
1413         (get_constraint_for_ssa_var): ... and that.
1414         Return constraint expressions for all touched sub-fields
1415         if the results address is not taken.
1416         (process_constraint): Remove assertion that aggregate
1417         assignments do not happen at this place.
1418         (get_constraint_for_component_ref): Add address_p argument.
1419         Return constraint expressions for all touched sub-fields
1420         if the results address is not taken.
1421         (do_deref): Use get_constraint_exp_for_temp.
1422         (get_constraint_for_1): Rename from ...
1423         (get_constraint_for): ... this.  Add the old function as wrapper.
1424         (do_structure_copy): Use get_constraint_for_1.
1425
1426 2008-07-01  Martin Jambor  <mjambor@suse.cz>
1427
1428         * Makefile.in (tree-switch-conversion.o): Add.
1429         (OBJS-common): Add tree-swtch-conversion.o.
1430         * passes.c (init_optimization_passes): Add pass_convert_switch.
1431         * tree-pass.h: (pass_convert_switch): Add.
1432         * tree-switch-conversion.c: New file.
1433         * gcc.dg/tree-ssa/cswtch.c: New testcase.
1434         * common.opt (ftree-cswtch): New option.
1435         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1436         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
1437         * opts.c (decode_options): Set flag_tree_switch_conversion when
1438         optimization level is >= 2.
1439         * doc/invoke.texi (Optimize Options): Added description of
1440         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
1441
1442 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1443
1444         * config/darwin-driver.c (darwin_default_min_version): Fix
1445         -Wc++-compat warnings.
1446
1447 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
1448
1449         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
1450         of operand 0.
1451
1452 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1453
1454         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
1455         
1456 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
1457
1458         PR rtl-optimization/34744
1459         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
1460         (df_scan_free_internal): Free data structures not
1461         allocated in storage pools.
1462         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
1463         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
1464         df_scan_free_mws_vec.
1465         * dse.c (dse_step6): Free offset_map_p and offset_map_n
1466         unconditionally.
1467
1468 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
1469
1470         * config/i386/i386.c (contains_aligned_value_p): Return true
1471         for __float128.
1472         (ix86_function_arg_boundary): Return its natural boundary
1473         for __float128.
1474         (return_in_memory_32): Don't check TDmode.
1475         (ix86_split_to_parts): Support splitting into 4 parts and
1476         support TFmode for 32bit target.
1477         (ix86_split_long_move): Support splitting into 4 parts.
1478         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
1479         for SSE2.
1480         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
1481         (ix86_init_builtins): Here.
1482         (ix86_scalar_mode_supported_p): Always return true for TFmode.
1483         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
1484         'q' and 'w', respectively. 
1485
1486         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
1487         TARGET_64BIT.
1488         (movtf_internal): Likewise.
1489         (<code>tf2): Likewise.
1490         (*absnegtf2_sse): Likewise.
1491         (copysign<mode>3): Likewise.
1492         (copysign<mode>3_const): Likewise.
1493         (copysign<mode>3_var): Likewise.
1494         (define_split UNSPEC_COPYSIGN): Likewise.
1495         * config/i386/sse.md (*nandtf3): Likewise.
1496         (<code>tf3): Likewise.
1497         (*<code>tf3): Likewise.
1498
1499 2008-06-30  Joey Ye  <joey.ye@intel.com>
1500             H.J. Lu  <hongjiu.lu@intel.com>
1501
1502         * global.c (compute_regsets): Set frame_pointer_needed here.
1503         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
1504
1505 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1506
1507         * doc/install.texi (specific): Expand Windows build notes.
1508
1509 2008-06-30  Ira Rosen  <irar@il.ibm.com>
1510
1511         PR tree-optimization/36648
1512         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
1513         number of prolog iterations by step. Fix the comment.
1514
1515 2008-06-30  Richard Guenther  <rguenther@suse.de>
1516
1517         PR middle-end/36671
1518         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
1519         handle calls from ECF_MALLOC functions.
1520         (handle_pure_call): ECF_MALLOC functions do not return
1521         call-used memory.
1522         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
1523
1524 2008-06-29  Andreas Schwab  <schwab@suse.de>
1525
1526         * config/m68k/m68k.c (print_operand): Always print a float
1527         constant in hex.
1528         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
1529         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
1530         Remove macros.
1531
1532         * config/rs6000/x-linux64: Remove never used file.
1533
1534 2008-06-29  Richard Guenther  <rguenther@suse.de>
1535
1536         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
1537         prototype.
1538         (struct alias_info): Move ...
1539         * tree-ssa-alias.c: ... here.
1540         (update_alias_info): Declare.
1541         (compute_may_aliases): Call it.
1542         (update_alias_info): New function.
1543         * tree-ssa-structalias.c (update_alias_info): Move ...
1544         * tree-ssa-alias.c (update_alias_info_1): ... here.
1545         * tree-ssa-structalias.c (process_constraint_1): Remove
1546         unused from_call argument.  Rename to ...
1547         (process_constraint): ... this.  Delete old wrapper.
1548         (make_constraint_to): Adjust callers.
1549         (handle_const_call): Likewise.
1550         (handle_pure_call): Likewise.
1551         (init_base_vars): Likewise.
1552         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
1553         (find_func_aliases): We don't need structure copies for
1554         complex types.
1555         (make_constraint_from_anything): Remove.
1556         (create_variable_info_for): For globals make constraints
1557         from escaped, not from anything.
1558         (compute_points_to_sets): Do not call update_alias_info.
1559         (ipa_pta_execute): Use make_constraint_from.
1560
1561 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1562
1563         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
1564         (bitmap.o-warn, dominance.o-warn): New.
1565         * configure.ac (cxx_compat_warn): Delete.
1566         (loose_warn): Add -Wcast-qual and -Wc++-compat.
1567         * system.h: Remove #pragma diagnostic for -Wcast-qual and
1568         -Wc++-compat.
1569         * configure: Regenerate.
1570
1571         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
1572         warnings.
1573
1574 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1575
1576         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
1577         * df-scan.c (df_notes_rescan): Likewise.
1578         * ggc-page.c (set_page_table_entry): Likewise.
1579         * intl.c (gcc_gettext_width): Likewise.
1580         * varasm.c (get_unnamed_section, get_noswitch_section,
1581         get_section): Likewise.
1582
1583 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
1584
1585         * regrename.c (build_def_use): Don't copy RTX.
1586
1587 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
1588
1589         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
1590         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
1591         punctuation.  Use @ref instead of @xref.
1592         (Function Names): Remove stray @display/@end display.
1593         (C++ Attributes): Use @ref instead of @xref.
1594         (Deprecated Features): Fix punctuation around @xref.
1595         (Backwards Compatibility): Likewise.
1596         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
1597
1598 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
1599
1600         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
1601         constants for E500 double.
1602
1603 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1604
1605         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
1606         element type of const_vector.
1607
1608 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
1609
1610         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
1611         Remove FLAGS_REG clobber from expander pattern.
1612         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
1613         (anddi3, andsi3, andhi3, andqi3): Ditto.
1614         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
1615         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
1616         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
1617         (ashlsi3, ashlhi3, ashlqi3): Ditto.
1618         (ashrsi3, ashrhi3, ashrqi3): Ditto.
1619         (lshrsi3, lshrhi3, lshrqi3): Ditto.
1620         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
1621         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
1622
1623 2008-06-28  Richard Guenther  <rguenther@suse.de>
1624
1625         * tree-ssa-structalias.c (callused_id, var_callused,
1626         callused_tree): Add.
1627         (handle_pure_call): New function.
1628         (find_func_aliases): Call it.
1629         (find_what_p_points_to): Handle the call-used set.
1630         (clobber_what_escaped): Likewise.
1631         (compute_call_used_vars): New function.
1632         (init_base_vars): Init the call-used variable.
1633         (do_sd_constraint): Do not propagate the solution from CALLUSED
1634         but use CALLUSED as a placeholder.
1635         (solve_graph): Likewise.
1636         * tree-flow-inline.h (gimple_call_used_vars): New function.
1637         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
1638         (compute_call_used_vars): Declare.
1639         * tree-ssa-alias.c (set_initial_properties): Call
1640         compute_call_used_vars.
1641         (reset_alias_info): Clear call-used variables.
1642         (add_call_clobber_ops): Assert we are not called for const/pure
1643         functions.  Remove handling of them.
1644         (add_call_read_ops): Handle pure functions by adding the
1645         call-used set of variables as VUSEs.
1646         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
1647         (delete_tree_ssa): Free it.
1648         * tree-dfa.c (remove_referenced_var): Clear the var from the
1649         call-used bitmap.
1650
1651 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
1652
1653         * tree.c (build_varargs_function_type_list): New.
1654         (build_function_type_list_1): New.
1655         (build_function_type_list): Use build_function_type_list_1.
1656         * tree.h (build_varargs_function_type_list): New.
1657
1658 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1659
1660         PR target/34856
1661         * config/spu/spu.c (spu_builtin_splats): Do not generate
1662         invalid CONST_VECTOR expressions.
1663         (spu_expand_vector_init): Likewise.
1664
1665 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
1666
1667         * optabs.c (libfunc_decls): New variable.
1668         (libfunc_decl_hash, libfunc_decl_eq): New functions.
1669         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
1670         for the same function twice.
1671
1672 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
1673
1674         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
1675         ix86_expand_binary_operator directly.
1676         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
1677         for operand 2.
1678         (*ashrti3_1): Ditto.
1679         (*lshrti3_1): Ditto.
1680         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
1681         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
1682         using only one splitter.  Conditionaly execute splitter before or
1683         after peephole2 pass.
1684         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
1685         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
1686         Use only one alternative in asm template.
1687         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
1688         in asm template.
1689         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
1690         "J" operand constraint for operand 2.
1691         (*ashldi3_cconly_rex64): Ditto.
1692         (*ashrdi3_cmp_rex64): Ditto.
1693         (*ashrdi3_cconly_rex64): Ditto.
1694         (*lshrdi3_cmp_rex64): Ditto.
1695         (*lshrdi3_cconly_rex64): Ditto.
1696         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
1697         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
1698         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
1699         gen_x86_shrd_1.
1700
1701 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1702
1703         * gimplify.c (omp_is_private): Don't return true if decl is not
1704         already private on #pragma omp for or #pragma omp parallel for.
1705
1706         PR debug/36617
1707         * tree-cfg.c (struct move_stmt_d): Replace block field with
1708         orig_block and new_block fields.
1709         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
1710         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
1711         (move_block_to_fn): Replace vars_map and new_label_map arguments
1712         with struct move_stmt_d pointer.
1713         (replace_block_vars_by_duplicates): New function.
1714         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
1715         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
1716         all subblocks of ORIG_BLOCK to the new function.  Call
1717         replace_block_vars_by_duplicates.
1718         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
1719         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
1720         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
1721         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
1722         (expand_omp): Temporarily set input_location to the location of
1723         region's controlling stmt.
1724         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
1725         BIND_EXPR, push ctx->block_vars and gimplification vars into
1726         the BIND_EXPR and its block's BLOCK_VARS instead of directly
1727         into dest function.
1728         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
1729         there are any BLOCK_VARS.
1730         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
1731         OMP_PARALLEL or OMP_TASK stmt.
1732         (lower_omp): Save and restore input_location around the lower_omp_1
1733         call.
1734
1735 2008-06-27  Richard Guenther  <rguenther@suse.de>
1736
1737         PR tree-optimization/36400
1738         PR tree-optimization/36373
1739         PR tree-optimization/36344
1740         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
1741         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
1742         (update_alias_info): Remove call clobbering code.
1743         (make_constraint_to): New helper function.
1744         (make_escape_constraint): Likewise.
1745         (handle_rhs_call): Use it on all pointer containing arguments.
1746         Also mark the static chain escaped.
1747         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
1748         instead of ANYTHING.
1749         (make_constraint_from): New helper split out from ...
1750         (make_constraint_from_anything): ... here.
1751         (find_func_aliases): Add constraints for escape sites.
1752         (intra_create_variable_infos): Make constraints from NONLOCAL
1753         for parameters.
1754         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
1755         as ANYTHING.
1756         (clobber_what_p_points_to): Remove.
1757         (clobber_what_escaped): New function.
1758         (init_base_vars): Init NONLOCAL and ESCAPED.
1759         (do_sd_constraint): Do not propagate the solution from ESCAPED
1760         but use ESCAPED as a placeholder.
1761         (solve_graph): Likewise.
1762         * tree-flow.h (clobber_what_p_points_to): Remove.
1763         (clobber_what_escaped): Declare.
1764         * tree-ssa-alias.c (set_initial_properties): Call it.
1765         Remove code clobbering escaped pointers.
1766
1767 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1768
1769         * function.c (allocate_struct_function): Only allocate a unique
1770         funcdef_no if the decl is nonzero.
1771
1772 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
1773
1774         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
1775         * config/mips/mips.c (mips_split_const_insns): New function.
1776         * config/mips/mips.md (move_type): New attribute.
1777         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
1778         (dword_mode): New attribute.
1779         (type): Avoid long line.  Map "move_type"s to "type"s,
1780         choosing "multi" for doubleword moves if appropriate.
1781         Swap MTC/MFC comments to match their declaration order.
1782         (extended_mips16): Default to "yes" if "move_type" is "sll0",
1783         "type" is "branch" or "jal" is "direct".
1784         (length): Handle "extended_mips16" first.  Make the default
1785         "0" for "ghost" instructions.  Set the length from "move_type".
1786         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
1787         of "type", with "sll0" for the register alternative.  Remove the
1788         "extended_mips16" attribute.
1789         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
1790         of "type", with "shift_shift" for the register alternative.
1791         Remove the "length" attribute.
1792         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
1793         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
1794         of "type", with "andi" for the register alternative.
1795         (*zero_extendqihi2): Likewise.
1796         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
1797         of "andi" instead of a "type" of "arith".
1798         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
1799         instead of "type".
1800         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
1801         (mov_<store>r, *mov<mode>_ra): Likewise.
1802         (extendsidi2): Use "move_type" instead of "type", with "move"
1803         for the register alternative.
1804         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
1805         of "type", with "signext" for the register alternative.
1806         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
1807         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
1808         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
1809         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
1810         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
1811         (unnamed branch insn): Likewise.
1812         (*movdi_gp32_fp64): Fold into...
1813         (*movdi_32bit): ...here.
1814         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
1815         (*movdf_hardfloat): ...this new pattern.
1816         (*movdf_softfloat): Remove redundant FPR alternatives.
1817         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
1818         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
1819         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
1820         the "move" attribute.
1821         (*movdi_32bit): Use "move_type" instead of "type" and remove the
1822         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
1823         and "store" for COP loads and stores.
1824         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
1825         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
1826         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
1827         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
1828         (*movtf_mips16, *movv2sf): Likewise.
1829         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
1830         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
1831         (mfhc1<mode>): Use "move_type" instead of "move".
1832         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
1833         (loadgp_blockage): Remove the "length" attribute.
1834         (blockage, set_got_version, update_got_version): Likewise.
1835         (call_internal): Remove the "extended_mips16" attribute.
1836         (call_value_internal, call_value_multiple_internal): Likewise.
1837         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
1838         instead of "move".
1839         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
1840         the "length" attribute.
1841
1842 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1843
1844         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
1845         -Wcast-qual warnings.
1846         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
1847         handle_pragma_pop_macro): Likewise.
1848         * collect2.c (resolve_lib_name): Likewise.
1849         * config/arc/arc.c (arc_init): Likewise.
1850         * config/arm/arm.c (neon_builtin_compare,
1851         locate_neon_builtin_icode): Likewise.
1852         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
1853         * config/bfin/bfin.c (bfin_init_machine_status,
1854         bfin_optimize_loop): Likewise.
1855         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1856         * config/cris/cris.c (cris_init_expanders): Likewise.
1857         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
1858         * config/darwin.c (machopic_indirection_eq,
1859         machopic_indirection_name, machopic_output_indirection): Likewise.
1860         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
1861         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
1862         frv_optimize_membar): Likewise.
1863         * config/i386/cygwin.h (mingw_scan,
1864         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
1865         * config/i386/cygwin1.c (mingw_scan): Likewise.
1866         * config/i386/i386.c (machopic_output_stub): Likewise.
1867         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
1868         i386_pe_unique_section): Likewise.
1869         * config/ia64/ia64.c (ia64_init_machine_status,
1870         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
1871         Likewise.
1872         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
1873         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
1874         * config/m68k/m68k.c (m68k_handle_option,
1875         m68k_sched_md_init_global): Likewise.
1876         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
1877         mcore_unique_section): Likewise.
1878         * config/mips/mips.c (mips_block_move_straight,
1879         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
1880         Likewise.
1881         * config/mmix/mmix.c (mmix_init_machine_status,
1882         mmix_encode_section_info): Likewise.
1883         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
1884         * config/rs6000/rs6000.c (rs6000_init_machine_status,
1885         print_operand_address, output_toc, redefine_groups,
1886         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
1887         * config/s390/s390.c (s390_init_machine_status): Likewise.
1888         * config/score/score.c (score_block_move_straight,
1889         score_block_move_loop_body): Likewise.
1890         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1891         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1892         * emit-rtl.c (find_auto_inc): Likewise.
1893         * gcc.c (translate_options, process_command): Likewise.
1894         * reorg.c (dbr_schedule): Likewise.
1895         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
1896         * xcoffout.c (xcoffout_declare_function): Likewise.
1897
1898 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
1899
1900         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
1901         ipa-pta working again.
1902
1903 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
1904
1905         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
1906         genautomata.
1907
1908 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
1909
1910         * config.gcc (powerpc*-*-*): Add new core e500mc.
1911         * config/rs6000/e500mc.md: New file.
1912         * config/rs6000/rs6000.c (processor_costs): Add new costs for
1913         e500mc.
1914         (rs6000_override_options): Add e500mc case to
1915         processor_target_table. Altivec and Spe options not allowed
1916         with e500mc. Add isel instruction to e500mc by
1917         default. Initialize rs6000_cost for e500mc.
1918         (rs6000_issue_rate): Set issue rate for e500mc.
1919         * config/rs6000/rs6000.h (processor_type): Add
1920         PROCESSOR_PPCE500MC.
1921         (ASM_CPU_SPEC): Add e500mc.
1922         Set TARGET_ISEL to rs6000_isel.
1923         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
1924         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
1925         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
1926         Include e500mc.md.
1927         * doc/invoke.texi: Add e500mc to list of cpus.
1928
1929 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1930
1931         PR c/34867
1932         * c-lex.c (lex_charconst): Initialize unsignedp.
1933
1934 2008-06-27  Olivier Hainque  <hainque@adacore.com>
1935
1936         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
1937         documented assumptions.
1938
1939 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
1940
1941         * dwarf2out.c: Remove trailing white spaces.  Break long line
1942         in comments.
1943
1944 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
1945
1946         * libfuncs.h (LTI_synchronize): New libfunc_index.
1947         (synchronize_libfunc): Declare.
1948         * builtins.c (expand_builtin_synchronize): Consider using
1949         synchronize_libfunc before falling back on an asm blockage.
1950         * config/mips/mips.c: Include libfuncs.h
1951         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
1952
1953 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
1954
1955         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
1956         parameter.  Copy stack_reg to r11 where appropriate.
1957         (no_global_regs_above): Add gpr parameter.
1958         (rs6000_stack_info): Only add padding for SPE save area if we
1959         are saving SPE GPRs and CR.
1960         (saveres_routine_syms): New variable.
1961         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
1962         Define.
1963         (rs6000_savres_routine_sym): New function.
1964         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
1965         split out of...
1966         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
1967         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
1968         Tweak FPR out-of-line saving.
1969         (rs6000_make_savres_rtx): New function.
1970         (rs6000_use_multiple_p): New function.
1971         (rs6000_savres_strategy): New function.
1972         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
1973         out-of-line if appropriate.
1974         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
1975         if we are optimizing for size.
1976         (GP_SAVE_INLINE): Define.
1977         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
1978         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
1979         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
1980         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
1981         (*save_fpregs_<mode>): Add use of r11.
1982         (*restore_gpregs_<mode>): New insn.
1983         (*return_and_restore_gpregs_<mode>): New insn.
1984         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
1985         use r11.
1986         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
1987         (*restore_gpregs_spe): New insn.
1988         (*return_and_restore_gpregs_spe): New insn.
1989         * config/rs6000/predicates.md (save_world_operation): Fix check.
1990
1991 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1992
1993         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
1994         this point, so assert that.
1995
1996 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
1997
1998         * cfganal.c: Include vec.h and vecprim.h.
1999         (compute_idf): Import from...
2000         * tree-into-ssa (compute_idf): ...here.
2001         * basic-block.h (compute_idf): Export.
2002
2003 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
2004
2005         * c-decl.c (merge_decls): Use !current_function_decl to check for
2006         extern declaration of C99 inline function being at file scope.
2007
2008 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
2009
2010         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
2011
2012 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2013
2014         * alias.c (record_alias_subset, init_alias_analysis): Fix
2015         -Wc++-compat and/or -Wcast-qual warnings.
2016         * attribs.c (lookup_attribute_spec): Likewise.
2017         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
2018         copy_bb, connect_traces,
2019         find_rarely_executed_basic_blocks_and_cr): Likewise.
2020         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
2021         note_btr_set, migrate_btr_defs): Likewise.
2022         * builtins.c (result_vector, expand_builtin_memcpy,
2023         expand_builtin_mempcpy_args, expand_builtin_strncpy,
2024         builtin_memset_read_str, expand_builtin_printf,
2025         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
2026         Likewise.
2027         * caller-save.c (mark_set_regs): Likewise.
2028         * calls.c (expand_call, emit_library_call_value_1): Likewise.
2029         * cgraph.c (cgraph_edge): Likewise.
2030         * combine.c (likely_spilled_retval_1): Likewise.
2031         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
2032         htab_counts_entry_del, get_coverage_counts): Likewise.
2033         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
2034         new_cselib_val): Likewise.
2035         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
2036         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
2037         Likewise.
2038         * df-core.c (df_compact_blocks): Likewise.
2039         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
2040         * df-scan.c (df_grow_reg_info, df_ref_create,
2041         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
2042         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
2043         df_record_entry_block_defs, df_record_exit_block_uses,
2044         df_bb_verify): Likewise.
2045         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
2046         DF_REF_EXTRACT_MODE_CONST): New.
2047         * dominance.c (get_immediate_dominator, get_dominated_by,
2048         nearest_common_dominator, root_of_dom_tree,
2049         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
2050         -Wc++-compat and/or -Wcast-qual warnings.
2051         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
2052         record_store, replace_read, check_mem_read_rtx, scan_insn,
2053         dse_step1, dse_record_singleton_alias_set): Likewise.
2054         * dwarf2asm.c (dw2_force_const_mem): Likewise.
2055
2056 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2057
2058         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
2059         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
2060         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
2061         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
2062         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
2063         add_ranges_num, add_ranges_by_labels, file_info_cmp,
2064         file_name_acquire, output_file_names, add_const_value_attribute,
2065         premark_used_types_helper, file_table_eq, file_table_hash,
2066         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
2067         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
2068         -Wcast-qual warnings.
2069         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
2070         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
2071         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
2072         gen_reg_rtx, start_sequence, init_emit): Likewise.
2073         * et-forest.c (et_new_occ, et_new_tree): Likewise.
2074         * except.c (init_eh_for_function, gen_eh_region,
2075         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
2076         arh_to_landing_pad, arh_to_label, add_action_record,
2077         add_call_site, switch_to_exception_section): Likewise.
2078         * expmed.c (synth_mult): Likewise.
2079         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
2080         store_expr): Likewise.
2081         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
2082         Likewise.
2083         * function.c (assign_stack_temp_for_type,
2084         allocate_struct_function, match_asm_constraints_1): Likewise.
2085         * gcov-io.c (gcov_allocate): Likewise.
2086         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
2087         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
2088         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
2089         record_one_set, insert_expr_in_table, insert_set_in_table,
2090         dump_hash_table, compute_hash_table_work, alloc_hash_table,
2091         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
2092         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
2093         -Wcast-qual warnings.
2094
2095 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2096
2097         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
2098         -Wcast-qual warnings.
2099         * gcc.c (process_command): Likewise.
2100         * genattrtab.c (oballoc): Use XOBNEW.
2101         (oballocvec): Define.
2102         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
2103         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
2104         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
2105         -Wc++-compat and/or -Wcast-qual warnings.
2106         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
2107         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
2108         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
2109         gen_presence_absence_set, gen_automaton, gen_regexp_el,
2110         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
2111         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
2112         add_excls, process_presence_absence_names,
2113         process_presence_absence_patterns, add_presence_absence,
2114         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
2115         get_free_state, add_arc, get_free_automata_list_el,
2116         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
2117         transform_3, cache_presence, create_ainsns, create_automata,
2118         create_state_ainsn_table, dfa_insn_code_enlarge,
2119         output_trans_func, output_min_issue_delay_func,
2120         output_dead_lock_func, output_reset_func,
2121         output_get_cpu_unit_code_func, output_dfa_start_func,
2122         expand_automata): Likewise.
2123         * genextract.c (gen_insn): Likewise.
2124         * gengtype-lex.l: Likewise.
2125         * gengtype.c (read_input_list, adjust_field_type,
2126         process_gc_options): Likewise.
2127         * genoutput.c (note_constraint): Likewise.
2128         * genpreds.c (mangle, add_constraint): Likewise.
2129         * genrecog.c (process_define_predicate, new_decision,
2130         add_to_sequence): Likewise.
2131         * gensupport.c (record_insn_name): Likewise.
2132
2133 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2134
2135         * config/i386/driver-i386.c (detect_caches_amd,
2136         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
2137         and/or -Wcast-qual warnings.
2138         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
2139         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
2140         gt_pch_save): Likewise.
2141         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
2142         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
2143         * global.c (compute_regsets): Likewise.
2144         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
2145         finish_graph_dump_file): Likewise.
2146         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
2147         unlink_bb_notes): Likewise.
2148         * integrate.c (get_hard_reg_initial_val): Likewise.
2149         * ipa-prop.c (ipa_push_func_to_list): Likewise.
2150         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
2151         * local-alloc.c (update_equiv_regs): Likewise.
2152         * loop-invariant.c (check_invariant_table_size,
2153         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
2154         Likewise.
2155         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
2156         altered_reg_used, mark_altered): Likewise.
2157         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
2158         insert_var_expansion_initialization,
2159         combine_var_copies_in_loop_exit, apply_opt_in_copies,
2160         release_var_copies): Likewise.
2161         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
2162         analyze_matrix_decl, add_allocation_site, analyze_transpose,
2163         analyze_accesses_for_phi_node, check_var_notmodified_p,
2164         check_allocation_function, find_sites_in_func,
2165         record_all_accesses_in_func, transform_access_sites,
2166         transform_allocation_sites): Likewise.
2167         * omp-low.c (new_omp_region, create_omp_child_function_name,
2168         check_omp_nesting_restrictions, check_combined_parallel,
2169         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
2170         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
2171         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
2172         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
2173         Likewise.
2174         * opts-common.c (prune_options): Likewise.
2175         * opts.c (add_input_filename, print_filtered_help,
2176         get_option_state): Likewise.
2177         * params.c (add_params): Likewise.
2178         * passes.c (set_pass_for_id, next_pass_1,
2179         do_per_function_toporder, pass_fini_dump_file): Likewise.
2180         * postreload.c (reload_cse_simplify_operands): Likewise.
2181         * predict.c (tree_predicted_by_p, tree_predict_edge,
2182         clear_bb_predictions, combine_predictions_for_bb): Likewise.
2183
2184 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2185
2186         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
2187         warnings.
2188         * recog.c (check_asm_operands, validate_change_1): Likewise.
2189         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
2190         subst_asm_stack_regs): Likewise.
2191         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
2192         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
2193         * regmove.c (reg_is_remote_constant_p): Likewise.
2194         * regrename.c (regrename_optimize, scan_rtx_reg,
2195         kill_clobbered_value, kill_set_value, kill_autoinc_value):
2196         Likewise.
2197         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
2198         regstat_compute_calls_crossed): Likewise.
2199         * reload1.c (init_reload, new_insn_chain,
2200         has_nonexceptional_receiver, reload, copy_reloads,
2201         calculate_needs_all_insns, init_elim_table): Likewise.
2202         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
2203         * rtl.c (shallow_copy_rtx_stat): Likewise.
2204         * rtlanal.c (parms_set): Likewise.
2205         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
2206         sbitmap_resize, sbitmap_vector_alloc): Likewise.
2207         * sched-ebb.c (earliest_block_with_similiar_load,
2208         add_deps_for_risky_insns): Likewise.
2209         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
2210         schedule_region): Likewise.
2211         * see.c (eq_descriptor_pre_extension,
2212         hash_descriptor_pre_extension, hash_del_pre_extension,
2213         eq_descriptor_properties, hash_descriptor_properties,
2214         hash_del_properties, see_seek_pre_extension_expr,
2215         see_initialize_data_structures, see_print_register_properties,
2216         see_print_pre_extension_expr, see_delete_merged_def_extension,
2217         see_delete_unmerged_def_extension, see_emit_use_extension,
2218         see_pre_delete_extension, see_map_extension, see_commit_changes,
2219         see_analyze_merged_def_local_prop,
2220         see_analyze_merged_def_local_prop,
2221         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
2222         see_set_prop_merged_def, see_set_prop_unmerged_def,
2223         see_set_prop_unmerged_use, see_print_one_extension,
2224         see_merge_one_use_extension, see_merge_one_def_extension,
2225         see_store_reference_and_extension, see_update_uses_relevancy,
2226         see_update_defs_relevancy): Likewise.
2227         * statistics.c (hash_statistics_hash, hash_statistics_eq,
2228         hash_statistics_free, curr_statistics_hash): Likewise.
2229         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
2230         expand_asm_operands, expand_return, case_bit_test_cmp,
2231         expand_case): Likewise.
2232         * stor-layout.c (start_record_layout): Likewise.
2233         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
2234         gt_pch_save_stringpool): Likewise.
2235         * tree-data-ref.c (hash_stmt_vertex_info,
2236         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
2237         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
2238
2239 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
2240
2241         PR target/36627
2242         * config/i386/i386.md : Change constraints of HImode and QImode
2243         immediate operands from "i" to "n".  Change SImode "ni" constraint to
2244         "i" and SImode "rmi" constraint to "g".  Remove all constraints
2245         from const0_operand and const1_operand predicated operands.
2246         (i): Change QImode and HImode attribute from "i" to "n".
2247         (*subqi_2): Change HImode operands to QImode.
2248         (*subqi_3): Ditto.
2249
2250 2008-06-25  Olivier Hainque  <hainque@adacore.com>
2251
2252         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
2253         sed substitutions.
2254
2255 2008-06-25  Richard Guenther  <rguenther@suse.de>
2256
2257         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
2258         not overflow the result type.
2259
2260 2008-06-25  Richard Guenther  <rguenther@suse.de>
2261
2262         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
2263         (vn_lookup): Likewise.
2264
2265 2008-06-25  Richard Guenther  <rguenther@suse.de>
2266
2267         PR tree-optimization/35518
2268         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
2269         * tree-sra.c (instantiate_element): Use fold_build3 to build
2270         BIT_FIELD_REFs.
2271         (try_instantiate_multiple_fields): Likewise.
2272
2273 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2274
2275         * config/rs6000/rs6000.md: Change all string instruction's clobber to
2276         be early clobbers.
2277
2278 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2279
2280         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
2281         use_backchain_to_restore_sp to true
2282         if the offset of the link register save area would go over the 32k - 1
2283         offset limit of the load
2284         instructions.
2285
2286 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
2287
2288         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
2289         anchor for the type-punning blurb.  Cross-reference "Structures
2290         unions enumerations and bit-fields implementation".  Provide a
2291         cast-through-pointer example.  Make final sentence self-contained.
2292         * doc/implement-c.texi (Structures unions enumerations and
2293         bit-fields implementation): Cross-reference the type-punning blurb
2294         in the -fstrict-aliasing documentation.
2295
2296 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2297
2298         PR middle-end/36594
2299         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
2300         the memory instead of the memory itself for the save area.
2301
2302 2008-06-24  Olivier Hainque  <hainque@adacore.com>
2303             Nicolas Roche  <roche@adacore.com>
2304
2305         * gengtype.c (srcdir_len): size_t instead of int.
2306         (get_file_realbasename): New function.  For F a filename, the real
2307         basename of F, with all the path components stripped.
2308         (get_file_srcdir_relative_path): New function.  For F a filename, the
2309         relative path to F from $(srcdir).
2310         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
2311         get_file_realbasename.  Adjust the head comment.
2312         (get_prefix_langdir_index): New function. For F a filename, return the
2313         lang_dir_names[] relative index of the language directory that is
2314         a prefix in F.
2315         (get_file_langdir): For F a filename, return the name of the language
2316         directory where F is located.
2317         (get_file_gtfilename): New function. The gt- output file name for an
2318         input filename F.
2319         (get_output_file_with_visibility): Replace in-line computations with
2320         uses of get_file_gtfilename and get_prefix_langdir_index.
2321         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
2322
2323 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
2324
2325         PR tree-optimization/36504
2326         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
2327         references without base address.
2328
2329 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2330
2331         PR middle-end/36584
2332         * calls.c (expand_call): Increase alignment for recursive functions.
2333
2334 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
2335
2336         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
2337         (TARGET_FUNCTION_VALUE): New define.
2338         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
2339         * config/avr/avr.h (FUNCTION_VALUE): Remove.
2340
2341 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2342
2343         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
2344         (fmod<mode>3): Ditto.
2345         (remainderxf3): Ditto.
2346         (remainder<mode>3): Ditto.
2347
2348 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
2349
2350         PR target/36533
2351         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
2352         REG is a hard register.
2353
2354         PR tree-optimization/36508
2355         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
2356         499, don't check it at all in release compilers.
2357
2358 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
2359
2360         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
2361         together with SSE_TARGET_MATH to disable insn pattern.
2362         (*fop_<MODEF:mode>_2_i387): Ditto.
2363         (*fop_<MODEF:mode>_3_i387): Ditto.
2364
2365 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
2366
2367         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
2368         
2369 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2370
2371         PR middle-end/34906
2372         * gimplify.c (gimplify_asm_expr): Check the return code of
2373         parse_output_constraint call, set function return and is_inout
2374         value if it failed.
2375
2376 2008-06-22  Ian Lance Taylor  <iant@google.com>
2377
2378         * c-lex.c (narrowest_unsigned_type): Change itk to int.
2379         (narrowest_signed_type): Likewise.
2380         * c-typeck.c (c_common_type): Change local variable mclass to enum
2381         mode_class, twice.
2382         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
2383         tcc_comparison, not the tree code itself.
2384         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
2385         (c_expand_expr): Cast modifier to enum expand_modifier.
2386         * c-common.h (C_RID_CODE): Add casts.
2387         (C_SET_RID_CODE): Define.
2388         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
2389         (c_lex_one_token): Add cast to avoid warning.
2390         (c_parser_objc_type_name): Rename local typename to type_name.
2391         (check_no_duplicate_clause): Change code parameter to enum
2392         omp_clause_code.
2393         (c_parser_omp_var_list_parens): Change kind parameter to enum
2394         omp_clause_code.
2395         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
2396         c_parser_omp_list_var_parens.
2397         (c_parser_omp_threadprivate): Likewise.
2398         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
2399         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
2400         * c-format.c (NO_FMT): Define.
2401         (printf_length_specs): Use NO_FMT.
2402         (asm_fprintf_length_specs): Likewise.
2403         (gcc_diag_length_specs): Likewise.
2404         (scanf_length_specs): Likewise.
2405         (strfmon_length_specs): Likewise.
2406         (gcc_gfc_length_specs): Likewise.
2407         (printf_flag_specs): Change 0 to STD_C89.
2408         (asm_fprintf_flag_specs): Likewise.
2409         (gcc_diag_flag_specs): Likewise.
2410         (gcc_cxxdiag_flag_specs): Likewise.
2411         (scanf_flag_specs): Likewise.
2412         (strftime_flag_specs): Likewise.
2413         (strfmon_flag_specs): Likewise.
2414         (print_char_table): Likewise.
2415         (asm_fprintf_char_table): Likewise.
2416         (gcc_diag_char_table): Likewise.
2417         (gcc_tdiag_char_table): Likewise.
2418         (gcc_cdiag_char_table): Likewise.
2419         (gcc_cxxdiag_char_table): Likewise.
2420         (gcc_gfc_char_table): Likewise.
2421         (scan_char_table): Likewise.
2422         (time_char_table): Likewis.
2423         (monetary_char_table): Likewise.
2424         * c-format.h (BADLEN): Likewise.
2425
2426 2008-06-21  Ian Lance Taylor  <iant@google.com>
2427
2428         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
2429         Define END_OF_BASE_TREE_CODES around inclusion.
2430         * tree.c (tree_code_type): New global array.
2431         (tree_code_length, tree_code_name): Likewise.
2432         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
2433         $(lang_tree_files).
2434         (all-tree.def, s-alltree): New targets.
2435         (gencheck.h, s-gencheck): Remove.
2436         (tree.o): Depend upon all-tree.def.
2437         (build/gencheck.o): Remove gencheck.h dependency.
2438         (mostlyclean): Don't remove gencheck.h.
2439         * c-common.h (enum c_tree_code): Remove.
2440         * c-lang.c (tree_code_type): Remove.
2441         (tree_code_length, tree_code_name): Remove.
2442         * gencheck.c (tree_codes): Include all-tree.def, rather than
2443         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
2444         after it is used.
2445         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
2446         than tree.def.
2447         * cp/cp-tree.h (enum cplus_tree_code): Remove.
2448         (operator_name_info): Size to MAX_TREE_CODES.
2449         (assignment_operator_name_info): Likewise.
2450         * cp/cp-lang.c (tree_code_type): Remove.
2451         (tree_code_length, tree_code_name): Remove.
2452         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
2453         (assignment_operator_name_info): Likewise.
2454         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
2455         MAX_TREE_CODES.
2456         * cp/mangle.c (write_expression): Likewise.
2457         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
2458         * fortran/f95-lang.c (tree_code_type): Remove.
2459         (tree_code_length, tree_code_name): Remove.
2460         * java/java-tree.h (enum java_tree_code): Remove.
2461         * java/lang.c (tree_code_type): Remove.
2462         (tree_code_length, tree_code_name): Remove.
2463         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
2464         * objc/objc-act.h (enum objc_tree_code): Remove.
2465         * objc/objc-lang.c (tree_code_type): Remove.
2466         (tree_code_length, tree_code_name): Remove.
2467         * objcp/objcp-lang.c (tree_code_type): Remove.
2468         (tree_code_length, tree_code_name): Remove.
2469         * ada/ada-tree.h (enum gnat_tree_code): Remove.
2470         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
2471         * ada/misc.c (tree_code_type): Remove.
2472         (tree_code_length, tree_code_name): Remove.
2473
2474 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2475
2476         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
2477         the grand_bitmap_obstack.
2478
2479 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2480
2481         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
2482         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
2483         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
2484         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
2485         move_stmt_r, new_label_mapper): Likewise.
2486         * tree-complex.c (cvc_lookup): Likewise.
2487         * tree-dfa.c (create_function_ann): Likewise.
2488         * tree-dump.c (dump_register): Likewise.
2489         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
2490         find_phi_replacement_condition): Likewise.
2491         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
2492         tree_function_versioning): Likewise.
2493         * tree-into-ssa.c (cmp_dfsnum): Likewise.
2494         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
2495         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
2496         get_nonlocal_debug_decl, convert_nonlocal_reference,
2497         convert_nonlocal_omp_clauses, get_local_debug_decl,
2498         convert_local_reference, convert_local_omp_clauses,
2499         convert_nl_goto_reference, convert_nl_goto_receiver,
2500         convert_tramp_reference, convert_call_expr): Likewise.
2501         * tree-outof-ssa.c (contains_tree_r): Likewise.
2502         * tree-parloops.c (reduction_phi, initialize_reductions,
2503         eliminate_local_variables_1, add_field_for_reduction,
2504         add_field_for_name, create_phi_for_local_result,
2505         create_call_for_reduction_1, create_loads_for_reductions,
2506         create_stores_for_reduction, create_loads_and_stores_for_name):
2507         Likewise.
2508         * tree-phinodes.c (allocate_phi_node): Likewise.
2509         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
2510         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
2511         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
2512         * tree-ssa-coalesce.c (compare_pairs): Likewise.
2513         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
2514         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
2515         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
2516         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
2517         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
2518         vn_nary_op_insert): Likewise.
2519         * tree-ssa.c (redirect_edge_var_map_add,
2520         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
2521         * tree-vectorizer.c (vectorize_loops): Likewise.
2522         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
2523         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
2524         tree_cons_stat, build1_stat, build_variant_type_copy,
2525         decl_init_priority_lookup, decl_fini_priority_lookup,
2526         decl_priority_info, decl_restrict_base_lookup,
2527         decl_restrict_base_insert, decl_debug_expr_lookup,
2528         decl_debug_expr_insert, decl_value_expr_lookup,
2529         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
2530         type_hash_add, get_file_function_name, tree_check_failed,
2531         tree_not_check_failed, tree_range_check_failed,
2532         omp_clause_range_check_failed, build_omp_clause,
2533         build_vl_exp_stat): Likewise.
2534         * value-prof.c (gimple_histogram_value,
2535         gimple_duplicate_stmt_histograms): Likewise.
2536         * var-tracking.c (attrs_list_insert, attrs_list_copy,
2537         unshare_variable, variable_union_info_cmp_pos, variable_union,
2538         dataflow_set_different_1, dataflow_set_different_2,
2539         vt_find_locations, variable_was_changed, set_variable_part,
2540         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
2541         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
2542         section_entry_hash, object_block_entry_eq,
2543         object_block_entry_hash, create_block_symbol,
2544         initialize_cold_section_name, default_function_rodata_section,
2545         strip_reg_name, set_user_assembler_name, const_desc_eq,
2546         build_constant_desc, output_constant_def, lookup_constant_def,
2547         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
2548         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
2549         default_internal_label): Likewise.
2550         * varray.c (varray_init, varray_grow): Likewise.
2551         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
2552
2553 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
2554
2555         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
2556         operators for "test" insn.  Macroize insn using SWI mode macro.
2557         (*jcc_fused_2): Ditto.
2558         (*jcc_fused_3): Macroize insn using SWI mode macro.
2559         (*jcc_fused_4): Ditto.
2560
2561 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
2562
2563         * tree-ssa-pre.c: Fix typo in comment.
2564         (init_antic, fini_antic): Add explicit funtions for
2565         initializing and deinitializing ANTIC and AVAIL sets.
2566         (create_expression_by_pieces): Fix typo in comment.
2567         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
2568         (execute_pre): Eventually dump details about ANTIC_IN.
2569
2570 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2571
2572         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
2573         * gcc.c (translate_options, init_spec, store_arg, read_specs,
2574         add_to_obstack, file_at_path, find_a_file, execute,
2575         add_preprocessor_option, add_assembler_option, add_linker_option,
2576         process_command, insert_wrapper, do_option_spec, do_self_spec,
2577         spec_path, do_spec_1, is_directory, main, used_arg,
2578         getenv_spec_function): Likewise.
2579         * tlink.c (symbol_hash_lookup, file_hash_lookup,
2580         demangled_hash_lookup, symbol_push, file_push, frob_extension):
2581         Likewise.
2582
2583 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
2584
2585         * doc/rtl.texi: Updated subreg section.
2586
2587 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2588
2589         PR c++/36523
2590         * cgraphunit.c (cgraph_process_new_functions): Don't clear
2591         node->needed and node->reachable.
2592         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
2593         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
2594         (expand_task_call): Don't call expand_task_copyfn.
2595         (expand_task_copyfn): Renamed to...
2596         (finalize_task_copyfn): ... this.
2597
2598 2008-06-19  Jan Hubicka  <jh@suse.cz>
2599
2600         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
2601         clobbering framepointer.
2602
2603 2008-06-19  Jan Hubicka  <jh@suse.cz>
2604
2605         * tree-optimize.c (execute_early_local_optimizations): Set
2606         cgraph_state only at first invocation.
2607
2608 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2609
2610         * system.h (-Wc++-compat): Activate as a warning, no an error.
2611
2612 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2613
2614         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
2615         instead of "#" in insn asm template.
2616         (*jcc_fused_2): Ditto.
2617
2618 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
2619
2620         * config/i386/i386.h (ix86_tune_indices)
2621         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
2622         (TARGET_FUSE_CMP_AND_BRANCH): New define.
2623         * config/i386/i386.md (*jcc_fused_1): New insn pattern
2624         (*jcc_fused_2): Ditto.
2625         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
2626         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
2627         (print operand): Handle 'E' and 'e' code.
2628
2629 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
2630
2631         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
2632         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2633         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2634
2635 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
2636
2637         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
2638         node->decl.
2639         (cgraph_expand_function): Use local copy of decl.
2640         (cgraph_expand_all_functions): Remove redundant initialization of
2641         order_pos.
2642         (cgraph_optimize): Reword internal_error message.
2643
2644 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
2645
2646         * arm-protos.h (arm_return_in_memory): Remove public
2647         arm_return_in_memory() prototype.
2648         * arm.c (arm_return_in_memory): Add static prototype, add target
2649         hook macro, change definition and comments.
2650         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
2651
2652 2008-06-19  Ben Elliston  <bje@au.ibm.com>
2653
2654         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
2655         real.c: Remove references to IEEE 754R.
2656         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
2657         * doc/libgcc.texi (Decimal float library routines): Likewise.
2658
2659 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2660
2661         * targhooks.h (struct gcc_target): New member unwind_word_mode.
2662         (default_unwind_word_mode): Add prototype.
2663         * targhooks.c (default_unwind_word_mode): New function.
2664         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
2665         instead of word_mode.
2666         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
2667         (TARGET_INITIALIZER): Use it.
2668
2669         * c-common.c (handle_mode_attribute): Support "unwind_word"
2670         mode attribute.
2671         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
2672
2673         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
2674         word_mode to access SjLj_Function_Context member "data".
2675         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
2676         conversion from targetm.eh_return_filter_mode () to
2677         targetm.unwind_word_mode () if they differ.
2678
2679         * builtin-types.def (BT_UNWINDWORD): New primitive type.
2680         (BT_FN_UNWINDWORD_PTR): New function type.
2681         (BT_FN_WORD_PTR): Remove.
2682         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
2683         * except.c (expand_builtin_extend_pointer): Convert pointer to
2684         targetm.unwind_word_mode () instead of word_mode.
2685
2686         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
2687         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
2688         (spu_unwind_word_mode): New function.
2689         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
2690         (TARGET_UNWIND_WORD_MODE): Define.
2691         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
2692
2693 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2694
2695         * config/spu/spu.c (reg_align): Remove.
2696         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
2697         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
2698         (spu_split_store): Likewise.
2699
2700 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
2701
2702         * gcc/tree-vn.c: Fix typo in comment.
2703
2704 2008-06-18  Jan Hubicka  <jh@suse.cz>
2705
2706         * cgraphunit.c (cgraph_optimize): Output debug info when doing
2707         toplevel reorder too.
2708
2709 2008-06-18  Jan Hubicka  <jh@suse.cz>
2710
2711         * c-opts.c (c_common_post_options): PCH is not compatible with
2712         no-unit-at-a-time.
2713         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
2714         -fno-toplevel-reorder by default now.
2715
2716 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2717
2718         PR documentation/30739
2719         * doc/install.texi (Prerequisites): Document dependency on awk.
2720
2721 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
2722             Ian Lance Taylor  <iant@google.com>
2723
2724         PR rtl-optimization/35604
2725         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
2726         only want to change jump destinations, not eventual label comparisons.
2727
2728 2008-06-16  Jan Hubicka  <jh@suse.cz>
2729
2730         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
2731         syntax errors.
2732         (cgraph_analyze_function): Likewise.
2733
2734 2008-06-16  Jan Hubicka  <jh@suse.cz>
2735
2736         * cgraph.h (cgraph_mark_if_needed): New function.
2737         * cgraphunit.c (cgraph_mark_if_needed): New function.
2738         * c-decl.c (duplicate_decl): Use it.
2739
2740 2008-06-16  Jan Hubicka  <jh@suse.cz>
2741
2742         * cgraph.c (cgraph_add_new_function): When in expansion state, do
2743         lowering.
2744
2745 2008-06-16  Jan Hubicka  <jh@suse.cz>
2746
2747         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
2748
2749 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
2750             Kazu Hirata  <kazu@codesourcery.com>
2751             Maxim Kuvyrkov  <maxim@codesourcery.com
2752
2753         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
2754         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
2755         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
2756         EXTRA_SPEC_FUNCTIONS.
2757         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
2758         (DRIVER_SELF_SPECS): Adjust.
2759         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
2760         * config/mips/st.h, config/mips/t-st: New.
2761         * config/mips/driver-native.c, config/mips/x-native: New.
2762         * doc/invoke.texi (MIPS): Document 'native' value for -march and
2763         -mtune options.
2764
2765 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2766
2767         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
2768         from it.
2769         (ISA_HAS_FP_CONDMOVE): New macro.
2770         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
2771         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
2772         (ISA_HAS_NMADD3_NMSUB3): New macro.
2773         * config/mips/mips.c (mips_rtx_costs): Update.
2774         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
2775         compiling for ST Loongson 2E/2F.
2776         (madd<mode>): Rename to madd4<mode>.  Update.
2777         (madd3<mode>): New pattern.
2778         (msub<mode>): Rename to msub4<mode>.  Update.
2779         (msub3<mode>): New pattern.
2780         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
2781         (nmadd3<mode>): New pattern.
2782         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
2783         (nmadd3<mode>_fastmath): New pattern.
2784         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
2785         (nmsub3<mode>): New pattern.
2786         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
2787         (nmsub3<mode>_fastmath): New pattern.
2788         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
2789
2790 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
2791
2792         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
2793         (DF_REF_INSN_INFO): New.
2794         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
2795         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
2796         with a NULL DF_REF_INSN_INFO.
2797         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
2798         DF_INSN_SET.
2799         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
2800         DF_INSN_INFO_EQ_USES): New.
2801         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
2802         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
2803         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
2804         * df-core.c: Update comment for above changes.
2805         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
2806         DF_INSN_UID_* macros.
2807         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
2808         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
2809         insn rtx.  Update all callers.
2810         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
2811         df_ref_create_structure, df_insn_refs_collect): Likewise.
2812         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
2813         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
2814         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
2815         macros to access the insn refs.
2816         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
2817         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
2818         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
2819         for accessing the refs.
2820         (try_fwprop_subst): Likewise.
2821         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
2822         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
2823         for accessing the refs.
2824         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
2825         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
2826         to look at the insn refs.
2827         (record_uses): Likewise.
2828         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
2829         function anymore.
2830         (mark_artificial_uses): Don't mark_insn for artificial refs.
2831         (mark_reg_rependencies): Likewise.
2832
2833         * doc/rtl.texi: Remove documentation of ADDRESSOF.
2834
2835 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2836
2837         * configure: Regenerate.
2838
2839 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2840
2841         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
2842         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2843         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2844
2845 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2846
2847         * config/avr/avr.c (avr_mcu_t): Add attiny167.
2848         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2849         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2850
2851 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
2852
2853         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
2854         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
2855         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2856
2857 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
2858
2859         * tree-ssa-sccvn.c: Fix format of comments.
2860
2861 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
2862
2863         * cgraph.c: Remove unneeded forward declarations of eq_node()
2864         and hash_node().
2865
2866 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
2867
2868         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
2869         REG_RETVAL notes.
2870         (see_update_relevancy): Likewise.
2871         * fwprop.c (try_fwprop_subst): Likewise.
2872         * rtlanal.c (noop_move_p): Likewise.
2873         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
2874         notes to non-existing libcall blocks.
2875         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
2876         Remove orig_set.
2877         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
2878         (dead_libcall_p): Remove.
2879         (delete_trivially_dead_insns): Don't use it.
2880         * web.c (union_defs): Remove comment about keeping nops.
2881         * gcse.c (hash_scan_insn): Don't take libcall pointers.
2882         (compute_hash_table_work): Don't track libcall notes.
2883         (do_local_cprop): Don't take libcall pointers.  Don't update
2884         libcall notes.
2885         (adjust_libcall_notes): Deleted.
2886         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
2887         ever have existed in the first place).
2888         (replace_store_insn): Don't try to remove libcall notes.
2889         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
2890         (resolve_reg_notes): Don't call them.
2891         (resolve_simple_move): Likewise.
2892         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
2893         Don't remove REG_RETVAL notes.
2894         * emit-rtl.c (try_split): Don't update libcall notes.
2895         (emit_copy_of_insn_after): Dito.
2896         * cselib.c (cselib_current_insn_in_libcall): Remove.
2897         (cselib_process_insn): Don't set/clear it.
2898         (new_elt_loc_list): Don't record it.
2899         (cselib_init): Don't initialize it.
2900         * cselib.c (struct elt_loc_list): Remove in_libcall field.
2901         * loop-invariant.c (find_invariant_insn): Don't look for libcall
2902         notes.
2903         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
2904         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
2905         (init_deps): Don't initialize it.
2906         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
2907         * combine.c (delete_noop_moves): Don't update libcall notes.
2908         (can_combine_p): Remove now pointless #if 0 block.
2909         (try_combine): Remove another obsolete #if 0 block.
2910         (distribute_notes): Don't distribute libcall notes.
2911         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
2912         * dce.c (libcall_dead_p): Remove.
2913         (delete_unmarked_insns): Don't handle libcall blocks.
2914         (preserve_libcall_for_dce): Remove.
2915         (prescan_insns_for_dce): Don't special-case libcall block insns.
2916         * reload1 (reload): Don't handle libcall notes. 
2917         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
2918         documentation.
2919
2920 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
2921
2922         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
2923         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2924         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
2925
2926 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
2927
2928         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
2929         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
2930         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
2931
2932 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2933
2934         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
2935
2936 2008-06-16  Ira Rosen  <irar@il.ibm.com>
2937
2938         PR tree-optimization/36493
2939         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
2940         the arguments list. Use VECTYPE to create vector pointer.
2941         (vectorizable_store): Fail if accesses through a pointer to vectype
2942         do not alias the original memory reference operands.
2943         Call vect_create_data_ref_ptr without the removed argument.
2944         (vectorizable_load): Likewise.
2945         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
2946         removed argument.
2947
2948 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
2949
2950         PR target/36336
2951         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
2952         reg_equiv_constant.
2953
2954 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2955
2956         * config/mips/loongson2ef.md: New file.
2957         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
2958         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
2959         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
2960         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
2961         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
2962         and loongson_2f.
2963         (loongson2ef.md): New include.
2964         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
2965         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
2966         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
2967         (loongson_gt_<mode>, loongson_extract_halfword)
2968         (loongson_insert_halfword_0, loongson_insert_halfword_2)
2969         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
2970         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
2971         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
2972         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
2973         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
2974         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
2975         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
2976         (vec_interleave_low<mode>): Define type attribute.
2977         * config/mips/mips.c (mips_ls2): New static variable.
2978         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
2979         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
2980         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
2981         Implement target scheduling hooks.
2982         (mips_multipass_dfa_lookahead): Update to handle tuning for
2983         Loongson 2E/2F.
2984         (mips_sched_init): Initialize data for Loongson scheduling.
2985         (mips_ls2_variable_issue): New static function.
2986         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
2987         Add sanity check.
2988         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
2989         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
2990         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
2991         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
2992         Handle ST Loongson 2E/2F cores.
2993         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
2994
2995 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2996
2997         * omp-low.c (extract_omp_for_data): Fix comment typo.
2998         * c.opt: Fix typo.
2999
3000 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3001
3002         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
3003         FIXME note about gcc/config.guess.
3004         * doc/options.texi (Option file format): Remove non-ASCII bytes.
3005         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
3006         * doc/cppopts.texi: Likewise.
3007         * doc/extend.texi: Likewise.
3008         * doc/gcc.texi: Likewise.
3009         * doc/gccint.texi: Likewise.
3010         * doc/gcov.texi: Likewise.
3011         * doc/gty.texi: Likewise.
3012         * doc/hostconfig.texi: Likewise.
3013         * doc/install.texi: Likewise.
3014         * doc/invoke.texi: Likewise.
3015         * doc/loop.texi: Likewise.
3016         * doc/makefile.texi: Likewise.
3017         * doc/md.texi: Likewise.
3018         * doc/passes.texi: Likewise.
3019         * doc/tm.texi: Likewise.
3020         * doc/tree-ssa.texi: Likewise.
3021         * doc/trouble.texi: Likewise.
3022
3023 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
3024             Nathan Sidwell  <nathan@codesourcery.com>
3025             Maxim Kuvyrkov  <maxim@codesourcery.com>
3026             Richard Sandiford  <rdsandiford@googlemail.com>
3027         
3028         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
3029         * config/mips/mips-protos.h (mips_expand_vector_init): New.
3030         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
3031         builtins.
3032         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
3033         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
3034         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
3035         V8QImode cases.
3036         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
3037         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
3038         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
3039         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
3040         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
3041         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
3042         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
3043         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
3044         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
3045         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
3046         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
3047         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
3048         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
3049         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
3050         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
3051         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
3052         (mips_builtins): Add Loongson builtins.
3053         (mips_loongson_2ef_bdesc): New.
3054         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
3055         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
3056         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
3057         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
3058         New.
3059         (mips_expand_vector_init): New.
3060         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
3061         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
3062         if appropriate.
3063         * config/mips/mips.md: Add unspec numbers for Loongson
3064         builtins.  Include loongson.md.
3065         (MOVE64): Include Loongson vector modes.
3066         (SPLITF): Include Loongson vector modes.
3067         (HALFMODE): Handle Loongson vector modes.
3068         * config/mips/loongson.md: New.
3069         * config/mips/loongson.h: New.
3070         * config.gcc: Add loongson.h header for mips*-*-* targets.
3071         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
3072
3073 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
3074
3075         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
3076         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
3077         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
3078         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
3079         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
3080         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
3081         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
3082         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
3083         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
3084         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
3085         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
3086         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
3087         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
3088         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
3089         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
3090         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
3091         Remove use_fixproto=yes.
3092         (ia64*-*-hpux*): Remove comment about using fixproto.
3093         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
3094
3095 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3096
3097         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
3098         library rebuilds.
3099         * configure: Regenerate.
3100
3101 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
3102
3103         PR middle-end/36520
3104         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
3105         before evaluating it.
3106
3107 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
3108
3109         PR c/36507
3110         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
3111         nested inline functions.
3112         (start_decl, start_function): Don't invert DECL_EXTERNAL
3113         for nested inline functions.
3114
3115 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3116
3117         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
3118         splits that must be made for correctness.
3119
3120 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
3121
3122         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
3123         (AVAIL_NON_MIPS16): Likewise.
3124         (mips_builtin_description): Replace target_flags with a predicate.
3125         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
3126         (dspr2_32): New availability predicates.
3127         (MIPS_BUILTIN): New macro.
3128         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
3129         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
3130         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
3131         Replace the TARGET_FLAGS parameters with AVAIL parameters.
3132         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
3133         (mips_dsp_32only_bdesc): Merge into...
3134         (mips_builtins): ...this new array.
3135         (mips_bdesc_map, mips_bdesc_arrays): Delete.
3136         (mips_init_builtins): Update after above changes.
3137         (mips_expand_builtin_1): Merge into...
3138         (mips_expand_builtin): ...here and update after above changes.
3139
3140 2008-06-12  Paul Brook  <paul@codesourcery.com>
3141
3142         * longlong.h (__arm__): Define count_leading_zeros.
3143         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
3144         (clzsi2, clzdi2): New functions.
3145         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
3146         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
3147         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
3148         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
3149         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
3150         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
3151         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
3152         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
3153         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
3154         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
3155
3156 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
3157
3158         * config/m68k/m68k.c (m68k_tune_flags): New.
3159         (override_options): Compute m68k_tune_flags.
3160         (MULL_COST, MULW_COST): Update for various variants of CFV2.
3161         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
3162
3163 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3164
3165         PR middle-end/36506
3166         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
3167
3168 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3169
3170         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
3171         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
3172
3173 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3174
3175         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
3176         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
3177
3178 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
3179
3180         PR middle-end/36506
3181         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
3182         reductions.
3183
3184 2008-06-12  Richard Guenther  <rguenther@suse.de>
3185
3186         PR tree-optimization/36345
3187         * tree-flow.h (struct ptr_info_def): Align escape_mask,
3188         add memory_tag_needed flag.
3189         (may_alias_p): Declare.
3190         * tree-ssa-alias.c (may_alias_p): Export.
3191         (set_initial_properties): Use memory_tag_needed flag.
3192         (update_reference_counts): Likewise.
3193         (reset_alias_info): Reset memory_tag_needed flag.
3194         (create_name_tags): Check memory_tag_needed flag.
3195         (dump_points_to_info_for): Dump it.
3196         * tree-ssa-structalias.c (struct variable_info): Remove
3197         directly_dereferenced flag.
3198         (new_var_info): Do not initialize it.
3199         (process_constraint_1): Do not set it.
3200         (update_alias_info): Set is_dereferenced flag.
3201         (set_uids_in_ptset): Use may_alias_p.
3202         (set_used_smts): Check memory_tag_needed flag.
3203         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
3204         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
3205         memory_tag_needed flag.
3206         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
3207         from broken design.
3208
3209 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
3210
3211         * config/i386/i386.c (ix86_compute_frame_layout): Disable
3212         red zone for w64 abi.
3213         (ix86_expand_prologue): Likewise.
3214         (ix86_force_to_memory): Likewise.
3215         (ix86_free_from_memory): Likewise.
3216
3217 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
3218
3219         PR target/36425
3220         * config/rs6000/rs6000.c (rs6000_override_options): Set
3221         rs6000_isel conditionally to the absence of comand line override.
3222         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3223         Remove duplicate rs6000_isel setting.
3224         * config/rs6000/eabispe.h: Ditto.
3225
3226 2008-06-11  Richard Guenther  <rguenther@suse.de>
3227
3228         * alias.c (get_alias_set): Use the element alias-set for arrays.
3229         (record_component_aliases): For arrays and vectors do nothing.
3230         * c-common.c (strict_aliasing_warning): Handle the cases
3231         of alias set zero explicitly.
3232         * Makefile.in (dfp.o-warn): Add -Wno-error.
3233
3234 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3235
3236         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
3237         tune_32 tune_64.
3238         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
3239         tune_32 tune_64 to supported_defaults.  Allow values not
3240         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
3241         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
3242         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
3243         with_cpu_64 to generic for 64-bit-supporting configurations, not
3244         with_cpu.  Remove FIXMEs.
3245         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
3246         --with-arch-64, --with-tune-32, --with-tune-64): Document.
3247         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
3248         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
3249         arch_32 and arch_64.
3250
3251 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
3252             Olivier Hainque  <hainque@adacore.com>
3253
3254         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
3255         Use DECL_SIZE_UNIT to retrieve the size of the field.
3256
3257 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
3258
3259         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
3260         with function calls after declarations.  Lay out
3261         neon_float_type_node before further use.
3262
3263 2008-06-11  Richard Guenther  <rguenther@suse.de>
3264
3265         * tree-flow.h (may_point_to_global_var): Declare.
3266         * tree-ssa-alias.c (may_point_to_global_var): New function.
3267         * tree-ssa-sink.c (is_hidden_global_store): Use it.
3268
3269 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
3270
3271         * configure.ac: Teach that fido supports .debug_line.
3272         * configure: Regenerate.
3273
3274 2008-06-10  Tom Tromey  <tromey@redhat.com>
3275
3276         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
3277         debug hook.
3278
3279 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
3280
3281         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
3282         (encode_decimal64, decode_decimal64, encode_decimal128,
3283         decode_decimal128): Reverse order of 32-bit parts of value if host
3284         and target endianness differ.
3285
3286 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
3287
3288         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
3289         Avoid division by 0.
3290         (tree_mod_pow2_value_transform): Likewise.
3291         (tree_ic_transform): Likewise.
3292         (tree_stringops_transform): Likewise.
3293         (tree_mod_subtract_transform): Likewise.
3294         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
3295         (copy_edges_for_bb): Likewise.
3296         (initialize_cfun): Likewise.
3297
3298 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
3299
3300         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
3301         nonmemory_operand. Add "N" operand constraint.
3302         (*btsi): Ditto.
3303         (*jcc_btdi_mask_rex64): New instruction and split pattern.
3304         (*jcc_btsi_mask): Ditto.
3305         (*jcc_btsi_mask_1): Ditto.
3306
3307 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
3308
3309         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
3310         TYPE_CANONICAL for copied element type.
3311
3312 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
3313
3314         PR target/36473
3315         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
3316         Add m_CORE2 and m_GENERIC.
3317         * config/i386/predicates.md (bt_comparison_operator): New predicate.
3318         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
3319         (*btsi): Ditto.
3320         (*jcc_btdi_rex64): New instruction and split pattern.
3321         (*jcc_btsi): Ditto.
3322         (*jcc_btsi_1): Ditto.
3323         (*btsq): Fix Intel asm dialect operand order.
3324         (*btrq): Ditto.
3325         (*btcq): Ditto.
3326
3327 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
3328
3329         PR middle-end/36447
3330         * simplify-rtx.c (simplify_subreg): Add check for shift count 
3331         greater than size.
3332
3333 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
3334
3335         * doc/md.texi: Synchronize with later constraints.md change.
3336         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
3337         with a C implementation.
3338         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
3339         MFLO handling.
3340         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
3341         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
3342         when moving to and from MD_REGNUM.
3343         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
3344         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
3345         Handle byte and halfword moves.
3346         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
3347         separately.
3348         * config/mips/constraints.md (h): Turn into NO_REGS.
3349         (l, x): Update documentation.
3350         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
3351         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
3352         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
3353         (HILO): New mode iterator.
3354         (MOVE128): Add TI.
3355         (any_div): New code iterator.
3356         (u): Extend code attribute to div and udiv.
3357         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
3358         d_operand in the splitters.  Remove redundant CONST_INT checks.
3359         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
3360         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
3361         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
3362         accordingly, using normal moves instead of unspecs to move LO into
3363         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
3364         (<u>mulsidi3): Handle expansion in C code.
3365         (<u>mulsidi3_32bit_internal): Rename to...
3366         (<u>mulsidi3_32bit): ...this.
3367         (<u>mulsidi3_32bit_r4000): Fix insn separator.
3368         (*<u>mulsidi3_64bit): Rename to...
3369         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
3370         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
3371         to set LO and HI to the multiplication result.  Use a normal move
3372         for MFLO and an unspec for MFHI.
3373         (*<u>mulsidi3_64bit_parts): Replace with...
3374         (<u>mulsidi3_64bit_hilo): ...this new instruction.
3375         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
3376         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
3377         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
3378         instead of HI.  Split the instruction into a separate multiplication
3379         and MFHI if !TARGET_FIX_R4000.
3380         (<su>muldi3_highpart): Likewise.
3381         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
3382         and the "=h" clobber.
3383         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
3384         (<u>mulditi3): New expander.
3385         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
3386         (madsi): Remove "=h" clobber.
3387         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
3388         Force the modulus result to be a GPR and split the instruction into
3389         a division followed by an MFHI after reload.
3390         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
3391         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
3392         the MIPS16 HIGH define_split.
3393         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
3394         of acc<->gpr moves to "multi".
3395         (*movdi_64bit): Replace the single "x" alternative with
3396         alternatives for moving into and out of "a".
3397         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
3398         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
3399         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
3400         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
3401         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
3402         (movti): New expander.
3403         (*movti, *movti_mips16): New insns.
3404         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
3405         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
3406         (mthi<GPR:mode>_<HILO:mode>): Likewise.
3407         * config/mips/predicates.md (fpr_operand): Delete.
3408         (d_operand): New predicate.
3409
3410 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
3411
3412         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
3413         failure on some Bourne shells.
3414         (x86_64-*-*): Ditto.
3415
3416 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
3417
3418         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
3419
3420 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
3421
3422         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
3423         (sparc-sun-solaris2*): Likewise.
3424
3425 2008-06-09  Arnaud Charlet  <charlet@adacore.com
3426
3427         * doc/install.texi: Update requirements to build the Ada compiler.
3428
3429 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
3430
3431         * df-scan.c (struct df_scan_problem_data): Remove the
3432         mw_link_pool alloc pool.
3433         (df_scan_free_internal): Don't free it.
3434         (df_scan_alloc): Don't allocate it.
3435         * df.h (struct df_link): Update comment.
3436
3437 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
3438
3439         * except.h: Correct checks for when SJLJ exceptions must be used.
3440
3441 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3442
3443         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
3444         default.
3445         
3446 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
3447
3448         PR tree-optimization/36218
3449         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
3450         configure for the build system.
3451         (BUILD_LDFLAGS): Define.
3452         * configure: Regenerate.
3453         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
3454
3455 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
3456
3457         PR target/36424
3458         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
3459         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
3460         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
3461
3462 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
3463
3464         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
3465
3466 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
3467
3468         * config.gcc (Obsolete configurations): Remove list of
3469         configurations.
3470         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
3471         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
3472         targets matched by those patterns.
3473         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
3474         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
3475         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
3476         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
3477         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3478         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
3479         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
3480         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
3481         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
3482         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
3483         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
3484         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
3485         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
3486         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
3487         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
3488         Make code for Solaris 7 and greater unconditional for Solaris.
3489         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
3490         Remove --with-* handling.
3491         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
3492         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
3493         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
3494         LINK_OS_WINDISS_SPEC): Remove.
3495         * config/rs6000/sysv4.opt (mwindiss): Remove.
3496         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
3497         * configure: Regenerate.
3498         * doc/cpp.texi: Don't mention BeOS.
3499         * doc/extend.texi (interrupt): Don't mention MS1.
3500         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
3501         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
3502         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
3503         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
3504         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
3505         Remove.
3506         * doc/invoke.texi (MT Options): Remove.
3507         (-mwindiss): Remove.
3508         (CRIS Options): Remove cris-axis-aout references.
3509         (HPPA Options): Don't mention hppa1.1-*-pro.
3510         * doc/md.texi: (MorphoTech family): Remove.
3511         * libgcc2.c: Don't handle UWIN.
3512         * config/alpha/t-unicosmk: Remove.
3513         * config/alpha/unicosmk.h: Remove.
3514         * config/arm/kaos-arm.h: Remove.
3515         * config/arm/kaos-strongarm.h: Remove.
3516         * config/arm/strongarm-coff.h: Remove.
3517         * config/arm/strongarm-elf.h: Remove.
3518         * config/arm/strongarm-pe.h: Remove.
3519         * config/arm/t-strongarm-pe: Remove.
3520         * config/arm/t-xscale-coff: Remove.
3521         * config/arm/t-xscale-elf: Remove.
3522         * config/arm/xscale-coff.h: Remove.
3523         * config/arm/xscale-elf.h: Remove.
3524         * config/chorus.h: Remove.
3525         * config/cris/aout.h: Remove.
3526         * config/cris/aout.opt: Remove.
3527         * config/cris/t-aout: Remove.
3528         * config/i386/beos-elf.h: Remove.
3529         * config/i386/kaos-i386.h: Remove.
3530         * config/i386/ptx4-i.h: Remove.
3531         * config/i386/sco5.h: Remove.
3532         * config/i386/sco5.opt: Remove.
3533         * config/i386/sysv4-cpp.h: Remove.
3534         * config/i386/sysv5.h: Remove.
3535         * config/i386/t-beos: Remove.
3536         * config/i386/t-sco5: Remove.
3537         * config/i386/t-uwin: Remove.
3538         * config/i386/uwin.asm: Remove.
3539         * config/i386/uwin.h: Remove.
3540         * config/kaos.h: Remove.
3541         * config/mips/windiss.h: Remove.
3542         * config/mt: Remove directory.
3543         * config/pa/pa-osf.h: Remove.
3544         * config/pa/pa-pro-end.h: Remove.
3545         * config/pa/t-pro: Remove.
3546         * config/ptx4.h: Remove.
3547         * config/rs6000/beos.h: Remove.
3548         * config/rs6000/kaos-ppc.h: Remove.
3549         * config/rs6000/t-beos: Remove.
3550         * config/rs6000/windiss.h: Remove.
3551         * config/sh/kaos-sh.h: Remove.
3552         * config/sol2-6.h: Remove.
3553         * config/sparc/sol26-sld.h: Remove.
3554         * config/sparc/sysv4-only.h: Remove.
3555         * config/vax/bsd.h: Remove.
3556         * config/vax/t-memfuncs: Remove.
3557         * config/vax/ultrix.h: Remove.
3558         * config/vax/vaxv.h: Remove.
3559         * config/windiss.h: Remove.
3560
3561 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
3562
3563         PR rtl-optimization/36438
3564         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
3565         for vector shifts with constant scalar shift operands.
3566
3567 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
3568
3569         * doc/invoke.texi: Document -march=xlr.
3570         * config/mips/xlr.md: New file.
3571         * config/mips/mips.md: Include it.
3572         (cpu): Add "xlr".
3573         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
3574         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
3575         (mips_rtx_cost_data): Likewise.
3576
3577 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
3578
3579         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
3580         PRE_INC and PRE_DEC cases.
3581
3582 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3583
3584         PR rtl-optimization/36419
3585         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
3586         the emitting jump insn.
3587
3588         PR target/36362
3589         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
3590         is not bool, boolify the whole *expr_p and convert to the desired type.
3591
3592 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3593
3594         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
3595         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
3596         Add omp_private_outer_ref hook, add another argument to
3597         omp_clause_default_ctor hook.
3598         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
3599         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
3600         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
3601         hook_tree_tree_tree_tree_null.
3602         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
3603         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
3604         * hooks.c (hook_tree_tree_tree_tree_null): New function.
3605         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
3606         * tree.def (OMP_TASK): New tree code.
3607         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
3608         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
3609         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
3610         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
3611         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
3612         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
3613         OMP_CLAUSE_COLLAPSE_EXPR): Define.
3614         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3615         (OMP_DIRECTIVE_P): Add OMP_TASK.
3616         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
3617         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
3618         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
3619         and OMP_CLAUSE_UNTIED entries.
3620         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
3621         num_ops to 2.
3622         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3623         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
3624         * tree-pretty-print.c (dump_omp_clause): Handle
3625         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
3626         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
3627         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
3628         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
3629         warning about unsigned iterators.  Change decl/init/cond/incr
3630         arguments to TREE_VECs, check arguments for all collapsed loops.
3631         (c_finish_omp_taskwait): New function.
3632         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
3633         ws_clauses.
3634         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
3635         default_function_array_conversion on init.  Add par_clauses argument.
3636         If decl is present in parallel's lastprivate clause, change it to
3637         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
3638         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
3639         collapse count in clauses.
3640         (c_parser_omp_for, c_parser_omp_parallel): Adjust
3641         c_parser_omp_for_loop callers.
3642         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
3643         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
3644         (c_parser_omp_clause_name): Handle collapse and untied clauses.
3645         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
3646         functions.
3647         (c_parser_omp_clause_schedule): Handle schedule(auto).
3648         Include correct location in the error message.
3649         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
3650         and PRAGMA_OMP_CLAUSE_UNTIED.
3651         (OMP_TASK_CLAUSE_MASK): Define.
3652         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
3653         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
3654         * tree-nested.c (convert_nonlocal_omp_clauses,
3655         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
3656         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
3657         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3658         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
3659         OMP_CLAUSE_DECL.
3660         (conver_nonlocal_reference, convert_local_reference,
3661         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
3662         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
3663         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
3664         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
3665         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
3666         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
3667         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
3668         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
3669         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3670         OMP_CLAUSE_UNTIED.
3671         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
3672         * c-common.h (c_finish_omp_taskwait): New prototype.
3673         * gimple-low.c (lower_stmt): Handle OMP_TASK.
3674         * tree-parloops.c (create_parallel_loop): Create 1 entry
3675         vectors for OMP_FOR_{INIT,COND,INCR}.
3676         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
3677         (make_edges): Handle OMP_TASK.
3678         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
3679         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3680         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
3681         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
3682         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
3683         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3684         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
3685         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
3686         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
3687         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
3688         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
3689         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
3690         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
3691         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
3692         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
3693         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
3694         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
3695         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
3696         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
3697         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
3698         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
3699         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
3700         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
3701         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
3702         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
3703         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
3704         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
3705         original iterator is present in lastprivate clause or if
3706         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
3707         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3708         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
3709         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
3710         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
3711         if it is set, lookup var in outer contexts too.  Handle
3712         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
3713         to be implicitly determined firstprivate for task regions.
3714         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
3715         if it is set, lookup var in outer contexts too.  Set
3716         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
3717         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
3718         OMP_CLAUSE_UNTIED.  Take region_type as last argument
3719         instead of in_parallel and in_combined_parallel.
3720         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3721         Adjust callers.
3722         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
3723         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
3724         (new_omp_context): Set default_kind to
3725         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
3726         (omp_region_type): New enum.
3727         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
3728         fields, add region_type.
3729         (new_omp_context): Take region_type as argument instead of is_parallel
3730         and is_combined_parallel.
3731         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
3732         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
3733         ctx->is_combined_parallel checks.
3734         (gimplify_omp_task): New function.
3735         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
3736         OMP_CLAUSE_UNTIED.
3737         * omp-low.c (extract_omp_for_data): Use schedule(static)
3738         for schedule(auto).  Handle pointer and unsigned iterators.
3739         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
3740         Add loops argument.  Extract data for collapsed OMP_FOR loops.
3741         (expand_parallel_call): Assert sched_kind isn't auto,
3742         map runtime schedule to index 3.
3743         (struct omp_for_data_loop): New type.
3744         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
3745         Add loop, loops, collapse and iter_type fields.
3746         (workshare_safe_to_combine_p): Disallow combined for if
3747         iter_type is unsigned long long.  Don't combine collapse > 1 loops
3748         unless all bounds and steps are constant.  Adjust extract_omp_for_data
3749         caller.
3750         (expand_omp_for_generic): Handle pointer, unsigned and long long
3751         iterators.  Handle collapsed OMP_FOR loops.  Adjust
3752         for struct omp_for_data changes.  If libgomp function doesn't return
3753         boolean_type_node, add comparison of the return value with 0.
3754         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
3755         pointer, unsigned and long long iterators.  Adjust for struct
3756         omp_for_data changes.
3757         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
3758         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
3759         unsigned long long.  Allocate loops array, pass it to
3760         extract_omp_for_data.  For collapse > 1 loops use always
3761         expand_omp_for_generic.
3762         (omp_context): Add sfield_map and srecord_type fields.
3763         (is_task_ctx, lookup_sfield): New functions.
3764         (use_pointer_for_field): Use is_task_ctx helper.  Change first
3765         argument's type from const_tree to tree.  Clarify comment.
3766         In OMP_TASK disallow copy-in/out sharing.
3767         (build_sender_ref): Call lookup_sfield instead of lookup_field.
3768         (install_var_field): Add mask argument.  Populate both record_type
3769         and srecord_type if needed.
3770         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
3771         in srecord_type.
3772         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
3773         and DECL_FIELD_OFFSET.
3774         (scan_sharing_clauses): Adjust install_var_field callers.  For
3775         firstprivate clauses on explicit tasks allocate the var by value in
3776         record_type unconditionally, rather than by reference.
3777         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
3778         Use is_taskreg_ctx instead of is_parallel_ctx.
3779         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
3780         (create_omp_child_function_name): Add task_copy argument, use
3781         *_omp_cpyfn* names if it is true.
3782         (create_omp_child_function): Add task_copy argument, if true create
3783         *_omp_cpyfn* helper function.
3784         (scan_omp_parallel): Adjust create_omp_child_function callers.
3785         Rename parallel_nesting_level to taskreg_nesting_level.
3786         (scan_omp_task): New function.
3787         (lower_rec_input_clauses): Don't run constructors for firstprivate
3788         explicit task vars which are initialized by *_omp_cpyfn*.  
3789         Pass outer var ref to omp_clause_default_ctor hook if
3790         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
3791         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
3792         OMP_CLAUSE_REDUCTION_INIT.
3793         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
3794         avoid duplicate setting of fields.  Handle
3795         OMP_CLAUSE_PRIVATE_OUTER_REF.
3796         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
3797         copy-out if TREE_READONLY, only copy-in.
3798         (expand_task_copyfn): New function.
3799         (expand_task_call): New function.
3800         (struct omp_taskcopy_context): New type.
3801         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
3802         New functions.
3803         (lower_omp_parallel): Rename to...
3804         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3805         Call create_task_copyfn if srecord_type is needed.  Adjust
3806         sender_decl type.
3807         (task_shared_vars): New variable.
3808         (check_omp_nesting_restrictions): Warn if work-sharing,
3809         barrier, master or ordered region is closely nested inside OMP_TASK.
3810         Add warnings for barrier if closely nested inside of work-sharing,
3811         ordered, or master region.
3812         (scan_omp_1): Call check_omp_nesting_restrictions even for
3813         GOMP_barrier calls.  Rename parallel_nesting_level to
3814         taskreg_nesting_level.  Handle OMP_TASK.
3815         (lower_lastprivate_clauses): Even if some lastprivate is found on a
3816         work-sharing construct, continue looking for them on parent parallel
3817         construct.
3818         (lower_omp_for_lastprivate): Add lastprivate clauses
3819         to the beginning of dlist rather than end.  Adjust for struct
3820         omp_for_data changes.
3821         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
3822         not after it.  Handle collapsed OMP_FOR loops, adjust for
3823         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
3824         (get_ws_args_for): Adjust extract_omp_for_data caller.
3825         (scan_omp_for): Handle collapsed OMP_FOR
3826         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
3827         (lower_omp_single_simple): If libgomp function doesn't return
3828         boolean_type_node, add comparison of the return value with 0.
3829         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
3830         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
3831         (parallel_nesting_level): Rename to...
3832         (taskreg_nesting_level): ... this.
3833         (is_taskreg_ctx): New function.
3834         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
3835         of is_parallel_ctx.
3836         (execute_lower_omp): Rename parallel_nesting_level to
3837         taskreg_nesting_level.
3838         (expand_omp_parallel): Rename to...
3839         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
3840         Call omp_task_call for OMP_TASK regions.
3841         (expand_omp): Adjust caller, handle OMP_TASK.
3842         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
3843
3844         * bitmap.c (bitmap_default_obstack_depth): New variable.
3845         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
3846         if argument is NULL and bitmap_default_obstack is already initialized.
3847         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
3848         at the end.
3849         * matrix-reorg.c (matrix_reorg): Likewise.
3850
3851 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
3852
3853         * config/i386/i386.md (*indirect_jump): Macroize using P
3854         mode iterator.  Remove !TARGET_64BIT from insn constraints.
3855         (*tablejump_1): Ditto.
3856         (*indirect_jump_rex64): Remove insn pattern.
3857         (*tablejump_1_rex64): Ditto.
3858         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
3859         and eh_return_si insn patterns.
3860
3861 2008-06-06  Richard Guenther  <rguenther@suse.de>
3862
3863         * tree-ssa-structalias.c (merge_smts_into): Remove.
3864         (find_what_p_points_to): Do not bother to compute the
3865         points-to set for pt_anything pointers.
3866         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
3867         for pt_anything pointers is ok.
3868
3869 2008-06-06  Jan Hubicka  <jh@suse.cz>
3870
3871         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
3872
3873 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3874
3875         * cgraph.c: Fix typos in comments.
3876         (cgraph_availability_names): Fix string typo.
3877         * fold-const.c: Fix typos in comments.
3878         (fold_binary): Fix typo in warning.
3879         * genautomata.c: Fix typos in comments.
3880         (check_presence_pattern_sets): Fix typo in local variable.
3881         (output_description): Fix typo in output.
3882         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
3883         * hwint.h: Likewise.
3884         * matrix-reorg.c (check_allocation_function): Likewise.
3885         * omega.c (smooth_weird_equations): Likewise.
3886         * auto-inc-dec.c: Fix typos in comments.
3887         * bb-reorder.c: Likewise.
3888         * builtins.c: Likewise.
3889         * c-common.c: Likewise.
3890         * c-cppbuiltin.c: Likewise.
3891         * c-parser.c: Likewise.
3892         * c-pretty-print.c: Likewise.
3893         * cfgcleanup.c: Likewise.
3894         * cfgexpand.c: Likewise.
3895         * cfghooks.c: Likewise.
3896         * cfglayout.c: Likewise.
3897         * cfgloopmanip.c: Likewise.
3898         * cgraphunit.c: Likewise.
3899         * coverage.c: Likewise.
3900         * dbxout.c: Likewise.
3901         * df-byte-scan.c: Likewise.
3902         * df-core.c: Likewise.
3903         * df-problems.c: Likewise.
3904         * df-scan.c: Likewise.
3905         * dfp.c: Likewise.
3906         * dominance.c: Likewise.
3907         * domwalk.c: Likewise.
3908         * dse.c: Likewise.
3909         * dwarf2out.c: Likewise.
3910         * emit-rtl.c: Likewise.
3911         * et-forest.c: Likewise.
3912         * function.c: Likewise.
3913         * function.h: Likewise.
3914         * gcc.c: Likewise.
3915         * gcov-io.c: Likewise.
3916         * gcov.c: Likewise.
3917         * gcse.c: Likewise.
3918         * genattrtab.c: Likewise.
3919         * ggc-page.c: Likewise.
3920         * gimplify.c: Likewise.
3921         * gthr-lynx.h: Likewise.
3922         * haifa-sched.c: Likewise.
3923         * ipa-cp.c: Likewise.
3924         * ipa-inline.c: Likewise.
3925         * ipa-prop.h: Likewise.
3926         * ipa-pure-const.c: Likewise.
3927         * ipa-struct-reorg.c: Likewise.
3928         * ipa-struct-reorg.h: Likewise.