OSDN Git Service

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