OSDN Git Service

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