OSDN Git Service

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