OSDN Git Service

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