OSDN Git Service

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