OSDN Git Service

2009-04-26 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
4         Redefine it to just use mingw/include.
5         (ASM_SPEC): Rules for -m32 and -m64.
6         (LINK_SPEC): Use Likewise.
7         (SPEC_32): New define.
8         (SPEC_64): Likewise.
9         (SUB_LINK_SPEC): Likewise.
10         (MULTILIB_DEFAULTS): New define.
11         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
12         Add multilib options.
13         (MULTILIB_DIRNAMES): Likewise.
14         (MULTILIB_OSDIRNAMES): Likewise.
15         (LIBGCC): Likewise.
16         (INSTALL_LIBGCC): Likewise.
17
18 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
19
20         PR c/39556
21         * c-tree.h (enum c_inline_static_type): New.
22         (record_inline_static): Declare.
23         * c-decl.c (struct c_inline_static, c_inline_statics,
24         record_inline_static, check_inline_statics): New.
25         (pop_file_scope): Call check_inline_statics.
26         (start_decl): Call record_inline_static instead of pedwarning
27         directly for static in inline function.
28         * c-typeck.c (build_external_ref): Call record_inline_static
29         instead of pedwarning directly for static referenced in inline
30         function.
31
32 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
33
34         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
35         not new but only being rescanned.
36         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
37         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
38         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
39         record_set_info, compute_set, grealloc): Remove.
40         (recompute_all_luids): New function.
41         (gcse_main): Don't compute sets, and don't do related memory
42         allocations/free-ing.  If something changed before the end of the
43         pass, update LUIDs using recompute_all_luids.
44         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
45         (free_gcse_mem): Don't free it either.
46         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
47         Use the df insn LUIDs.
48         (load_killed_in_block): Likewise.
49         (compute_hash_table_work): Don't compute reg_set_in_block.
50         (compute_transp): Use DF_REG_DEF_CHAINs.
51         (local_cprop_pass): Don't use compute_sets and related functions.
52         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
53         Use get_max_uid() instead of max_cuid.
54         (insert_insn_end_basic_block, pre_insert_copy_insn,
55         update_ld_motion_stores): Don't try to
56         keep reg_set tables up to date.
57         (pre_insert_copies): Use df insn LUIDs.
58         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
59         (reg_set_info): Don't use extra bitmap argument.
60         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
61         information to compute regs_set_in_block.
62         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
63         (bypass_jumps): Don't use compute_sets and friends.
64
65 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
66
67         PR testsuite/39710
68         * opts.c (undocumented_msg): Do not leave blank even with
69         ENABLE_CHECKING.
70
71 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
72
73         * c-decl.c (build_enumerator): Allow values folding to integer
74         constants but not integer constant expressions with a pedwarn if
75         pedantic.
76
77 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
78
79         PR c/39582
80         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
81         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
82         type is an integer constant.
83
84 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
85
86         PR target/39897
87         * config/i386/i386.c (print_operand) ['z']: Revert handling of
88         HImode operands.
89
90 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
91
92         PR c/39564
93         * c-decl.c (grokdeclarator): Diagnose declarations of functions
94         with variably modified return type and no storage class
95         specifiers, except for the case of nested functions.  Distinguish
96         extern declarations of functions with variably modified return
97         types from those of objects with variably modified types.
98
99 2009-04-25  Jan Hubicka  <jh@suse.cz>
100
101         * tree.c (list_equal_p): New function.
102         * tree.h (list_equal_p): Declare.
103         * coretypes.h (edge_def, edge, const_edge, basic_block_def
104         basic_block_def, basic_block, const_basic_block): New.
105         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
106         (redirect_eh_edge): New function.
107         (make_eh_edge_update_phi): EH edges are not abnormal.
108         * except.c: Include tree-flow.h.
109         (list_match): New function.
110         (eh_region_replaceable_by_p): New function.
111         (replace_region): New function.
112         (hash_type_list): New function.
113         (hash_eh_region): New function.
114         (eh_regions_equal_p): New function.
115         (merge_peers): New function.
116         (remove_unreachable_regions): Verify EH tree when checking;
117         merge peers.
118         (copy_eh_region_1): New function.
119         (copy_eh_region): New function.
120         (push_reachable_handler): New function.
121         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
122         regions without label but with live RESX.
123         * except.h (redirect_eh_edge_to_label): New.
124         * tree-flow.h (redirect_eh_edge): New.
125         * coretypes.h (edge_def, edge, const_edge, basic_block_def
126         basic_block_def, basic_block, const_basic_block): Remove.
127         * Makefile.in (except.o): Add dependency on tree-flow.h
128         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
129         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
130         Remove.
131
132 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
133
134         PR bootstrap/39645
135         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
136         on the destination of memcpy.
137
138 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
139
140         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
141         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
142         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
143
144 2009-04-25  Jan Hubicka  <jh@suse.cz>
145
146         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
147         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
148         to be reached by different label than left.
149         (update_eh_edges): Update comment; remove edge_to_remove if possible
150         and return true if suceeded.
151         (cleanup_empty_eh): Accept sharing map; handle shared regions.
152         (cleanup_eh): Compute sharing map.
153         * except.c (remove_eh_handler_and_replace): Add argument if we should
154         update regions.
155         (remove_unreachable_regions): Update for label sharing.
156         (label_to_region_map): Likewise.
157         (get_next_region_sharing_label): New function.
158         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
159         prev_try pointers.
160         (remove_eh_handler): Update.
161         (remove_eh_region_and_replace_by_outer_of): New function.
162         * except.h (struct eh_region): Add next_region_sharing_label.
163         (remove_eh_region_and_replace_by_outer_of,
164         get_next_region_sharing_label): Declare.
165         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
166
167 2009-04-25  Jan Hubicka  <jh@suse.cz>
168
169         * tree-cfg.c (split_critical_edges): Split also edges where we can't
170         insert code even if they are not critical.
171
172 2009-04-25  Jan Hubicka  <jh@suse.cz>
173
174         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
175         (gimple_can_remove_branch_p): EH edges won't remove branch by
176         redirection.
177         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
178         updating of non-abnormal EH edges.
179         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
180         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
181         (split_critical_edges): Split also edges where emitting code on them
182         will lead to splitting later.
183
184 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
185             H.J. Lu  <hongjiu.lu@intel.com>
186
187         PR target/39590
188         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
189         the configured assembler supports fildq and fistpq mnemonics.
190         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
191         * configure: Regenerated.
192         * config.in: Ditto.
193
194         * config/i386/i386.c (print_operand): Handle 'Z'.
195         ['z']: Remove handling of special fild/fist suffixes.
196         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
197         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
198         suffix of fild insn.
199         (*floatsi<mode>2_vector_mixed): Ditto.
200         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
201         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
202         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
203         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
204         * config/i386/gas.h (GAS_MNEMONICS): Remove.
205
206 2009-04-25  Ben Elliston  <bje@au.ibm.com>
207  
208         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
209         the source of a set operation.
210
211 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
212
213         * target.h (struct gcc_target): Add case_values_threshold field.
214         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
215         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
216         * targhooks.c (default_case_values_threshold): New function.
217         * targhooks.h (default_case_values_threshold): Declare function.
218         * stmt.c (expand_case): Use case_values_threshold target hook.
219         * expr.h (case_values_threshold): Remove declartation.
220         * expr.c (case_values_threshold): Remove function.
221         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
222
223         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
224         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
225         (avr_case_values_threshold): Declare as static.
226         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
227
228         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
229         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
230         (mn10300_case_values_threshold): New function.
231
232 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
233
234         * ira.c (setup_cover_and_important_classes): Add enum cast.
235
236 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
237
238         * genpreds.c (write_enum_constraint_num): Output definition of
239         CONSTRAINT_NUM_DEFINED_P macro.
240         * ira.c (setup_cover_and_important_classes): Use
241         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
242         
243 2009-04-24  DJ Delorie  <dj@redhat.com>
244
245         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
246         __SH2A_SINGLE_ONLY__ also.
247
248 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
249
250         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
251         (movdf_internal): Ditto.
252         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
253         SFmode and DFmode constants.
254         (ia64_print_operand): Add 'G' format for printing
255         floating point constants.
256
257 2009-04-24  Richard Guenther  <rguenther@suse.de>
258
259         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
260         from unsigned additions.
261
262 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
263
264         * c-typeck.c (set_init_index): Allow array designators that are
265         not integer constant expressions with a pedwarn if pedantic.
266
267 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
268
269         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
270         zero if no overlap in nonzero bits between the operands.
271
272 2009-04-24  Ian Lance Taylor  <iant@google.com>
273
274         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
275         (record_dead_and_set_regs): Likewise.
276         * df.h (struct df_mw_hardreg): Change flags field to int.
277         (struct df_base_ref): Likewise.
278         (struct df): Change changeable_flags field to int.
279         * df-scan.c (df_defs_record): Change clobber_flags to int.
280         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
281         constants rather than #define macros.
282         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
283         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
284         (enum dwarf_calling_convention): Likewise.
285         (enum dwarf_line_number_x_ops): Likewise.
286         (enum dwarf_call_frame_info): Likewise.
287         (enum dwarf_source_language): Likewise.
288         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
289         (add_calling_convention_attribute): Likewise.
290         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
291         (combine_comparisons): Change compcode to int.  Add cast to enum type.
292         * genrecog.c (maybe_both_true_2): Change c to int.
293         (write_switch): Likewise.  Add cast to enum type.
294         * gimplify.c (gimplify_omp_for): Handle return values from
295         gimplify_expr using MIN rather than bitwise or.
296         (gimplify_expr): Add cast to enum type.
297         * ipa-prop.c (update_jump_functions_after_inlining): Change
298         IPA_BOTTOM to IPA_JF_UNKNOWN.
299         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
300         Add casts to enum type.
301         (setup_cover_and_important_classes): Change cl to int.  Add casts
302         to enum type.
303         (setup_class_translate): Change cl and mode to int.
304         (ira_init_once): Change mode to int.
305         (free_register_move_costs): Likewise.
306         (setup_prohibited_mode_move_regs): Add casts to enum type.
307         * langhooks.c (add_builtin_function_common): Rework assertion that
308         value fits bitfield.
309         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
310         * omega.c (omega_do_elimination): Avoid math on enum types.
311         * optabs.c (expand_vec_shift_expr): Remove casts to int.
312         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
313         int local to handle integral_argment value.
314         * regmove.c (try_auto_increment): Change PUT_MODE to
315         PUT_REG_NOTE_KIND.
316         * reload.c (push_secondary_reload): Add casts to enum type.
317         (secondary_reload_class, find_valid_class): Likewise.
318         * reload1.c (emit_input_reload_insns): Likewise.
319         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
320         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
321         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
322         constant.
323         * tree.c (build_common_builtin_nodes): Add casts to enum type.
324         * tree-complex.c (complex_lattice_t): Typedef to int rather than
325         enum type.
326         (expand_complex_libcall): Add casts to enum type.
327         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
328         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
329         with ERROR_MARK, not NUM_TREE_CODES.
330         (vect_create_epilog_for_reduction): Likewise.
331         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
332         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
333         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
334         enum machine_mode.
335         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
336         vect_unused_in_loop.  Change 0 to loop_vect.
337         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
338         * var-tracking.c (get_init_value): Change return type to enum
339         var_init_status.
340         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
341         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
342         arm_fp_model.
343         (arm_override_options): Add casts to enum type.
344         (arm_emit_tls_decoration): Likewise.
345         * config/i386/i386.c (ix86_function_specific_restore): Add casts
346         to enum type.
347         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
348         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
349         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
350         enum type.
351         * config/s390/s390.c (code_for_builtin_64): Change to array of
352         enum insn_code.
353         (code_for_builtin_31): Likewise.
354         (s390_expand_builtin): Change code_for_builtin to enum insn_code
355         const *.
356         * config/sparc/sparc.c (sparc_override_options): Change value
357         field in struct code_model to enum cmodel.  In initializer change
358         0 to NULL and add cast to enum type.
359
360         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
361         Change all callers.  Issue a -Wc++-compat warning using
362         lhs_origtype if necessary.
363         (convert_for_assignment): Issue -Wc++-compat warnings about
364         invalid conversions to enum type on assignment.
365         * c-common.h (build_modify_expr): Update declaration.
366
367 2009-04-24  Nick Clifton  <nickc@redhat.com>
368
369         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
370         (function_arg_advance): Likewise.
371         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
372         5th alternative.
373
374 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
375
376         * config/s390/constraints.md ('I', 'J'): Fix condition.
377
378 2009-04-24  Diego Novillo  <dnovillo@google.com>
379
380         * gengtype-parse.c (parse_error): Add newline after message.
381
382 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
383
384         * config/i386/sse.md (avxmodesuffixs): Removed.
385         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
386         (*avx_pinsr<ssevecsize>): This.
387
388 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
389
390         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
391         follow chains of regs with a single definition, and allow expressions
392         that are function_invariant_p.
393         (simple_rhs_p): Allow expressions that are function_invariant_p.
394
395 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
396
397         PR middle-end/39867
398         * fold-const.c (fold_cond_expr_with_comparison): When folding
399         > and >= to MAX, make sure the MAX uses the same type as the
400         comparison's operands.
401
402 2009-04-24  Nick Clifton  <nickc@redhat.com>
403
404         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
405         addressing for DImode accesses.
406         (frv_print_operand_address): Handle PLUS case.
407         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
408
409 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
410
411         PR rtl-optimization/39794
412         * alias.c (canon_true_dependence): Add x_addr argument.
413         * rtl.h (canon_true_dependence): Adjust prototype.
414         * cse.c (check_dependence): Adjust canon_true_dependence callers.
415         * cselib.c (cselib_invalidate_mem): Likewise.
416         * gcse.c (compute_transp): Likewise.
417         * dse.c (scan_reads_nospill): Likewise.
418         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
419         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
420         canon_base_addr of the group, plus optional offset.
421         (struct group_info): Rename canon_base_mem to
422         canon_base_addr.
423         (get_group_info): Set canon_base_addr to canon_rtx of base, not
424         canon_rtx of base_mem.
425
426 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
427
428         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
429         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
430
431 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
432
433         * config/spu/spu-builtins.h: Delete file.
434
435         * config/spu/spu.h (enum spu_builtin_type): Move here from
436         spu-builtins.h.
437         (struct spu_builtin_description): Likewise.  Add GTY marker.
438         Do not use enum spu_function_code or enum insn_code.
439         (spu_builtins): Add extern declaration.
440
441         * config/spu/spu.c: Do not include "spu-builtins.h".
442         (enum spu_function_code, enum spu_builtin_type_index,
443         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
444         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
445         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
446         unsigned_V2DI_type_node): Move here from spu-builtins.h.
447         (spu_builtin_types): Make static.  Add GTY marker.
448         (spu_builtins): Add extern declaration with GTY marker.
449         Include "gt-spu.h".
450
451         * config/spu/spu-c.c: Do not include "spu-builtins.h".
452         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
453         Check programmatically whether all parameters are scalar.
454
455         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
456
457 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
458
459         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
460         assignment from the constructor either if the target is volatile.
461
462 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
463
464         * config/arm/arm.md (insv): Do not share operands[0].
465
466 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
467
468         * config/vxlib-tls.c (active_tls_threads): Delete.
469         (delete_hook_installed): New.
470         (tls_delete_hook): Don't delete the delete hook.
471         (tls_destructor): Delete it here.
472         (__gthread_set_specific): Adjust installing the delete hook.
473         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
474         __gthread_leave_tsd_dtor_context.
475
476 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
477
478         * c-format.c (gcc_tdiag_char_table): Add support for %E.
479
480 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
481
482         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
483         enum type.
484         (alpha_rtx_costs): Ditto.
485         (emit_unlikely_jump): Use add_reg_note.
486         (emit_frame_store_1): Ditto.
487         (alpha_expand_prologue): Ditto.
488         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
489         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
490
491 2009-04-23  Nick Clifton  <nickc@redhat.com>
492
493         * config/v850/v850.md (epilogue): Remove suppressed code.
494         (return): Rename to return_simple and remove test of frame size.
495         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
496         to gen_return_simple.
497
498 2009-04-22  Jing Yu  <jingyu@google.com>
499
500         PR testsuite/39781
501         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
502
503 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
504
505         PR C/31499
506         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
507         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
508         value is a VECTOR_CST, the element type is the element type of the
509         vector.
510
511 2009-04-22  DJ Delorie  <dj@redhat.com>
512
513         * config/m32c/m32c.h: Update GTY annotations to new syntax.
514
515 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
516
517         * alias.c (find_base_term): Move around LO_SUM case, so that
518         CONST falls through into PLUS/MINUS handling.
519
520         PR c/39855
521         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
522         into 0, use omit_one_operand.
523
524 2009-04-23  Ben Elliston  <bje@au.ibm.com>
525
526         * config/rs6000/linux-unwind.h (get_regs): Remove type
527         puns. Change the type of `pc' to an array of unsigned ints and
528         update all users.  Constify frame24.
529
530 2009-04-22  DJ Delorie  <dj@redhat.com>
531
532         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
533         declarations before code.
534         (current_function_special_page_vector): Likewise.
535         (m32c_expand_insv): Silence a warning.
536
537 2009-04-21  Taras Glek <tglek@mozilla.com>
538
539         * alias.c: Update GTY annotations to new syntax.
540         * basic-block.h: Likewise.
541         * bitmap.h: Likewise.
542         * c-common.h: Likewise.
543         * c-decl.c: Likewise.
544         * c-parser.c: Likewise.
545         * c-pragma.c: Likewise.
546         * c-tree.h: Likewise.
547         * cfgloop.h: Likewise.
548         * cgraph.h: Likewise.
549         * config/alpha/alpha.c: Likewise.
550         * config/arm/arm.h: Likewise.
551         * config/avr/avr.h: Likewise.
552         * config/bfin/bfin.c: Likewise.
553         * config/cris/cris.c: Likewise.
554         * config/darwin.c: Likewise.
555         * config/frv/frv.c: Likewise.
556         * config/i386/i386.c: Likewise.
557         * config/i386/i386.h: Likewise.
558         * config/i386/winnt.c: Likewise.
559         * config/ia64/ia64.h: Likewise.
560         * config/iq2000/iq2000.c: Likewise.
561         * config/mips/mips.c: Likewise.
562         * config/mmix/mmix.h: Likewise.
563         * config/pa/pa.c: Likewise.
564         * config/pa/pa.h: Likewise.
565         * config/rs6000/rs6000.c: Likewise.
566         * config/s390/s390.c: Likewise.
567         * config/sparc/sparc.c: Likewise.
568         * config/xtensa/xtensa.c: Likewise.
569         * cselib.h: Likewise.
570         * dbxout.c: Likewise.
571         * dwarf2out.c: Likewise.
572         * except.c: Likewise.
573         * except.h: Likewise.
574         * fixed-value.h: Likewise.
575         * function.c: Likewise.
576         * function.h: Likewise.
577         * gimple.h: Likewise.
578         * integrate.c: Likewise.
579         * optabs.c: Likewise.
580         * output.h: Likewise.
581         * real.h: Likewise.
582         * rtl.h: Likewise.
583         * stringpool.c: Likewise.
584         * tree-data-ref.c: Likewise.
585         * tree-flow.h: Likewise.
586         * tree-scalar-evolution.c: Likewise.
587         * tree-ssa-address.c: Likewise.
588         * tree-ssa-alias.h: Likewise.
589         * tree-ssa-operands.h: Likewise.
590         * tree.c: Likewise.
591         * tree.h: Likewise.
592         * varasm.c: Likewise.
593         * varray.h: Likewise.
594         * vec.h: Likewise.
595         * coretypes.h: Do not define GTY macro if it is already defined.
596         * doc/gty.texi: Update GTY documentation to new syntax.
597         * gengtype-lex.l: Enforce attribute-like syntax for GTY
598         annotations on structs.
599         * gengtype-parse.c: Likewise.
600
601 2009-04-22  Mark Heffernan  <meheff@google.com>
602
603         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
604
605 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
606
607         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
608         where appropriate.
609
610 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
611
612         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
613         the same as a PLUS without a shift.  Increase the cost of a
614         CONST_INT in MULT.
615
616 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
617
618         * Makefile.in: Update dependencies.
619         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
620         * errors.h: Remove bogus comment about compatibility.
621         (warning): Update declaration.
622         * genautomata.c: Update all calls to warning.
623         * gimple.c: Do not include errors.h. Include toplev.h.
624         * tree-ssa-structalias.c: Do not include errors.h.
625         * omega.c: Likewise.
626         * tree-ssa-reassoc.c: Likewise.
627         * config/spu/spu-c.c: Likewise.
628         * config/spu/t-spu-elf: Update dependencies.
629
630 2009-04-22  Richard Guenther  <rguenther@suse.de>
631
632         PR tree-optimization/39824
633         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
634         make sure the types are compatible.
635
636 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
637
638         PR c++/14875
639         * c-common.c (c_parse_error): Take a token_flags parameter.
640         Use token_type for the token type instead.
641         Pass token_flags to cpp_type2name.
642         * c-common.h (c_parse_error): Update declaration.
643         * c-parser.c (c_parser_error): Pass 0 as token flags.
644
645 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
646
647         PR rtl-optimization/39580
648         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
649         
650 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
651
652         * function.c (expand_function_end): Do not emit a jump to the "naked"
653         return label for fall-through returns.
654         * except.c (sjlj_emit_function_exit): Always place the call to the
655         unregister function at the location installed by expand_function_end.
656
657 2009-04-22  Richard Guenther  <rguenther@suse.de>
658
659         PR tree-optimization/39845
660         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
661         (gen_inbound_check): Likewise.
662
663 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
664
665         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
666         padding for PPC.
667         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
668         * config/vxlib.c (__gthread_once): Add race guard for PPC.
669
670 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
671
672         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
673         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
674         shift counts to avoid out-of-bounds array accesses.
675
676 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
677
678         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
679         (Pmode): Move above.
680
681 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
682
683         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
684         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
685         GET_CODE macro.  Use IN_RANGE macro where appropriate.
686         * config/alpha/alpha.h: Ditto.
687         * config/alpha/alpha.md: Ditto.
688         * config/alpha/constraints.md: Ditto.
689         * config/alpha/predicates.md: Ditto.
690         
691 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
692
693         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
694         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
695         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
696         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
697         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
698         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
699         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
700         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
701         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
702         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
703         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
704         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
705         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
706         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
707         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
708         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
709         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
710         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
711         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
712         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
713         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
714         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
715         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
716         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
717         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
718         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
719         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
720
721 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
722
723         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
724         references from comments.
725         * cfgbuild.c: (count_basic_blocks): Delete.
726         (find_basic_blocks_1): Delete.
727         (find_basic_blocks): Delete.
728         * except.c (finish_eh_generation): Make static.  Move comment from
729         except.h here.  Remove find_basic_blocks references from comments.
730         * except.h (finish_eh_generation): Delete.
731         * basic-block.h (find_basic_blocks): Delete.
732         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
733
734 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
735
736         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
737         (sdbout_parms):  Likewise.
738
739 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
740
741         * config/sh/sh.c (prepare_cbranch_operands): Use
742         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
743         (expand_cbranchdi4): Likewise.
744         (from_compare): Add cast to enum type.
745         (expand_cbranchsi4): Use add_reg_note.
746         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
747         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
748         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
749         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
750         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
751         instead of CODE_FOR_nothing.
752         (cbranchdi4): Likewise.  Fix the order of arguments for
753         gen_rtx_fmt_ee.
754         (push_fpscr): Use add_reg_note.
755         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
756         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
757         
758 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
759
760         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
761         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
762         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
763         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
764         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
765         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
766         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
767         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
768         config/alpha/x-vms, config/arc/t-arc,
769         config/arm/README-interworking, config/arm/arm-c.c,
770         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
771         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
772         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
773         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
774         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
775         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
776         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
777         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
778         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
779         config/cris/t-elfmulti, config/crx/t-crx,
780         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
781         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
782         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
783         config/h8300/t-h8300, config/i386/athlon.md,
784         config/i386/darwin-libgcc.10.4.ver,
785         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
786         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
787         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
788         config/i386/t-linux64, config/i386/t-nwld,
789         config/i386/t-rtems-i386, config/i386/t-sol2-10,
790         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
791         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
792         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
793         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
794         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
795         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
796         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
797         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
798         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
799         config/m68k/t-uclinux, config/mcore/t-mcore,
800         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
801         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
802         config/mips/crtn.asm, config/mips/irix-crti.asm,
803         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
804         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
805         config/mips/mips-fixed.md, config/mips/sb1.md,
806         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
807         config/mips/t-iris6, config/mips/t-isa3264,
808         config/mips/t-libgcc-mips16, config/mips/t-linux64,
809         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
810         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
811         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
812         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
813         config/mn10300/t-linux, config/mn10300/t-mn10300,
814         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
815         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
816         config/picochip/libgccExtras/clzsi2.asm,
817         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
818         config/rs6000/darwin-libgcc.10.4.ver,
819         config/rs6000/darwin-libgcc.10.5.ver,
820         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
821         config/rs6000/t-aix43, config/rs6000/t-aix52,
822         config/rs6000/t-darwin, config/rs6000/t-fprules,
823         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
824         config/rs6000/t-lynx, config/rs6000/t-netbsd,
825         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
826         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
827         config/rs6000/t-rtems, config/rs6000/t-spe,
828         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
829         config/score/t-score-elf, config/sh/divcost-analysis,
830         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
831         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
832         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
833         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
834         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
835         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
836         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
837         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
838         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
839         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
840         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
841         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
842         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
843         limitx.h, version.c, xcoff.h: Add copyright and license notices.
844         * config/h8300/genmova.sh: Include copyright and license notices
845         in generated output.
846         * config/h8300/mova.md: Regenerate.
847         * doc/install.texi2html: Include word "Copyright" in copyright
848         notice and use name "Free Software Foundation, Inc.".
849         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
850         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
851         ChangeLog-2007, ChangeLog-2008: Correct dates.
852
853 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
854
855         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
856         NE_EXPR operations as well.
857         * c-parser.c (c_parser_condition): Do not set location information on
858         the condition.
859         (c_parser_conditional_expression): Likewise.
860         (c_parser_binary_expression): Set location information on operators.
861         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
862         TRUTH_NOT_EXPR has been folded.
863         * fold-const.c (fold_truth_not_expr): Copy location information from
864         the incoming expression to the outgoing one.
865         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
866         recursive calls on the LHS of the operator but pass that of the
867         operator to recursive calls on the RHS of the operator.  Set it
868         on the COND_EXPR.
869         (shortcut_cond_expr): Set the locus of the operator on the second
870         COND_EXPR and that of the expression on the first in degenerate cases.
871         Pass the locus of the expression to calls to shortcut_cond_r.
872         Set the locus of the 'then' block on the associated jump, if any.
873         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
874         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
875         expression to call to gimplify_boolean_expr.
876
877 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
878
879         * config.gcc: Add additional configuration for
880         i686-w64-mingw* and x86_64-w64-mingw* triplet.
881         * config/i386/mingw-w64.h: New mingw-w64 specific header.
882         (CPP_SPEC): Redefine for allowing -municode option.
883         (STARTFILE_SPEC): Likewise.
884         * config/i386/t-mingw-w64: New.
885         * config/i386/mingw-w64.opt: New.
886         (municode): Add new target option.
887         * doc/invoke.texi (municode): Add documentation for new option.
888
889 2009-04-21  Ian Lance Taylor  <iant@google.com>
890
891         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
892         Correct test for number of arguments.
893         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
894
895 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
896
897         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
898         argument of emit_library_call.
899
900 2009-04-21  Richard Guenther  <rguenther@suse.de>
901
902         PR middle-end/39829
903         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
904         inside VIEW_CONVERT_EXPRs.
905
906 2009-04-21  Martin Jambor  <mjambor@suse.cz>
907
908         * tree-switch-conversion.c (build_constructors): Split a long line.
909         (constructor_contains_same_values_p): New function.
910         (build_one_array): Create assigns of constants if possible, do not
911         call mark_sym_for_renaming, call update_stmt.
912         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
913         make_rename_temp.  Do not call mark_symbols_for_renaming, call
914         update_stmt.
915         (gen_def_assigns): Do not call mark_symbols_for_renaming or
916         find_new_referenced_vars, call update_stmt.
917         (gen_inbound_check): Use create_tmp_var and create ssa names manually
918         instead of calling make_rename_temp.  Do not call
919         find_new_referenced_vars or mark_symbols_for_renaming, call
920         update_stmt.
921
922 2009-04-21  Richard Guenther  <rguenther@suse.de>
923
924         PR tree-optimization/39827
925         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
926         (tree_ssa_phiprop): Pass the correct array size.
927
928 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
929
930         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
931
932 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
933
934         PR 16202
935         * c-typeck.c (lvalue_p): Move declaration ...
936         * c-common.h (lvalue_p): ... to here.
937         * c-common.c (candidate_equal_p): New.
938         (add_tlist): Use it.
939         (merge_tlist): Use it.
940         (warn_for_collisions_1): Likewise.
941         (warning_candidate_p): Accept more candidates.
942         (verify_tree): A warning candidate can be an expression. Use
943         candidate_equal_p.
944
945 2009-04-21  Ben Elliston  <bje@au.ibm.com>
946
947         PR target/5267
948         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
949         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
950         options.  Remove -mcall-solaris documentation.
951
952 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
953
954         PR c++/13358
955         * doc/invoke.texi (-Wlong-long): Update description.
956         * c-lex (interpret_integer): Only warn if there was no previous
957         overflow and -Wlong-long is enabled.
958         * c-decl.c (declspecs_add_type): Drop redundant flags.
959         * c.opt (Wlong-long): Init to -1.
960         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
961         and front-end warn_long_long. Wlong-long only depends on other
962         flags if it is uninitialized.
963         * c-parser.c (disable_extension_diagnostics): warn_long_long is
964         the same for CPP and FE.
965         (restore_extension_diagnostics): Likewise.
966
967 2009-04-20  Ian Lance Taylor  <iant@google.com>
968
969         Fix enum conversions which are invalid in C++:
970         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
971         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
972         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
973         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
974         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
975         (dbxout_parms): Likewise.
976         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
977         (df_clear_flags): Likewise.
978         * df-problems.c (df_rd_bb_local_compute_process_def): Change
979         top_flag parameter to int.
980         (df_chain_create_bb_process_use): Likewise.
981         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
982         Remove cast.
983         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
984         (df_ref_create_structure, df_def_record_1): Likewise.
985         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
986         (df_notes_rescan): Change 0 to VOIDmode in function call.
987         (df_get_call_refs, df_insn_refs_collect): Likewise.
988         (df_bb_regs_collect): Likewise.
989         (df_entry_block_defs_collect): Likewise.
990         (df_exit_block_uses_collect): Likewise.
991         * df.h: Update declarations.
992         * double-int.c (double_int_divmod): Add cast to enum type.
993         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
994         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
995         (based_loc_descr): Likewise.
996         (loc_descriptor_from_tree_1): Change first_op and second_op to
997         enum dwarf_location_atom.  Add cast to enum type.
998         * expmed.c (init_expmed): Change 0 to SET in function call.
999         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
1000         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
1001         (do_store_flag): Likewise.
1002         * fixed-value.h (struct fixed_value): Change mode to enum
1003         machine_mode.
1004         * function.c (assign_parms): Change 0 to VOIDmode in function call.
1005         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
1006         function call.
1007         (insert_insn_decl, insert_decl, insert_state): Likewise.
1008         (automata_list_finish): Likewise.
1009         * genrecog.c (process_define_predicate): Add cast to enum type.
1010         * gensupport.c (init_predicate_table): Add cast to enum type.
1011         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
1012         function call.
1013         (gimple_build_call_1, gimple_build_label): Likewise.
1014         (gimple_build_goto, gimple_build_asm_1): Likewise.
1015         (gimple_build_switch_1, gimple_build_cdt): Likewise.
1016         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
1017         (enum fallback): Rename from enum fallback_t.
1018         (fallback_t): Typedef as int.
1019         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
1020         GSI_SAME_STMT in function call.
1021         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
1022         enum type.
1023         (setup_reg_class_relations): Likewise.
1024         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
1025         (setup_prohibited_class_mode_regs): Add cast to enum type.
1026         (setup_prohibited_mode_move_regs): Likewise.
1027         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
1028         (record_address_regs): Change i to enum reg_class.
1029         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
1030         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
1031         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
1032         (GET_MODE_2XWIDER_MODE): Likewise.
1033         (GET_CLASS_NARROWEST_MODE): Likewise.
1034         * omp-low.c (expand_omp_for): Add cast to enum type.
1035         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
1036         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
1037         * postreload.c (reload_cse_simplify_operands): Change rclass local
1038         to enum reg_class.
1039         * predict.c (combine_predictions_for_insn): Change best_predictor
1040         and predictor to enum br_predictor.
1041         (combine_predictions_for_bb): Likewise.
1042         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
1043         use SET_PREDICT_EXPR_OUTCOME.
1044         * real.c (real_arithmetic): Change icode to code in function call.
1045         * reginfo.c (init_move_cost): Add casts to enum type.
1046         (init_reg_sets_1, init_fake_stack_mems): Likewise.
1047         * regmove.c (regclass_compatible_p): Change class0 and class1 to
1048         enum reg_class.
1049         * reload.c (find_valid_class): Add casts to enum type.
1050         (push_reload): Change 0 to NO_REGS in function call.
1051         (find_reloads): Change this_alternative to array of enum
1052         reg_class.  Remove some now-unnecessary casts.
1053         (make_memloc): Change 0 to VOIDmode in function call.
1054         * reload1.c (reload): Change 0 to VOIDmode in function call.
1055         (eliminate_regs_1, elimination_effects): Likewise.
1056         (eliminate_regs_in_insn): Likewise.
1057         (emit_input_reload_insns): Add cast to enum type.
1058         (delete_output_reload): Change 0 to VOIDmode in function call.
1059         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
1060         to enum type in function call.
1061         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
1062         (SET_PREDICT_EXPR_OUTCOME): Define.
1063         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
1064         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
1065         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
1066         (dump_function): Likewise.
1067         * tree-dump.h: Update declarations.
1068         * tree-pass.h: Update declarations.
1069         * varasm.c (assemble_integer): Change mclass to enum mode_class.
1070         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
1071         enum type.
1072         (arm_rtx_costs_1): Correct parenthesization.
1073         (arm_rtx_costs): Add casts to enum type.
1074         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
1075         (vfp_emit_fstmd): Use add_rg_note.
1076         (emit_multi_reg_push, emit_sfm): Likewise.
1077         (thumb_set_frame_pointer): Likewise.
1078         (arm_expand_prologue): Likewise.
1079         (arm_regno_class): Change return type to enum reg_class.
1080         (thumb1_expand_prologue): Use add_reg_note.
1081         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
1082         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
1083         in function call.
1084         * config/arm/gentune.sh: Add cast to enum type.
1085         * config/arm/arm-tune.md: Rebuild.
1086         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
1087         (ix86_split_fp_branch, predict_jump): Likewise.
1088         (ix86_expand_multi_arg_builtin): Change sub_code from enum
1089         insn_code to enum rtx_code.
1090         (ix86_builtin_vectorized_function): Add cast to enum type.
1091         * config/i386/i386.md (truncdfsf2): Change slot to enum
1092         ix86_stack_slot.
1093         (truncxf<mode>2, isinf<mode>2): Likewise.
1094         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
1095         enum type.
1096         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
1097         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
1098         (insert_bundle_state): Change 1 to INSERT in function call.
1099         (ia64_add_bundle_selector_before): Likewise.
1100         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
1101         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
1102         (restore_stack_nonlocal): Likewise.
1103         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
1104         function call.
1105         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
1106         function call.
1107         (mips_rtx_costs): Likewise.
1108         (mips_override_options): Add casts to enum type.
1109         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
1110         in function call.
1111         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
1112         (store_reg, set_reg_plus_d): Likewise.
1113         (hppa_expand_prologue, hppa_profile_hook): Likewise.
1114         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1115         cast to enum type.
1116         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
1117         function call.
1118         (emit_unlikely_jump): Use add_reg_note.
1119         (rs6000_emit_allocate_stack): Likewise.
1120         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
1121         (output_toc): Change 1 to INSERT in function call.
1122         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
1123         (rs6000_initialize_trampoline): Likewise.
1124         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
1125         function call.
1126         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
1127         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
1128         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
1129         (save_gprs): Use add_reg_note.
1130         (s390_emit_prologue): Likewise.
1131         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1132         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
1133         (sparc_fold_builtin): Add cast to enum type.
1134         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
1135         enum insn_code.
1136         (spu_expand_prologue): Use add_reg_note.
1137         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
1138
1139 2009-04-20  Ian Lance Taylor  <iant@google.com>
1140
1141         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
1142         (c_parser_postfix_expression_after_primary): Get VEC for list of
1143         arguments.  Get original types of arguments.  Call
1144         build_function_call_vec.
1145         (cached_expr_list_1, cached_expr_list_2): New static variables.
1146         (c_parser_expr_list): Change return type to VEC *.  Add
1147         p_orig_types parameter.  Change all callers.
1148         (c_parser_release_expr): New static function.
1149         (c_parser_vec_to_tree_list): New static function.
1150         * c-typeck.c (build_function_call): Rewrite to build a VEC and
1151         call build_function_call_vec.
1152         (build_function_call_vec): New function, based on old
1153         build_function_call.
1154         (convert_arguments): Remove nargs and argarray parameters.  Change
1155         values to a VEC.  Add origtypes parameter.
1156         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
1157         (convert_for_assignment): Add origtype parameter.  Change all
1158         callers.  If warn_cxx_compat, check for conversion to an enum
1159         type when calling a function.
1160         (store_init_value): Add origtype parameter.  Change all callers.
1161         (digest_init): Likewise.
1162         (struct init_node): Add origtype field.
1163         (add_pending_init): Add origtype parameter.  Change all callers.
1164         (output_init_element): Likewise.
1165         (output_pending_init_elements): Pass origtype from init_node to
1166         output_init_element.
1167         (process_init_element): Pass origtype from c_expr to
1168         output_init_element.
1169         (c_finish_return): Add origtype parameter.  Change all callers.
1170         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
1171         caller.
1172         (sync_resolve_params): Likewise.
1173         (sync_resolve_return): Change params to first_param.  Change caller.
1174         (resolve_overloaded_builtins): Change params to VEC *.  Change
1175         callers.  Save first parameter around call to build_function_call_vec.
1176         * c-decl.c (finish_decl): Add origtype parameter.  Change all
1177         callers.  Call build_function_call_vec rather than
1178         build_function_call for cleanup.
1179         * c-tree.h: Update declarations.
1180         * c-common.h: Update declarations.
1181         * stub-objc.c (objc_rewrite_function_call): Change parameter from
1182         params to first_param.
1183         * target.h (struct gcc_target): Change resolve_overloaded_builtin
1184         params parameter from tree to void *.
1185         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1186         Change arglist parameter to have type void *, and to be a pointer
1187         to a VEC.
1188         * config/rs6000/rs6000-protos.h
1189         (altivec_resolve_overloaded_builtin): Update declaration.
1190         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
1191         fnargs parameter to have type void *, and to be a pointer to a
1192         VEC.  Call build_function_call_vec instead of
1193         build_function_call.
1194         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
1195
1196 2009-04-20  Joey Ye  <joey.ye@intel.com>
1197             Xuepeng Guo <xuepeng.guo@intel.com>
1198             H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
1201
1202         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
1203         (IX86_LEA_PRIORITY): Likewise.
1204         (distance_non_agu_define): New function.
1205         (distance_agu_use): Likewise.
1206         (ix86_lea_for_add_ok): Likewise.
1207         (ix86_dep_by_shift_count): Likewise.
1208
1209         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
1210         should split for LEA.
1211
1212         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
1213         function.
1214         (ix86_dep_by_shift_count): Likewise.
1215
1216 2009-04-20  Richard Guenther  <rguenther@suse.de>
1217
1218         * expr.c (handled_component_p): Move ...
1219         * tree.h (handled_component_p): ... here.
1220         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
1221         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
1222         and REALPART_EXPR to be in one group.
1223
1224 2009-04-20  Richard Guenther  <rguenther@suse.de>
1225
1226         * basic-block.h (get_all_dominated_blocks): Declare.
1227         * dominance.c (get_all_dominated_blocks): New function.
1228         * tree-cfg.c (get_all_dominated_blocks): Remove.
1229         (remove_edge_and_dominated_blocks): Adjust.
1230         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
1231         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
1232         instead of recursing.
1233
1234 2009-04-20  Doug Kwan  <dougkwan@google.com>
1235
1236         * cgraph.h (cgraph_node_ptr): New type for vector functions.
1237         (struct cgraph_node_set_def): New type.
1238         (cgraph_node_set) New type. Also declare vector functions.
1239         (struct cgraph_node_set_element_def): New type.
1240         (cgraph_node_set_element): Ditto.
1241         (cgraph_node_set_iterator): New iterator type.
1242         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
1243         cgraph_node_set_remove, dump_cgraph_node_set,
1244         debug_cgraph_node_set): New prototypes.
1245         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
1246         cgraph_node_set_size): New inlines.
1247         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
1248         including cgraph.h.
1249         (struct ipa_opt_pass): Add struct cgraph_node_set_def
1250         argument to function 'write_summary'.
1251         * ipa.c: Include ggc.h.
1252         (hash_cgraph_node_set_element,
1253         eq_cgraph_node_set_element, cgraph_node_set_new,
1254         cgraph_node_set_add, cgraph_node_set_remove,
1255         cgraph_node_set_find, dump_cgraph_node_set,
1256         debug_cgraph_node_set): New functions.
1257         * Makefile.in (ipa.o): Add dependency on GGC_H.
1258
1259 2009-04-20  Ira Rosen  <irar@il.ibm.com>
1260
1261         PR tree-optimization/39675
1262         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
1263         check of the return code of vect_schedule_slp. Check that
1264         stmt_vec_info still exists for the statement, before checking its
1265         vectorization type.
1266
1267 2009-04-20  Michael Matz  <matz@suse.de>
1268
1269         * Makefile.in (generated_files): Take out $(simple_generated_c).
1270
1271 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
1272
1273         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
1274         (UINTPTR_TYPE):  Likewise.
1275
1276 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1277
1278         PR c/37481
1279         * c-typeck.c (digest_init): Check for initializing an array with a
1280         string literal.
1281
1282 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1283
1284         PR c/19771
1285         * c-semantics.c (pop_stmt_list): Propagate
1286         STATEMENT_LIST_HAS_LABEL to parent statement list.
1287
1288 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
1289
1290         * config/mips/mips.h (mips_tune_attr): New macro.
1291         * config/mips/mips.md (cpu): Use it.
1292
1293 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1294
1295         PR c/38243
1296         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
1297         declaring a tag.
1298
1299 2009-04-19  Diego Novillo  <dnovillo@google.com>
1300
1301         * toplev.c (compile_file): Move call to coverage_finish ...
1302         * cgraphunit.c (ipa_passes): ... here.
1303         Call cgraph_process_new_functions.
1304         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
1305         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
1306
1307 2009-04-19  Jan Hubicka  <jh@suse.cz>
1308
1309         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
1310         cfun.
1311         (dump_cgraph_node): Dump can throw external flag.
1312         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
1313
1314 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1315
1316         PR c/32061
1317         PR c++/36954
1318         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
1319         * common.opt (Wlogical-op): Move from here...
1320         * c.opt (Wlogical-op): ... to here.
1321         * c-typeck.c (parser_build_binary_op): Update call to
1322         warn_logical_operator.
1323         * c-opts.c (c_common_post_options): Enable warn_logical_op with
1324         extra_warnings.
1325         * c-common.c (warn_logical_op): Update.
1326         * c-common.h (warn_logical_op): Update declaration.
1327
1328 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1329
1330         * tree.c (protected_set_expr_location): Fix formatting.
1331
1332 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1333
1334         PR c/27676
1335         * c-typeck.c (readonly_warning): new.
1336         (build_unary_op, build_modify_expr): Use readonly_warning for
1337         storing into something readonly but not const-qualified.
1338
1339 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1340
1341         PR c/22367
1342         * c-typeck.c (build_unary_op): Check for taking address of
1343         expression of type void.
1344
1345 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1346
1347         PR c/35210
1348         * c-typeck.c (build_function_call): Check for calling a function
1349         with qualified void return types.  Call require_complete_type when
1350         generating a trap.
1351
1352 2009-04-18  Jan Hubicka  <jh@suse.cz>
1353
1354         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
1355         Set nothrow flag.
1356         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
1357         can_throw_external flag.
1358         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
1359         * ipa-pure-const.c (ignore_edge): New function.
1360         (propagate): Compute order for NOTHROW computation; set NOTHROWs
1361         only over can_throw_external edges.
1362         (local_pure_const): Add nothrow flag.
1363         * ipa-utils.c (searchc): Add ignore_edge callback.
1364         (ipa_utils_reduced_inorder): Add ignore_edge callback.
1365         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
1366         (set_nothrow_function_flags): Update cgraph.
1367         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
1368
1369 2009-04-18  Richard Guenther  <rguenther@suse.de>
1370
1371         PR middle-end/39804
1372         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
1373         (fold_stmt): ... this and ...
1374         (fold_stmt_inplace): ... this.
1375         (fold_stmt_1): Fold references in calls and asms.
1376         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
1377
1378 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1379
1380         * tree-vrp.c (ssa_name_nonzero_p): Remove.
1381         * tree.h: Remove the prototype for ssa_name_nonzero_p.
1382
1383 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1384
1385         * tree.c (function_args_count): Remove.
1386         * tree.h: Remove the prototype for function_args_count.
1387
1388 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1389
1390         * tree-iterator.c (expr_only): Remove.
1391         * tree.h: Remove the prototype for expr_only.
1392
1393 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1394
1395         * reginfo.c (cannot_change_mode_set_regs): Remove.
1396         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
1397
1398 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
1399
1400         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
1401         whether operands 0 and 1 overlaps.
1402
1403 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1404
1405         PR middle-end/36902
1406         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
1407         pointer. Use warning_at instead of warning.
1408         (search_for_addr_array): Likewise.
1409         (check_array_bounds): Likewise.
1410         (check_all_array_refs): Check that the incoming edge is not in the
1411         list of edges to be removed.
1412         (check_all_array_refs): Avoid the temporal pointer.
1413         (vrp_visit_cond_stmt): Fix typo.
1414         (simplify_switch_using_ranges): Handle the case where the switch
1415         index is an integer constant.
1416
1417 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
1418
1419         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
1420
1421 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1422
1423         * doc/extend.texi, doc/invoke.texi: Fix typos.
1424
1425 2009-04-17  Cary Coutant  <ccoutant@google.com>
1426
1427         * tree-flow-inline.h (get_lineno): Fix inverted test.
1428
1429 2009-04-17  Diego Novillo  <dnovillo@google.com>
1430
1431         * tree-ssa-pre.c (create_expression_by_pieces): Remove
1432         assertion for AVAIL_OUT.
1433
1434 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
1435
1436         PR target/38627
1437         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
1438         * config/sh/linux-atomic.asm: Likewise.
1439
1440 2009-04-17  Diego Novillo  <dnovillo@google.com>
1441
1442         * except.c (debug_eh_tree): New.
1443         (struct eh_region, struct eh_status): Move ...
1444         * except.h: ... here.
1445         (add_type_for_runtime): Declare extern.
1446         (lookup_type_for_runtime): Likewise.
1447         (debug_eh_tree): Declare.
1448         * Makefile.in (GTFILES): List except.h before except.c
1449
1450 2009-04-17  Diego Novillo  <dnovillo@google.com>
1451
1452         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
1453         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1454         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
1455         (find_vars_r): ... here.
1456         * tree-flow.h (find_referenced_vars_in): Declare.
1457         * tree-ssa-pre.c (create_expression_by_pieces): Assert
1458         that AVAIL_OUT exists for BLOCK.
1459         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
1460         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
1461         (tree-parloops.o): Likewise.
1462
1463 2009-04-17  Simon Baldwin  <simonb@google.com>
1464
1465         * toplev.c (default_tree_printer): Add handling for %E format.
1466
1467 2009-04-17  Diego Novillo  <dnovillo@google.com>
1468
1469         * tree-pretty-print.c (dump_generic_node): Add break after
1470         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
1471         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
1472         FUNCTION_TYPE together.  Call print_struct_decl when printing
1473         structures and TDF_SLIM is not given.
1474         (print_struct_decl): Fix logic for detecting recursion.
1475
1476 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1477
1478         PR 31567
1479         * gcc.c (create_at_file): New.
1480         (compile_input_file_p): New.
1481         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
1482         * main.c (main): Update call to toplev_main.
1483         * toplev.c (toplev_main): Change signature. Call expandargv.
1484         * toplev.h (toplev_main): Change signature.
1485
1486 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1487
1488         * dwarf2out.c (field_byte_offset): Use the type size as the field size
1489         if the latter is not constant.
1490
1491 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
1492
1493         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
1494
1495 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1496
1497         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
1498         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
1499
1500 2009-04-17  Richard Guenther  <rguenther@suse.de>
1501
1502         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1503         Handle component references view-converting an invariant address.
1504
1505 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
1506
1507         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
1508         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
1509         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
1510         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
1511         Use @deftypevr rather than @deftypevar.
1512
1513 2009-04-17  Richard Guenther  <rguenther@suse.de>
1514
1515         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
1516         (get_prop_source_stmt): Likewise.
1517         (can_propagate_from): Likewise.
1518
1519 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
1520
1521         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
1522         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
1523         (--with-multilib-list): Add default value.
1524         * configure: Regenerate.
1525         * Makefile.in (TM_ENDIAN_CONFIG): Define.
1526         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
1527         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
1528         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
1529         Don't add default cpu to multilib list unnecessarily, but do enable
1530         the relevant compiler option..
1531         Add support for --with-multilib-list=<blank> and
1532         --with-multilib-list=!<somelib> to supress unwanted multilibs.
1533         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
1534         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
1535         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
1536         TM_MULTILIB_CONFIG.
1537         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
1538         (MULTILIB_OSDIRNAMES): New variable.
1539         * config/sh/t-1e: Delete file.
1540         * config/sh/t-mlib-sh1: Delete file.
1541         * config/sh/t-mlib-sh2: Delete file.
1542         * config/sh/t-mlib-sh2a: Delete file.
1543         * config/sh/t-mlib-sh2a-nofpu: Delete file.
1544         * config/sh/t-mlib-sh2a-single: Delete file.
1545         * config/sh/t-mlib-sh2a-single-only: Delete file.
1546         * config/sh/t-mlib-sh2e: Delete file.
1547         * config/sh/t-mlib-sh3e: Delete file.
1548         * config/sh/t-mlib-sh4: Delete file.
1549         * config/sh/t-mlib-sh4-nofpu: Delete file.
1550         * config/sh/t-mlib-sh4-single: Delete file.
1551         * config/sh/t-mlib-sh4-single-only: Delete file.
1552         * config/sh/t-mlib-sh4a: Delete file.
1553         * config/sh/t-mlib-sh4a-nofpu: Delete file.
1554         * config/sh/t-mlib-sh4a-single: Delete file.
1555         * config/sh/t-mlib-sh4a-single-only: Delete file.
1556         * config/sh/t-mlib-sh4al: Delete file.
1557         * config/sh/t-mlib-sh5-32media: Delete file.
1558         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
1559         * config/sh/t-mlib-sh5-64media: Delete file.
1560         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
1561         * config/sh/t-mlib-sh5-compact: Delete file.
1562         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
1563         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
1564         * doc/install.texi (Options specification): Add
1565         --with-multilib-list and --with-endian.
1566
1567 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1568
1569         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
1570         REVISION_c.
1571         (OBJS-common): Add plugin-version.o.
1572         (plugin-version.o): New.
1573         * gcc-plugin.h (plugin_gcc_version): New.
1574         (plugin_default_version_check): New.
1575         (plugin_init_func, plugin_init): Add version argument.
1576         * plugin-version.c: New.
1577         * plugin.c (str_plugin_gcc_version_name): New.
1578         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
1579         pass it to the init function.
1580         (plugin_default_version_check): New.
1581
1582 2009-04-17  Richard Guenther  <rguenther@suse.de>
1583
1584         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
1585         for decl-vs-decl disambiguation.
1586
1587 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1588
1589         * config/s390/s390.h (s390_tune_attr): New macro definition.
1590         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
1591
1592 2009-04-17  Richard Guenther  <rguenther@suse.de>
1593
1594         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
1595         (fold_stmt_r): Likewise.
1596         (maybe_fold_reference): New function.
1597         (fold_gimple_assign): Handle cases fold_stmt_r did.
1598         (fold_stmt): Do not use fold_stmt_r.
1599         (fold_stmt_inplace): Likewise.
1600
1601 2009-04-17  Richard Guenther  <rguenther@suse.de>
1602
1603         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
1604         (record_equivalences_from_stmt): Remove useless checks and
1605         simplifications.
1606         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
1607         the type is already suitable.
1608
1609 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
1610
1611         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
1612
1613 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
1614
1615         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
1616         (CMPtype): Define as __gcc_CMPtype.
1617
1618 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
1619
1620         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
1621         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
1622
1623 2009-04-17  Richard Guenther  <rguenther@suse.de>
1624
1625         PR tree-optimization/39746
1626         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
1627         special-casing for builtins and static variable use/def.
1628         (call_may_clobber_ref_p_1): Likewise.
1629
1630 2009-04-16  Ian Lance Taylor  <iant@google.com>
1631
1632         * df.h: Include "timevar.h".
1633         (struct df_problem): Change tv_id field to timevar_id_t.
1634         * tree-pass.h: Include "timevar.h".
1635         (struct opt_pass): Change tv_id field to timevar_id_t.
1636         * timevar.h (timevar_id_t): Define TV_NONE.
1637         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
1638         TV_NONE rather than tv_id != 0.
1639         (execute_one_pass): Likewise.
1640         * Makefile.in (DF_H): Add $(TIMEVAR_H).
1641         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
1642         dependencies to $(TREE_PASS_H).
1643         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
1644         to TV_NONE.
1645         (pass_branch_target_load_optimize2): Likewise.
1646         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
1647         (pass_outof_cfg_layout_mode): Likewise.
1648         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
1649         (pass_rebuild_cgraph_edges): Likewise.
1650         (pass_remove_cgraph_callee_edges): Likewise.
1651         * df-core.c (pass_df_initialize_opt): Likewise.
1652         (pass_df_initialize_no_opt): Likewise.
1653         (pass_df_finish): Likewise.
1654         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1655         * except.c (pass_set_nothrow_function_flags): Likewise.
1656         (pass_convert_to_eh_region_ranges): Likewise.
1657         * final.c (pass_compute_alignments): Likewise.
1658         * function.c (pass_instantiate_virtual_regs): Likewise.
1659         (pass_init_function): Likewise.
1660         (pass_leaf_regs): Likewise.
1661         (pass_match_asm_constraints): Likewise.
1662         * gimple-low.c (pass_lower_cf): Likewise.
1663         (pass_mark_used_blocks): Likewise.
1664         * init-regs.c (pass_initialize_regs): Likewise.
1665         * integrate.c (pass_initial_value_sets): Likewise.
1666         * ira.c (pass_ira): Likewise.
1667         * jump.c (pass_cleanup_barriers): Likewise.
1668         * omp-low.c (pass_expand_omp): Likewise.
1669         (pass_lower_omp): Likewise.
1670         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
1671         * recog.c (pass_split_all_insns): Likewise.
1672         (pass_split_after_reload): Likewise.
1673         (pass_split_before_regstack): Likewise.
1674         (pass_split_before_sched2): Likewise.
1675         (pass_split_for_shorten_branches): Likewise.
1676         * reginfo.c (pass_reginfo_init): Likewise.
1677         (pass_subregs_of_mode_init): Likewise.
1678         (pass_subregs_of_mode_finish): Likewise.
1679         * passes.c (pass_postreload): Likewise.
1680         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1681         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
1682         (pass_warn_function_return): Likewise.
1683         (pass_warn_function_noreturn): Likewise.
1684         * tree-complex.c (pass_lower_complex): Likewise.
1685         (pass_lower_complex_O0): Likewise.
1686         * tree-if-conv.c (pass_if_conversion): Likewise.
1687         * tree-into-ssa.c (pass_build_ssa): Likewise.
1688         * tree-mudflap.c (pass_mudflap_1): Likewise.
1689         (pass_mudflap_2): Likewise.
1690         * tree-nomudflap.c (pass_mudflap_1): Likewise.
1691         (pass_mudflap_2): Likewise.
1692         * tree-nrv.c (pass_return_slot): Likewise.
1693         * tree-object-size.c (pass_object_sizes): Likewise.
1694         * tree-optimize.c (pass_all_optimizations): Likewise.
1695         (pass_early_local_passes): Likewise.
1696         (pass_all_early_optimizations): Likewise.
1697         (pass_cleanup_cfg): Likewise.
1698         (pass_cleanup_cfg_post_optimizing): Likewise.
1699         (pass_free_datastructures): Likewise.
1700         (pass_free_cfg_annotations): Likewise.
1701         (pass_fixup_cfg): Likewise.
1702         (pass_init_datastructures): Likewise.
1703         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
1704         (pass_late_warn_uninitialized): Likewise.
1705         (pass_update_address_taken): Likewise.
1706         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
1707         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
1708         (pass_cse_sincos): Likewise.
1709         (pass_convert_to_rsqrt): Likewise.
1710         * tree-ssa-structalias.c (pass_build_alias): Likewise.
1711         * tree-stdarg.c (pass_stdarg): Likewise.
1712         * tree-tailcall.c (pass_tail_recursion): Likewise.
1713         (pass_tail_calls): Likewise.
1714         * tree-vect-generic.c (pass_lower_vector): Likewise.
1715         (pass_lower_vector_ssa): Likewise.
1716         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
1717
1718 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
1719
1720         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
1721         XLR entry.
1722         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
1723         Handle -march=xlr.
1724         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
1725         logical and signext.
1726
1727 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1728
1729         PR target/39767
1730         * config/sh/predicates.md (arith_operand): Check if the operand
1731         of TRUNCATE is a REG.
1732
1733 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1734
1735         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
1736         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
1737
1738 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1739
1740         * tree-iterator.c (tsi_split_statement_list_after,
1741         tsi_split_statement_list_before): Remove.
1742         * tree-iterator.h: Remove the prototypes for
1743         tsi_split_statement_list_after and tsi_split_statement_list_before.
1744
1745 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1746
1747         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
1748         * tree-ssa-propagate.h: Remove the prototype for
1749         stmt_makes_single_load.
1750
1751 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1752
1753         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
1754         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
1755
1756 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1757
1758         * tree-iterator.c (EXPR_LAST_BODY): Remove.
1759
1760 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1761
1762         * except.c (eh_region_outer_p): Remove.
1763         * except.h: Remove the prototype for eh_region_outer_p.
1764
1765 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1766
1767         * function.c (current_function_assembler_name): Remove.
1768         * function.h: Remove the prototype for
1769         current_function_assembler_name.
1770
1771 2009-04-16  Ian Lance Taylor  <iant@google.com>
1772
1773         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
1774         (add_reg_note): Call alloc_reg_note.
1775         * rtl.h (alloc_reg_note): Declare.
1776         * combine.c (try_combine): Use alloc_reg_note.
1777         (recog_for_combine, move_deaths): Likewise.
1778         (distribute_notes): Use alloc_reg_note and add_reg_note.
1779         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1780         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1781         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1782
1783 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
1784
1785         PR rtl-optimization/39762
1786         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1787         ira_may_move_out_cost): Add comments about way of their usage.
1788         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
1789
1790         * ira-conflicts.c (process_regs_for_copy): Use function
1791         ira_get_register_move_cost instead of global
1792         ira_register_move_cost.
1793
1794         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1795         color_pass, move_spill_restore, update_curr_costs): Ditto.
1796
1797         * ira-lives.c (process_single_reg_class_operands): Ditto.
1798
1799         * ira-emit.c (emit_move_list): Ditto.
1800
1801         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1802         (record_reg_classes): Ditto.  Use functions
1803         ira_get_register_move_cost and ira_get_may_move_cost instead of
1804         global vars ira_register_move_cost, ira_may_move_out_cost and
1805         ira_may_move_in_cost.
1806         (record_address_regs): Don't call ira_init_register_move_cost.
1807         Use function ira_get_may_move_cost instead of global
1808         ira_may_move_in_cost.
1809         (process_bb_node_for_hard_reg_moves): Use function
1810         ira_get_register_move_cost instead of global ira_register_move_cost.
1811         (ira_costs): Don't call ira_init_register_move_cost.
1812
1813 2009-04-16  Richard Guenther  <rguenther@suse.de>
1814
1815         * tree-cfg.c (verify_gimple_assign_binary):
1816         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1817         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1818         (create_general_new_stmt): Note that this function is broken.
1819
1820 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1821
1822         * common.opt (fhelp): Add Var(help_flag).
1823         * gcc-plugin.h (plugin_info): Add help.
1824         * plugin.c (plugin_name_args): Add help.
1825         (register_plugin_info): Set plugin->help.
1826         (print_help_one_plugin): New.
1827         (print_plugins_help): New.
1828         * plugin.h (print_plugins_help): New.
1829         * toplev.c (toplev_main): Call print_plugins_help if needed.
1830
1831 2009-04-16  Richard Guenther  <rguenther@suse.de>
1832
1833         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1834         (gimple_ior_addresses_taken_1): New function.
1835         (gimple_ior_addresses_taken): Likewise.
1836         * gimple.h (struct gimple_statement_with_ops_base): Remove
1837         addresses_taken member.
1838         (gimple_ior_addresses_taken): Declare.
1839         (gimple_addresses_taken, gimple_addresses_taken_ptr,
1840         gimple_set_addresses_taken): Remove.
1841         * ipa-reference.c (mark_address): New function.
1842         (scan_stmt_for_static_refs): Use it for marking addresses taken.
1843         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1844         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
1845         (gimple_add_to_addresses_taken): Remove.
1846         (get_tmr_operands): Call mark_address_taken.
1847         (get_asm_expr_operands): Likewise.
1848         (get_expr_operands): Likewise.
1849         (build_ssa_operands): Do not clear the addresses_taken bitmap.
1850         (free_stmt_operands): Do not free it.
1851         * tree-ssa.c (delete_tree_ssa): Likewise.
1852         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1853
1854 2009-04-16  Richard Guenther  <rguenther@suse.de>
1855
1856         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1857         (walk_stmt_load_store_ops): Likewise.
1858         * gimple.c (get_base_loadstore): New function.
1859         (walk_stmt_load_store_addr_ops): Likewise.
1860         (walk_stmt_load_store_ops): Likewise.
1861         * ipa-pure-const.c (check_op): Simplify.
1862         (check_load, check_store): New functions.
1863         (check_stmt): Use walk_stmt_load_store_ops.
1864         * ipa-reference.c (mark_load): Adjust signature.
1865         (mark_store): Likewise.
1866         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1867
1868 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1869
1870         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1871         (plugin_info): New.
1872         * opts.c (common_handle_option): Don't call print_version.
1873         * plugin.c (plugin_name_args): Add version.
1874         (register_plugin_info): New.
1875         (register_callback): Handle PLUGIN_INFO.
1876         (try_init_one_plugin): New.
1877         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1878         if failed to init.
1879         (finalize_one_plugin): New.
1880         (finalize_plugins): New.
1881         (print_one_plugin): New.
1882         (print_plugins_versions): New.
1883         * plugin.h (print_plugins_versions): New.
1884         (finalize_plugins): New.
1885         * toplev.c (compile_file): Don't call initialize_plugins.
1886         (print_version): Call print_plugins_versions.
1887         (toplev_main): Call initialize_plugins. Print version if needed.
1888         Call finalize_plugins.
1889
1890 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1891
1892         * common.opt (fversion): New.
1893         * gcc.c (print_version): New.
1894         (process_command): Don't print the version. Just set print_version.
1895         (main): Print version. Call subprocesses if print_version and
1896         verbose_flag are set.
1897         * opts.c (common_handle_option): Handle OPT_fversion.
1898
1899 2009-04-16  Richard Guenther  <rguenther@suse.de>
1900             Ira Rosen  <irar@il.ibm.com>
1901
1902         PR tree-optimization/39698
1903         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1904         type of the reduction variable.  Only generate the def if
1905         it is needed.
1906
1907         * omp-low.c (expand_omp_for_generic): When converting to a pointer
1908         make sure to first convert to an integer of the same precision.
1909         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1910         the type of the evolution correctly in computing the new
1911         induction variable base.
1912
1913 2009-04-16  Richard Guenther  <rguenther@suse.de>
1914
1915         PR middle-end/39625
1916         * tree-cfg.c (make_blocks): Split statements with to-be
1917         abnormal SSA names on the lhs.
1918
1919 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
1920
1921         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1922         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1923         * c-typeck.c (really_start_incremental_init): Likewise.
1924         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1925         (TARGET_INITIALIZER): Remove it.
1926         * target.h (struct target): Remove vector_opaque_p.
1927         * tree.c (build_opaque_vector_type): New.
1928         * tree.h (TYPE_VECTOR_OPAQUE): New.
1929         (build_opaque_vector_type): Declare.
1930         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1931         * config/rs6000/rs6000.c (build_opaque_vector_type,
1932         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1933         (rs6000_init_builtins): Use build_opaque_vector_type for
1934         opaque_V4SI_type_node.
1935
1936 2009-04-15  Catherine Moore  <clm@codesourcery.com>
1937
1938         * debug.h (set_name):  Declare.
1939         * dwarf2out.c (dwarf2out_set_name): Declare.
1940         (dwarf2_debug_hooks): Add set_name.
1941         (find_AT_string): New.
1942         (add_AT_string): Call find_AT_string.
1943         (dwarf2out_set_name): New.
1944         * cp/decl.c (grokdeclarator): Call set_name.
1945         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1946         * debug.c (do_nothing_debug_hooks):  Likewise.
1947         * dbxout.c (dbx_debug_hooks): Likewise.
1948         * sdbout.c (sdb_debug_hooks): Likewise.
1949
1950 2009-04-15  Michael Eager <eager@eagercon.com>
1951
1952         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1953         reg for single-precision FPU.
1954         * config/rs6000/rs6000.md (movsi_internal1): Only for
1955         !TARGET_SINGLE_FPU.
1956         (movsi_internal1_single): New. Add pattern to move SI values to/from
1957         single-precision FP regs.
1958
1959 2009-04-15  Richard Guenther  <rguenther@suse.de>
1960
1961         * omp-low.c (lower_rec_input_clauses): Build correct address
1962         expressions.
1963         (expand_omp_for_generic): Fix multiplication type.
1964         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1965         (generate_memset_zero): Fix types.
1966         * tree-profile.c (prepare_instrumented_value): Correctly
1967         widen a pointer.
1968
1969 2009-04-15  Ian Lance Taylor  <iant@google.com>
1970
1971         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1972         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1973         for -Wall and for -Wc++-compat.
1974         (c_common_post_options): For C++, set warn_enum_compare if not
1975         already set.
1976         * c-tree.h (struct c_expr): Add field original_type.
1977         (build_external_ref): Update declaration.
1978         * c-parser.c (c_parser_braced_init): Set original_type.
1979         (c_parser_initelt): Likewise.
1980         (c_parser_expr_no_commas): Likewise.
1981         (c_parser_conditional_expression): Likewise.
1982         (c_parser_cast_expression): Likewise.
1983         (c_parser_unary_expression): Likewise.  Pull setting of
1984         original_code to top of function.
1985         (c_parser_sizeof_expression): Set original_type.
1986         (c_parser_alignof_expression): Likewise.
1987         (c_parser_postfix_expression): Likewise.  Pull setting of
1988         original_code to top of function.
1989         (c_parser_postfix_expression_after_paren_type): Set original_type.
1990         (c_parser_postfix_expression_after_primary): Likewise.
1991         (c_parser_expression): Likewise.
1992         * c-typeck.c (build_external_ref): Add type parameter.  Change all
1993         callers.
1994         (c_expr_sizeof_expr): Set original_type field.
1995         (parser_build_unary_op): Likewise.
1996         (parser_build_binary_op): Likewise.  Optionally warn about
1997         comparisons of enums of different types.
1998         (digest_init): Set original_type field.
1999         (really_start_incremental_init): Likewise.
2000         (push_init_level, pop_init_level): Likewise.
2001         * doc/invoke.texi (Warning Options): -Wenum-compare now
2002         supported in C.
2003
2004 2009-04-15  Richard Guenther  <rguenther@suse.de>
2005
2006         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
2007         out a necessary conversion.
2008         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
2009         names we didn't value number.
2010         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
2011
2012 2009-04-15  Richard Guenther  <rguenther@suse.de>
2013
2014         PR tree-optimization/39764
2015         * tree-ssa-ccp.c (get_value): Canonicalize value with
2016         canonicalize_float_value.
2017
2018 2009-04-15  Jan Hubicka  <jh@suse.cz>
2019
2020         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
2021         Wrong version of patch.
2022
2023 2009-04-15  Jan Hubicka  <jh@suse.cz>
2024
2025         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
2026
2027 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
2028
2029         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
2030         our distinct integral and vector types.
2031
2032 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
2033
2034         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
2035         * init.c (build_vtbl_address): Remove call to assemble_external.
2036
2037 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
2038
2039         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
2040         output for other floating point modes.
2041
2042 2009-04-14  Diego Novillo  <dnovillo@google.com>
2043
2044         * diagnostic.c (diagnostic_report_diagnostic): Do not
2045         warn about loaded plugins for DK_ERROR and DK_WARNING.
2046         * c-decl.c (declspecs_add_type): Move call to
2047         invoke_plugin_callbacks ...
2048         * c-parser.c (c_parser_declspecs): ... here.
2049         * plugin.c (dump_active_plugins): Tidy output.
2050
2051 2009-04-14  Diego Novillo  <dnovillo@google.com>
2052             Le-Chun Wu  <lcwu@google.com>
2053
2054         * configure.ac: Add --enable-plugin support.
2055         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
2056         * Makefile.in (PLUGIN_H): Define.
2057         Export ENABLE_PLUGIN and GMPINC to site.exp.
2058         Add PLUGINLIBS to link command.
2059         Add/modify dependencies for plugin.o and files including plugin.h.
2060         (plugin.o): New.
2061         * config.in: Regenerate.
2062
2063         * opts.c (common_handle_option): Handle OPT_fplugin_ and
2064         OPT_fplugin_arg_.
2065
2066 2009-04-14  Le-Chun Wu  <lcwu@google.com>
2067
2068         * tree-pass.h (register_one_dump_file): Add a prototype for
2069         register_one_dump_file.
2070         * toplev.c (compile_file): Call initialize_plugins.
2071         (do_compile): Call invoke_plugin_callbacks.
2072         (toplev_main): Call invoke_plugin_callbacks.
2073         * common.opt: Add -fplugin= and -fplugin-arg-.
2074         * gcc-plugin.h: New public header file for plugins to include.
2075         * plugin.c: New source file.
2076         * plugin.h: New internal header file.
2077         * passes.c (register_one_dump_file): Make it external.
2078
2079         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
2080
2081 2009-04-14  Diego Novillo  <dnovillo@google.com>
2082
2083         * doc/plugins.texi: New.
2084         * doc/gccint.texi: Add reference to Plugins chapter.
2085         * doc/invoke.texi: Document -fplugin and -fplugin-arg
2086         * diagnostic.c (diagnostic_report_diagnostic): Warn about
2087         loaded plugins, if any.
2088         * timevar.def (TV_PLUGIN_INIT): Define.
2089         (TV_PLUGIN_RUN): Define.
2090         * plugin.c: Include timevar.h
2091         (plugins_active_p): New.
2092         (dump_active_plugins): New.
2093         (debug_active_plugins): New.
2094
2095 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
2096
2097         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
2098         library paths.
2099         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
2100
2101 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
2102
2103         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
2104         the same as a minus without a shift.
2105
2106 2009-04-14  Nick Clifton  <nickc@redhat.com>
2107
2108         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
2109         comparisons with small integers will always produce a short
2110         branch.
2111
2112 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
2113
2114         Merge:
2115         2008-12-19  Diego Novillo  <dnovillo@google.com>
2116
2117         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
2118
2119 2009-04-14  Richard Guenther  <rguenther@suse.de>
2120
2121         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
2122         verification.
2123         (verify_gimple_assign_binary): Likewise.  Handle shifts and
2124         rotates correctly.
2125         (verify_gimple_phi): Print the mismatched argument position.
2126         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
2127         Fix types.
2128         (vect_update_init_of_dr): Likewise.
2129         * matrix-reorg.c (transform_access_sites): Do what the
2130         comment suggests.
2131         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
2132
2133 2009-04-13  Michael Eager <eager@eagercon.com>
2134
2135         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
2136         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
2137         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
2138         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
2139         remove duplicate config
2140
2141 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2142
2143         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
2144         file_name:line_number type locator of the call site.
2145
2146 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2147
2148         * genautomata.c: Put blank after comma.
2149         (automaton_decls): New.
2150         (struct unit_usage): Add comments to member next.
2151         (store_alt_unit_usage): Keep the list ordered.
2152         (unit_present_on_list_p, equal_alternatives_p): New.
2153         (check_regexp_units_distribution): Check units distribution
2154         correctness correctly.
2155         (main): Don't write automata if error is found.  Return correct
2156         exit code.
2157
2158         * config/m68k/cf.md (cfv4_ds): Remove.
2159         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
2160         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
2161
2162         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
2163         power4-load-ext, power4-store, power4-store-update,
2164         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
2165         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
2166         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
2167         power4-sqrt, power4-isync): Modify reservation to make correct
2168         unit distribution to automata.
2169
2170         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
2171         power5-store-update, power5-two, power5-three, power5-lmul,
2172         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2173
2174 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
2175
2176         * except.c (pass_set_nothrow_function_flags): Set name and add
2177         TODO_dump_func.
2178         (set_nothrow_function_flags): Mention in the dump file when
2179         changing a function to nothrow.
2180
2181 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
2182
2183         PR/39066
2184         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
2185         instead of unsigned long.
2186
2187 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2188
2189         * config/arm/arm.c (return_used_this_function): Remove.
2190         (arm_output_function_prologue): Remove use of
2191         return_used_this_function.
2192         (output_return_instruction): Replace use of
2193         return_used_this_function
2194         by cfun->machine->return_used_this_function.
2195         (arm_output_epilogue): Likewise.
2196         (arm_output_function_epilogue): Likewise.
2197         (thumb_unexpanded_epilogue): Likewise.
2198         * config/arm/arm.h (struct machine_function):
2199         New member return_used_this_function.
2200
2201 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
2202
2203         * doc/install.texi: Correct description of default directory for
2204         --with-gxx-include-dir.
2205
2206 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2207
2208         * fold-const.c (build_range_check): Properly deal with enumeral and
2209         boolean base types.
2210
2211 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
2212
2213         * doc/invoke.texi (max_gcse_passes): Remove documentation.
2214         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
2215         * params.h (MAX_GCSE_PASSES): Remove.
2216         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
2217         in sequence.  Remove ability to run multiple passes.
2218         (bypass_jumps): Report run as third CPROP pass.
2219
2220 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
2221
2222         PR middle-end/39651
2223         * except.c (can_throw_external): Look at each insn in a SEQUENCE
2224         when deciding whether the whole SEQUENCE can throw.
2225
2226 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
2227
2228         PR target/39740
2229         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
2230         offseted label references.
2231
2232 2009-04-11  Jan Hubicka  <jh@suse.cz>
2233
2234         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
2235
2236 2009-04-11  Richard Guenther  <rguenther@suse.de>
2237
2238         PR middle-end/39732
2239         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
2240         return variables as TREE_ADDRESSABLE.
2241
2242 2009-04-11  Richard Guenther  <rguenther@suse.de>
2243
2244         PR tree-optimization/39713
2245         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
2246         reference trees have SSA_NAME operands.
2247
2248 2009-04-11  Richard Guenther  <rguenther@suse.de>
2249
2250         PR c/39712
2251         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
2252         address expressions.
2253
2254 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2255
2256         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
2257         match changes in Cygwin 1.7
2258         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2259         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
2260
2261 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2262
2263         PR tree-optimization/39701
2264         * doc/invoke.texi (Optimization Options): Document change in
2265         meaning and initialization of -fdelete-null-pointer-checks.
2266
2267 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2268
2269         PR middle-end/39701
2270         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
2271
2272         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
2273         here.
2274
2275         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
2276
2277 2009-04-10  Chao-ying Fu  <fu@mips.com>
2278
2279         * doc/tm.texi (Instruction Output): Document
2280         TARGET_ASM_FINAL_POSTSCAN_INSN.
2281         * target.h (final_postscan_insn): New field in asm_out.
2282         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2283         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
2284         * final.c (final_scan_insn): Call
2285         targetm.asm_out.final_postscan_insn after outputting
2286         an asm macro and a normal instruction.
2287
2288         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
2289         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
2290         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
2291         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
2292         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2293
2294 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2295
2296         PR middle-end/39701
2297         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
2298         variables as non-NULL even with -fdelete-null-pointer-checks.
2299
2300 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
2303
2304 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
2305
2306         PR target/39678
2307         * config/i386/i386.c (classify_argument): Handle SCmode with
2308         (bit_offset % 64) != 0.
2309
2310 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
2311
2312         * doc/invoke.texi (Optimize Options): Add cross-reference to
2313         -Q --help=optimizers examples.
2314
2315 2009-04-10  Ben Elliston  <bje@au.ibm.com>
2316
2317         PR target/36800
2318         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
2319         regalign for the reg == fpr and TDmode case.
2320
2321 2009-04-09  David Ayers  <ayers@fsfe.org>
2322
2323         PR objc/29200
2324         * objc/objc-act.c (warn_with_method): Remove helper function.
2325         (check_duplicates): Call warning and inform directly.
2326         (really_start_method): Likewise.
2327
2328 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2329
2330         * expmed.c (expand_divmod): Always use a comparison for a division
2331         by a large unsigned integer.
2332
2333         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
2334         for things others than variables or functions as nonzero.
2335
2336 2009-04-09  Nick Clifton  <nickc@redhat.com>
2337
2338         * unwind-compat.c: Change copyright header to refer to version
2339         3 of the GNU General Public License with version 3.1 of the
2340         GCC Runtime Library Exception and to point readers at the
2341         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
2342         * config/alpha/crtfastmath.c: Likewise.
2343         * config/alpha/linux-unwind.h: Likewise.
2344         * config/alpha/qrnnd.asm: Likewise.
2345         * config/alpha/vms-crt0-64.c: Likewise.
2346         * config/alpha/vms-crt0.c: Likewise.
2347         * config/alpha/vms-dwarf2.asm: Likewise.
2348         * config/alpha/vms-dwarf2eh.asm: Likewise.
2349         * config/alpha/vms-psxcrt0-64.c: Likewise.
2350         * config/alpha/vms-psxcrt0.c: Likewise.
2351         * config/alpha/vms_tramp.asm: Likewise.
2352         * config/arc/initfini.c: Likewise.
2353         * config/arc/lib1funcs.asm: Likewise.
2354         * config/arm/bpabi-v6m.S: Likewise.
2355         * config/arm/bpabi.S: Likewise.
2356         * config/arm/bpabi.c: Likewise.
2357         * config/arm/crti.asm: Likewise.
2358         * config/arm/crtn.asm: Likewise.
2359         * config/arm/ieee754-df.S: Likewise.
2360         * config/arm/ieee754-sf.S: Likewise.
2361         * config/arm/lib1funcs.asm: Likewise.
2362         * config/arm/libunwind.S: Likewise.
2363         * config/arm/linux-atomic.c: Likewise.
2364         * config/arm/mmintrin.h: Likewise.
2365         * config/arm/pr-support.c: Likewise.
2366         * config/arm/unaligned-funcs.c: Likewise.
2367         * config/arm/unwind-arm.c: Likewise.
2368         * config/arm/unwind-arm.h: Likewise.
2369         * config/avr/libgcc.S: Likewise.
2370         * config/bfin/crti.s: Likewise.
2371         * config/bfin/crtlibid.s: Likewise.
2372         * config/bfin/crtn.s: Likewise.
2373         * config/bfin/lib1funcs.asm: Likewise.
2374         * config/bfin/linux-unwind.h: Likewise.
2375         * config/cris/arit.c: Likewise.
2376         * config/cris/cris_abi_symbol.c: Likewise.
2377         * config/darwin-64.c: Likewise.
2378         * config/darwin-crt2.c: Likewise.
2379         * config/darwin-crt3.c: Likewise.
2380         * config/darwin.h: Likewise.
2381         * config/dbxelf.h: Likewise.
2382         * config/dfp-bit.c: Likewise.
2383         * config/dfp-bit.h: Likewise.
2384         * config/elfos.h: Likewise.
2385         * config/fixed-bit.c: Likewise.
2386         * config/fixed-bit.h: Likewise.
2387         * config/fp-bit.c: Likewise.
2388         * config/fp-bit.h: Likewise.
2389         * config/fr30/crti.asm: Likewise.
2390         * config/fr30/crtn.asm: Likewise.
2391         * config/fr30/lib1funcs.asm: Likewise.
2392         * config/freebsd-spec.h: Likewise.
2393         * config/frv/cmovd.c: Likewise.
2394         * config/frv/cmovh.c: Likewise.
2395         * config/frv/cmovw.c: Likewise.
2396         * config/frv/frvbegin.c: Likewise.
2397         * config/frv/frvend.c: Likewise.
2398         * config/frv/lib1funcs.asm: Likewise.
2399         * config/glibc-stdint.h: Likewise.
2400         * config/h8300/clzhi2.c: Likewise.
2401         * config/h8300/crti.asm: Likewise.
2402         * config/h8300/crtn.asm: Likewise.
2403         * config/h8300/ctzhi2.c: Likewise.
2404         * config/h8300/fixunssfsi.c: Likewise.
2405         * config/h8300/lib1funcs.asm: Likewise.
2406         * config/h8300/parityhi2.c: Likewise.
2407         * config/h8300/popcounthi2.c: Likewise.
2408         * config/i386/ammintrin.h: Likewise.
2409         * config/i386/att.h: Likewise.
2410         * config/i386/avxintrin.h: Likewise.
2411         * config/i386/biarch64.h: Likewise.
2412         * config/i386/bmmintrin.h: Likewise.
2413         * config/i386/cpuid.h: Likewise.
2414         * config/i386/cross-stdarg.h: Likewise.
2415         * config/i386/crtfastmath.c: Likewise.
2416         * config/i386/crtprec.c: Likewise.
2417         * config/i386/cygming-crtbegin.c: Likewise.
2418         * config/i386/cygming-crtend.c: Likewise.
2419         * config/i386/cygwin.asm: Likewise.
2420         * config/i386/emmintrin.h: Likewise.
2421         * config/i386/gmm_malloc.h: Likewise.
2422         * config/i386/gthr-win32.c: Likewise.
2423         * config/i386/i386.h: Likewise.
2424         * config/i386/immintrin.h: Likewise.
2425         * config/i386/linux-unwind.h: Likewise.
2426         * config/i386/linux64.h: Likewise.
2427         * config/i386/mm3dnow.h: Likewise.
2428         * config/i386/mmintrin-common.h: Likewise.
2429         * config/i386/mmintrin.h: Likewise.
2430         * config/i386/nmmintrin.h: Likewise.
2431         * config/i386/pmm_malloc.h: Likewise.
2432         * config/i386/pmmintrin.h: Likewise.
2433         * config/i386/smmintrin.h: Likewise.
2434         * config/i386/sol2-c1.asm: Likewise.
2435         * config/i386/sol2-ci.asm: Likewise.
2436         * config/i386/sol2-cn.asm: Likewise.
2437         * config/i386/sol2-gc1.asm: Likewise.
2438         * config/i386/tmmintrin.h: Likewise.
2439         * config/i386/unix.h: Likewise.
2440         * config/i386/w32-unwind.h: Likewise.
2441         * config/i386/wmmintrin.h: Likewise.
2442         * config/i386/x86-64.h: Likewise.
2443         * config/i386/x86intrin.h: Likewise.
2444         * config/i386/xmmintrin.h: Likewise.
2445         * config/ia64/crtbegin.asm: Likewise.
2446         * config/ia64/crtend.asm: Likewise.
2447         * config/ia64/crtfastmath.c: Likewise.
2448         * config/ia64/crti.asm: Likewise.
2449         * config/ia64/crtn.asm: Likewise.
2450         * config/ia64/fde-glibc.c: Likewise.
2451         * config/ia64/lib1funcs.asm: Likewise.
2452         * config/ia64/linux-unwind.h: Likewise.
2453         * config/ia64/quadlib.c: Likewise.
2454         * config/ia64/unwind-ia64.c: Likewise.
2455         * config/linux.h: Likewise.
2456         * config/m32c/m32c-lib1.S: Likewise.
2457         * config/m32c/m32c-lib2-trapv.c: Likewise.
2458         * config/m32c/m32c-lib2.c: Likewise.
2459         * config/m32r/initfini.c: Likewise.
2460         * config/m68hc11/larith.asm: Likewise.
2461         * config/m68hc11/m68hc11-crt0.S: Likewise.
2462         * config/m68k/cf.md: Likewise.
2463         * config/m68k/crti.s: Likewise.
2464         * config/m68k/crtn.s: Likewise.
2465         * config/m68k/lb1sf68.asm: Likewise.
2466         * config/m68k/linux-unwind.h: Likewise.
2467         * config/mcore/crti.asm: Likewise.
2468         * config/mcore/crtn.asm: Likewise.
2469         * config/mcore/lib1.asm: Likewise.
2470         * config/mips/linux-unwind.h: Likewise.
2471         * config/mips/loongson.h: Likewise.
2472         * config/mips/mips16.S: Likewise.
2473         * config/mmix/crti.asm: Likewise.
2474         * config/mmix/crtn.asm: Likewise.
2475         * config/pa/fptr.c: Likewise.
2476         * config/pa/hpux-unwind.h: Likewise.
2477         * config/pa/lib2funcs.asm: Likewise.
2478         * config/pa/linux-atomic.c: Likewise.
2479         * config/pa/linux-unwind.h: Likewise.
2480         * config/pa/milli64.S: Likewise.
2481         * config/pa/quadlib.c: Likewise.
2482         * config/pa/stublib.c: Likewise.
2483         * config/picochip/libgccExtras/adddi3.asm: Likewise.
2484         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
2485         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
2486         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
2487         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
2488         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
2489         * config/picochip/libgccExtras/divmod15.asm: Likewise.
2490         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
2491         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
2492         * config/picochip/libgccExtras/longjmp.asm: Likewise.
2493         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
2494         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
2495         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
2496         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
2497         * config/picochip/libgccExtras/setjmp.asm: Likewise.
2498         * config/picochip/libgccExtras/subdi3.asm: Likewise.
2499         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
2500         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
2501         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
2502         * config/rs6000/750cl.h: Likewise.
2503         * config/rs6000/altivec.h: Likewise.
2504         * config/rs6000/biarch64.h: Likewise.
2505         * config/rs6000/crtresfpr.asm: Likewise.
2506         * config/rs6000/crtresgpr.asm: Likewise.
2507         * config/rs6000/crtresxfpr.asm: Likewise.
2508         * config/rs6000/crtresxgpr.asm: Likewise.
2509         * config/rs6000/crtsavfpr.asm: Likewise.
2510         * config/rs6000/crtsavgpr.asm: Likewise.
2511         * config/rs6000/darwin-asm.h: Likewise.
2512         * config/rs6000/darwin-fallback.c: Likewise.
2513         * config/rs6000/darwin-fpsave.asm: Likewise.
2514         * config/rs6000/darwin-ldouble.c: Likewise.
2515         * config/rs6000/darwin-tramp.asm: Likewise.
2516         * config/rs6000/darwin-unwind.h: Likewise.
2517         * config/rs6000/darwin-vecsave.asm: Likewise.
2518         * config/rs6000/darwin-world.asm: Likewise.
2519         * config/rs6000/e500crtres32gpr.asm: Likewise.
2520         * config/rs6000/e500crtres64gpr.asm: Likewise.
2521         * config/rs6000/e500crtres64gprctr.asm: Likewise.
2522         * config/rs6000/e500crtrest32gpr.asm: Likewise.
2523         * config/rs6000/e500crtrest64gpr.asm: Likewise.
2524         * config/rs6000/e500crtresx32gpr.asm: Likewise.
2525         * config/rs6000/e500crtresx64gpr.asm: Likewise.
2526         * config/rs6000/e500crtsav32gpr.asm: Likewise.
2527         * config/rs6000/e500crtsav64gpr.asm: Likewise.
2528         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2529         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
2530         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
2531         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
2532         * config/rs6000/eabi-ci.asm: Likewise.
2533         * config/rs6000/eabi-cn.asm: Likewise.
2534         * config/rs6000/eabi.asm: Likewise.
2535         * config/rs6000/linux-unwind.h: Likewise.
2536         * config/rs6000/linux64.h: Likewise.
2537         * config/rs6000/paired.h: Likewise.
2538         * config/rs6000/paired.md: Likewise.
2539         * config/rs6000/ppc64-fp.c: Likewise.
2540         * config/rs6000/ppu_intrinsics.h: Likewise.
2541         * config/rs6000/rs6000.h: Likewise.
2542         * config/rs6000/si2vmx.h: Likewise.
2543         * config/rs6000/sol-ci.asm: Likewise.
2544         * config/rs6000/sol-cn.asm: Likewise.
2545         * config/rs6000/spe.h: Likewise.
2546         * config/rs6000/spu2vmx.h: Likewise.
2547         * config/rs6000/sysv4.h: Likewise.
2548         * config/rs6000/tramp.asm: Likewise.
2549         * config/rs6000/vec_types.h: Likewise.
2550         * config/s390/linux-unwind.h: Likewise.
2551         * config/s390/tpf-unwind.h: Likewise.
2552         * config/score/crti.asm: Likewise.
2553         * config/score/crtn.asm: Likewise.
2554         * config/sh/crt1.asm: Likewise.
2555         * config/sh/crti.asm: Likewise.
2556         * config/sh/crtn.asm: Likewise.
2557         * config/sh/divtab-sh4-300.c: Likewise.
2558         * config/sh/divtab-sh4.c: Likewise.
2559         * config/sh/divtab.c: Likewise.
2560         * config/sh/lib1funcs-4-300.asm: Likewise.
2561         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
2562         * config/sh/lib1funcs.asm: Likewise.
2563         * config/sh/lib1funcs.h: Likewise.
2564         * config/sh/linux-atomic.asm: Likewise.
2565         * config/sh/linux-unwind.h: Likewise.
2566         * config/sh/shmedia.h: Likewise.
2567         * config/sh/sshmedia.h: Likewise.
2568         * config/sh/ushmedia.h: Likewise.
2569         * config/sparc/crtfastmath.c: Likewise.
2570         * config/sparc/linux-unwind.h: Likewise.
2571         * config/sparc/sol2-c1.asm: Likewise.
2572         * config/sparc/sol2-ci.asm: Likewise.
2573         * config/sparc/sol2-cn.asm: Likewise.
2574         * config/spu/divmodti4.c: Likewise.
2575         * config/spu/divv2df3.c: Likewise.
2576         * config/spu/float_disf.c: Likewise.
2577         * config/spu/float_unsdidf.c: Likewise.
2578         * config/spu/float_unsdisf.c: Likewise.
2579         * config/spu/float_unssidf.c: Likewise.
2580         * config/spu/mfc_multi_tag_release.c: Likewise.
2581         * config/spu/mfc_multi_tag_reserve.c: Likewise.
2582         * config/spu/mfc_tag_release.c: Likewise.
2583         * config/spu/mfc_tag_reserve.c: Likewise.
2584         * config/spu/mfc_tag_table.c: Likewise.
2585         * config/spu/multi3.c: Likewise.
2586         * config/spu/spu_internals.h: Likewise.
2587         * config/spu/spu_intrinsics.h: Likewise.
2588         * config/spu/spu_mfcio.h: Likewise.
2589         * config/spu/vec_types.h: Likewise.
2590         * config/spu/vmx2spu.h: Likewise.
2591         * config/stormy16/stormy16-lib2.c: Likewise.
2592         * config/svr4.h: Likewise.
2593         * config/sync.c: Likewise.
2594         * config/v850/lib1funcs.asm: Likewise.
2595         * config/vxlib-tls.c: Likewise.
2596         * config/vxlib.c: Likewise.
2597         * config/vxworks-dummy.h: Likewise.
2598         * config/xtensa/crti.asm: Likewise.
2599         * config/xtensa/crtn.asm: Likewise.
2600         * config/xtensa/ieee754-df.S: Likewise.
2601         * config/xtensa/ieee754-sf.S: Likewise.
2602         * config/xtensa/lib1funcs.asm: Likewise.
2603         * config/xtensa/lib2funcs.S: Likewise.
2604         * config/xtensa/linux-unwind.h: Likewise.
2605         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2606         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
2607         * coretypes.h: Likewise.
2608         * crtstuff.c: Likewise.
2609         * defaults.h: Likewise.
2610         * dwarf2.h: Likewise.
2611         * emutls.c: Likewise.
2612         * gbl-ctors.h: Likewise.
2613         * gcov-io.h: Likewise.
2614         * ginclude/float.h: Likewise.
2615         * ginclude/iso646.h: Likewise.
2616         * ginclude/stdarg.h: Likewise.
2617         * ginclude/stdbool.h: Likewise.
2618         * ginclude/stddef.h: Likewise.
2619         * ginclude/stdfix.h: Likewise.
2620         * ginclude/stdint-gcc.h: Likewise.
2621         * ginclude/tgmath.h: Likewise.
2622         * gthr-aix.h: Likewise.
2623         * gthr-dce.h: Likewise.
2624         * gthr-gnat.c: Likewise.
2625         * gthr-gnat.h: Likewise.
2626         * gthr-lynx.h: Likewise.
2627         * gthr-mipssde.h: Likewise.
2628         * gthr-nks.h: Likewise.
2629         * gthr-posix.c: Likewise.
2630         * gthr-posix.h: Likewise.
2631         * gthr-posix95.h: Likewise.
2632         * gthr-rtems.h: Likewise.
2633         * gthr-single.h: Likewise.
2634         * gthr-solaris.h: Likewise.
2635         * gthr-tpf.h: Likewise.
2636         * gthr-vxworks.h: Likewise.
2637         * gthr-win32.h: Likewise.
2638         * gthr.h: Likewise.
2639         * libgcc2.c: Likewise.
2640         * libgcc2.h: Likewise.
2641         * libgcov.c: Likewise.
2642         * tsystem.h: Likewise.
2643         * typeclass.h: Likewise.
2644         * unwind-c.c: Likewise.
2645         * unwind-compat.h: Likewise.
2646         * unwind-dw2-fde-compat.c: Likewise.
2647         * unwind-dw2-fde-darwin.c: Likewise.
2648         * unwind-dw2-fde-glibc.c: Likewise.
2649         * unwind-dw2-fde.c: Likewise.
2650         * unwind-dw2-fde.h: Likewise.
2651         * unwind-dw2.c: Likewise.
2652         * unwind-dw2.h: Likewise.
2653         * unwind-generic.h: Likewise.
2654         * unwind-pe.h: Likewise.
2655         * unwind-sjlj.c: Likewise.
2656         * unwind.inc: Likewise.
2657         * config/arm/neon-gen.ml: Change generated copyright header to
2658         refer to version 3 of the GNU General Public License with
2659         version 3.1 of the GCC Runtime Library Exception and to point
2660         readers at the COPYING3 and COPYING3.RUNTIME files and the
2661         FSF's license web page.
2662         * config/arm/arm_neon.h: Regenerate.
2663
2664 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2665
2666         * config/cris/cris.md: Change copyright header to refer to version
2667         3 of the GNU General Public License.
2668         * doc/install.texi2html: Change copyright header to refer to version
2669         3 of the GNU General Public License and to point readers at the
2670         COPYING3 file and the FSF's license web page.
2671         * config/vax/linux.h: Likewise.
2672
2673 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2674
2675         * config/i386/i386.md (cmpcc): New.
2676         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
2677         (sync_compare_and_swap_cc*): Delete.
2678
2679         * config/s390/s390.c (s390_compare_emitted): Remove.
2680         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
2681         s390_compare_emitted used to be handled.  Assert that modes match.
2682         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
2683         refer to sync_compare_and_swap_ccsi.
2684         * config/s390/s390.h (s390_compare_emitted): Remove.
2685         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
2686         instead of s390_compare_emitted.
2687         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
2688         instead of s390_compare_emitted.
2689         * config/s390/s390.md (cmpcc): New.
2690         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
2691         CC_REGNUM, do not pretend it's set.
2692         (sync_compare_and_swap_cc*): Delete.
2693         * config/s390/predicates.md (cc_reg_operand): New.
2694
2695         * expr.c (sync_compare_and_swap_cc): Delete.
2696         * optabs.h (sync_compare_and_swap_cc): Delete.
2697         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
2698         is being used with can_compare_p.
2699         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
2700         (find_cc_set): New.
2701         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
2702         look for a MODE_CC set instead.  Use emit_store_flag.
2703         (expand_compare_and_swap_loop): Likewise, with some additional
2704         complication to avoid a force_reg when useless.  Use
2705         emit_cmp_and_jump_insns.
2706         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
2707         * doc/md.texi (sync_compare_and_swap_cc): Merge with
2708         sync_compare_and_swap documentation.
2709
2710 2009-04-09  Jan Hubicka  <jh@suse.cz>
2711
2712         * except.c (find_prev_try): Break out from ....
2713         (duplicate_eh_regions): ... here; properly update prev_try pointers
2714         when duplication part of tree.
2715         (dump_eh_tree): Improve dumping.
2716         (verify_eh_region): New.
2717         (verify_eh_tree): Use it.
2718
2719 2009-04-06  Richard Guenther  <rguenther@suse.de>
2720
2721         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
2722         &ARRAY addresses by adjusting their types and prepending
2723         a conversion.
2724         * tree-cfg.c (verify_gimple_assign_single): Verify that
2725         addresses are correct.
2726
2727 2009-04-09  Richard Guenther  <rguenther@suse.de>
2728
2729         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
2730         indices into an array reference if possible.
2731         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2732         Fold POINTER_PLUS_EXPR statements with invariant address.
2733
2734 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
2735
2736         PR target/39634
2737         * config.gcc (powerpc64-*-linux*): Always build biarch.
2738
2739 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2740
2741         PR c/39613
2742         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
2743         it and pedwarn if this results in an INTEGER_CST.
2744
2745 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2746
2747         * doc/install.texi: Update minimum GMP version.  Remove obsolete
2748         text in MPFR section.
2749
2750 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2751
2752         * dwarf2out.c (class_scope_p): New static inline.
2753         (class_or_namespace_scope_p): Use it.
2754         (gen_variable_die): Use DW_TAG_member tag for static data member
2755         declarations instead of DW_TAG_variable.
2756
2757         PR middle-end/39573
2758         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2759         variables.
2760
2761 2009-04-08  Richard Guenther  <rguenther@suse.de>
2762
2763         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2764         valueize random data.
2765
2766 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
2767
2768         * config.gcc (aix tm_file):  Add aix-stdint.h.
2769         (aix tm clause use_gcc_stdint):  Set to wrap.
2770         * config/rs6000/aix-stdint.h:  New file.
2771
2772 2009-04-08  Richard Guenther  <rguenther@suse.de>
2773
2774         PR middle-end/36291
2775         * tree-dfa.c (add_referenced_var): Do not recurse into
2776         global initializers.
2777         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2778         exposed variables.
2779         (fold_const_aggregate_ref): Likewise.
2780
2781 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2782
2783         * recog.c (ordered_comparison_operator): New.
2784         * gensupport.c (std_preds): Add it.
2785         * doc/md.texi (Machine-Independent Predicates): Document it.
2786
2787 2009-04-08  Jan Hubicka  <jh@suse.cz>
2788
2789         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2790         * function.h (rtl_eh): Remove exception_handler_label_map.
2791         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2792         remove_exception_handler_label, for_each_eh_label_1): Remove.
2793         (rtl_remove_unreachable_regions): Remove.
2794         (convert_from_eh_region_ranges): Do not remove unreachable regions.
2795         (find_exception_handler_labels): Don't build the hashtable.
2796         (maybe_remove_eh_handler): Remove.
2797         (for_each_eh_label): Rewrite to walk the tree.
2798         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2799         * except.h (maybe_remove_eh_handler): Remove.
2800         * passes.c (init_optimization_passes): Schedule second EH cleanup
2801         before out-of-ssa.
2802         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2803         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2804
2805 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2806
2807         * genoutput.c (validate_optab_operands): New.
2808         (gen_insn, gen_expand): Call it.
2809
2810         * genflags.c (gen_insn): Detect misused iterators.
2811         (main): Pass line_no to gen_insn, exit with status 1 on error.
2812
2813         * genextract.c (line_no): Make global.
2814         (VEC_safe_set_locstr): Change assertion to error message.
2815         (main): Exit with status 1 on error.
2816
2817 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
2818
2819         PR c/39614
2820         PR c/39673
2821         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2822         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2823         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2824         * c-convert.c (convert): Do not call fold on results of conversion
2825         functions when the result is a C_MAYBE_CONST_EXPR.
2826         * c-parser.c (c_parser_postfix_expression): Do not fold condition
2827         of __builtin_choose_expr.
2828         * c-typeck.c (remove_c_maybe_const_expr): New.
2829         (build_unary_op, build_conditional_expr, build_compound_expr,
2830         build_binary_op, c_objc_common_truthvalue_conversion): Call
2831         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2832         integer operands.
2833
2834 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
2835
2836         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
2837         CODE to produce a new one. Add a prototype to use fold_convert_const
2838
2839 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2840
2841         PR bootstrap/39660
2842         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2843         mix declarations and code.
2844
2845 2009-04-08  Ben Elliston  <bje@au.ibm.com>
2846
2847         * gcc.c: Replace `CC' with `GCC' throughout.
2848
2849 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2850
2851         * doc/invoke.texi: Document Atom support.
2852
2853 2009-04-07  Jason Merrill  <jason@redhat.com>
2854
2855         PR c++/25185
2856         * c-common.h, c-common.c: Add flag_pretty_templates.
2857         * c-opts.c (c_common_handle_option): Set it.
2858         * c.opt: Add -fno-pretty-templates.
2859         * doc/invoke.texi (C++ Dialect Options): Likewise.
2860
2861 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2862
2863         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2864         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2865         (ia64_expand_builtin): Likewise.
2866
2867 2009-04-07  Martin Jambor  <mjambor@suse.cz>
2868
2869         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2870         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2871         ADDR_EXPRS are include too.
2872
2873 2009-04-07  Richard Guenther  <rguenther@suse.de>
2874
2875         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2876         decls are only used if passes as parameters or if they are
2877         local statics and the call is not to a builtin.
2878         (call_may_clobber_ref_p_1): Likewise.
2879
2880 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2881
2882         * expr.c (do_store_flag): Remove last argument.  Simplify code
2883         to avoid duplication of tests already done by can_compare_p.
2884         (expand_expr_real_1): Adjust caller.
2885
2886 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2887
2888         * optabs.c (can_compare_p): Test the predicate of a
2889         cbranch and cstore pattern.
2890
2891 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2892
2893         * expr.c (convert_move): Use emit_store_flag instead of
2894         "emulating" it.
2895
2896 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2897
2898         * config/i386/i386.c (ix86_compare_emitted): Remove.
2899         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2900         ix86_compare_op0 like ix86_compare_emitted used to be handled.
2901         * config/i386/i386.h (ix86_compare_emitted): Remove.
2902         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2903         instead of ix86_compare_emitted.
2904         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
2905
2906 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
2907
2908         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2909         Add t-sysroot-suffix to tmake_file.
2910         * config/print-sysroot-suffix.sh: New file.
2911         * config/t-sysroot-suffix: New file.
2912
2913 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2914
2915         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2916         as the latter produces a warning when the target does not support
2917         infinity.
2918
2919 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2920
2921         * dfp.c: Replace type punning assignments with memcpy throughout.
2922         * Makefile.in (dfp.o-warn): Remove.
2923
2924 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
2925
2926         PR target/39634
2927         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2928         Include soft-fp/t-softfp after rs6000/t-linux64.
2929
2930 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2931
2932         * stor-layout.c (set_sizetype): Use the full precision of their
2933         machine mode for bitsize types.
2934
2935 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2936
2937         * config/i386/i386.md: Revert 2 accidental checkins.
2938
2939 2009-04-06  Joey Ye  <joey.ye@intel.com>
2940             Xuepeng Guo <xuepeng.guo@intel.com>
2941             H.J. Lu  <hongjiu.lu@intel.com>
2942
2943         Atom pipeline model, tuning and insn selection.
2944         * config.gcc (atom): Add atom config options and target.
2945
2946         * config/i386/atom.md: New.
2947
2948         * config/i386/i386.c (atom_cost): New cost.
2949         (m_ATOM): New macro flag.
2950         (initial_ix86_tune_features): Set m_ATOM.
2951         (x86_accumulate_outgoing_args): Likewise.
2952         (x86_arch_always_fancy_math_387): Likewise.
2953         (processor_target): Add Atom cost.
2954         (cpu_names): Add Atom cpu name.
2955         (override_options): Set Atom ISA.
2956         (ix86_issue_rate): New case PROCESSOR_ATOM.
2957         (ix86_adjust_cost): Likewise.
2958
2959         * config/i386/i386.h (TARGET_ATOM): New target macro.
2960         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2961         (TARGET_OPT_AGU): New target option.
2962         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2963         (processor_type): Add PROCESSOR_ATOM.
2964
2965         * config/i386/i386.md (cpu): Add new value "atom".
2966         (use_carry, movu): New attr.
2967         (atom.md): Include atom.md.
2968         (adddi3_carry_rex64): Set attr "use_carry".
2969         (addqi3_carry): Likewise.
2970         (addhi3_carry): Likewise.
2971         (addsi3_carry): Likewise.
2972         (*addsi3_carry_zext): Likewise.
2973         (subdi3_carry_rex64): Likewise.
2974         (subqi3_carry): Likewise.
2975         (subhi3_carry): Likewise.
2976         (subsi3_carry): Likewise.
2977         (x86_movdicc_0_m1_rex64): Likewise.
2978         (*x86_movdicc_0_m1_se): Likewise.
2979         (x86_movsicc_0_m1): Likewise.
2980         (*x86_movsicc_0_m1_se): Likewise.
2981         (*adddi_1_rex64): Emit add insn as much as possible.
2982         (*addsi_1): Likewise.
2983         (return_internal): Set atom_unit.
2984         (return_internal_long): Likewise.
2985         (return_pop_internal): Likewise.
2986         (*rcpsf2_sse): Set atom_sse_attr attr.
2987         (*qrt<mode>2_sse): Likewise.
2988         (*prefetch_sse): Likewise.
2989
2990         * config/i386/i386-c.c (ix86_target_macros_internal): New case
2991         PROCESSOR_ATOM.
2992         (ix86_target_macros_internal): Likewise.
2993
2994         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2995         (*prefetch_sse_rex): Likewise.
2996         (sse_rcpv4sf2): Likewise.
2997         (sse_vmrcpv4sf2): Likewise.
2998         (sse_sqrtv4sf2): Likewise.
2999         (<sse>_vmsqrt<mode>2): Likewise.
3000         (sse_ldmxcsr): Likewise.
3001         (sse_stmxcsr): Likewise.
3002         (*sse_sfence): Likewise.
3003         (sse2_clflush): Likewise.
3004         (*sse2_mfence): Likewise.
3005         (*sse2_lfence): Likewise.
3006         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
3007         (<sse>_movup<ssemodesuffixf2c>): Likewise.
3008         (avx_movdqu<avxmodesuffix>): Likewise.
3009         (avx_lddqu<avxmodesuffix>): Likewise.
3010         (sse2_movntv2di): Change attr "type" to "ssemov".
3011         (sse2_movntsi): Likewise.
3012         (rsqrtv8sf2): Change attr "type" to "sseadd".
3013         (sse3_addsubv2df3): Set attr "atom_unit".
3014         (sse3_h<plusminus_insn>v4sf3): Likewise.
3015         (*sse2_pmaddwd): Likewise.
3016         (*vec_extractv2di_1_rex64): Likewise.
3017         (*vec_extractv2di_1_avx): Likewise.
3018         (sse2_psadbw): Likewise.
3019         (ssse3_phaddwv8hi3): Likewise.
3020         (ssse3_phaddwv4hi3): Likewise.
3021         (ssse3_phadddv4si3): Likewise.
3022         (ssse3_phadddv2si3): Likewise.
3023         (ssse3_phaddswv8hi3): Likewise.
3024         (ssse3_phaddswv4hi3): Likewise.
3025         (ssse3_phsubwv8hi3): Likewise.
3026         (ssse3_phsubwv4hi3): Likewise.
3027         (ssse3_phsubdv4si3): Likewise.
3028         (ssse3_phsubdv2si3): Likewise.
3029         (ssse3_phsubswv8hi3): Likewise.
3030         (ssse3_phsubswv4hi3): Likewise.
3031         (ssse3_pmaddubsw128): Likewise.
3032         (sse3_pmaddubsw: Likewise.
3033         (ssse3_palignrti): Likewise.
3034         (ssse3_palignrdi): Likewise.
3035
3036 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
3037
3038         * doc/install.texi (Specific): Fix two cross-references to MinGW.
3039
3040 2009-04-06  Richard Guenther  <rguenther@suse.de>
3041
3042         PR tree-optimization/28868
3043         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
3044         of which PHI results we inserted.
3045         (insert_into_preds_of_block): Record inserted PHIs.
3046         (eliminate): Eliminate redundant PHI nodes.
3047         (init_pre): Init inserted_phi_names.
3048
3049 2009-04-06  Richard Guenther  <rguenther@suse.de>
3050
3051         PR tree-optimization/39643
3052         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
3053         IMAGPART_EXPRs of complex constants.
3054         (execute_fold_all_builtins): If we folded a call queue
3055         TODO_update_address_taken.
3056
3057 2009-04-06  Jan Hubicka  <jh@suse.cz>
3058
3059         PR middle-end/39659
3060         * except.c (remove_unreachable_regions): Propagate may_contain_throw
3061         flag.
3062
3063 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
3064
3065         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
3066         delay slot.
3067         (ic_invalidate_array): Likewise.
3068
3069 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
3070
3071         * calls.c (emit_library_call_value_1): Fix a problem with parameter
3072         alignment for library calls.
3073
3074 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
3075
3076         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
3077         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
3078         * config/i386/mingw-stdint.h:  New file.
3079
3080 2009-04-05  Richard Guenther  <rguenther@suse.de>
3081
3082         PR tree-optimization/39648
3083         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
3084         our &A vs. &A[0] IL deficiencies.
3085
3086 2009-04-04  Jan Hubicka  <jh@suse.cz>
3087
3088         * except.c (sjlj_find_directly_reachable_regions): Be ready for
3089         removed toplevel regions.
3090         (sjlj_mark_call_sites): Likewise.
3091
3092 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
3093
3094         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
3095         (cygwin tm clause use_gcc_stdint):  Set to wrap.
3096         * config/i386/cygwin-stdint.h:  New file.
3097
3098 2009-04-04  Richard Guenther  <rguenther@suse.de>
3099
3100         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
3101         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
3102         single-argument PHIs if we are in loop-closed SSA form.
3103         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
3104         for the pre-condition.
3105         (slpeel_tree_peel_loop_to_edge): Likewise.
3106         (vect_build_loop_niters): Take an optional sequence to append stmts.
3107         (vect_generate_tmps_on_preheader): Likewise.
3108         (vect_do_peeling_for_loop_bound): Take extra guards for the
3109         pre-condition.
3110         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
3111         the cost model check.
3112         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
3113         guards if we are going to peel.  Do not apply versioning in that case.
3114         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
3115         (vect_do_peeling_for_loop_bound): Likewise.
3116         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
3117         loop bound only record extra pre-conditions, do not apply loop
3118         versioning.
3119
3120 2009-04-04  Richard Guenther  <rguenther@suse.de>
3121
3122         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
3123         renaming code.
3124
3125 2009-04-04  Jan Hubicka  <jh@suse.cz>
3126
3127         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
3128         last_basic_block for size of bb->index indexed array.
3129         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
3130         compute_out, link_btr_uses, build_btr_def_use_webs,
3131         build_btr_def_use_webs, migrate_btr_defs): Likewise.
3132
3133 2009-04-04  Jan Hubicka  <jh@suse.cz>
3134
3135         * except.c (remove_eh_handler_and_replace): Break out from ...
3136         (remove_eh_handler): ... here.
3137         (bring_to_root): New function.
3138         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
3139         handled ones, bring others to root of tree.
3140
3141 2009-04-04  Jan Hubicka  <jh@suse.cz>
3142
3143         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
3144         (all_phis_safe_to_merge): New function.
3145         (update_info): New structure.
3146         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
3147         (cleanup_empty_eh): Update SSA if possible.
3148
3149 2009-04-04  Richard Guenther  <rguenther@suse.de>
3150
3151         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
3152         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
3153         (append_vuse): Likewise.
3154
3155 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
3156
3157         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
3158         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
3159         instead of REG_UNSAVED for DW_CFA_undefined.
3160         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
3161         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
3162         outermost frame.
3163
3164 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
3165
3166         PR target/39501
3167         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
3168         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
3169         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
3170
3171 2009-04-04  Richard Guenther  <rguenther@suse.de>
3172
3173         PR tree-optimization/8781
3174         PR tree-optimization/37892
3175         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
3176         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
3177         (valueize_refs): Call it for *& valueizations.
3178         (shared_reference_ops_from_ref): Rename to ...
3179         (valueize_shared_reference_ops_from_ref): ... this and valueize.
3180         (shared_reference_ops_from_call): Rename to ...
3181         (valueize_shared_reference_ops_from_call): ... this and valueize.
3182         (vn_reference_lookup): Update.
3183         (visit_reference_op_call): Likewise.
3184         * tree-ssa-pre.c (phi_translate_1): Fold *&.
3185         (eliminate): Value-replace the call address in call statements.
3186
3187 2009-04-04  Richard Guenther  <rguenther@suse.de>
3188
3189         PR tree-optimization/39636
3190         * tree-ssa-forwprop.c
3191         (forward_propagate_addr_into_variable_array_index): Check for
3192         GIMPLE_ASSIGN before accessing the rhs code.
3193
3194 2009-04-03  Jason Merrill  <jason@redhat.com>
3195
3196         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
3197
3198 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
3199
3200         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
3201         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
3202         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
3203         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
3204         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
3205         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
3206         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
3207         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
3208         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
3209         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
3210         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
3211         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
3212         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
3213         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
3214         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
3215         Use fr_reg_or_fp01_operand instead of fr_register_operand
3216
3217         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
3218         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
3219         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
3220
3221 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
3222
3223         PR rtl-optimization/39607
3224         PR rtl-optimization/39631
3225
3226         Revert:
3227
3228         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3229         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3230         instead of DF_LR_OUT.
3231         * ira-lives.c (process_bb_node_lives): Ditto.
3232         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3233         instead of DF_LR_{OUT,IN}.
3234         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3235         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3236
3237 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
3238
3239         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
3240         (execute_lower_omp): Always run but take the short way out if -fopenmp
3241         is not given.
3242         (gate_lower_omp): Remove, forcing the pass manager to always run the
3243         pass and always set PROP_gimple_lomp.
3244         (pass_lower_omp): Remove gate function.
3245         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
3246         PROP_trees.  Instead, require it.
3247         * ipa-cp.c (pass_ipa_cp): Likewise.
3248         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
3249         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
3250         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
3251         and PROP_gimple_leh.
3252
3253 2009-04-03  Richard Guenther  <rguenther@suse.de>
3254
3255         PR middle-end/13146
3256         PR tree-optimization/23940
3257         PR tree-optimization/33237
3258         PR middle-end/33974
3259         PR middle-end/34093
3260         PR tree-optimization/36201
3261         PR tree-optimization/36230
3262         PR tree-optimization/38049
3263         PR tree-optimization/38207
3264         PR tree-optimization/38230
3265         PR tree-optimization/38301
3266         PR tree-optimization/38585
3267         PR middle-end/38895
3268         PR tree-optimization/38985
3269         PR tree-optimization/39299
3270         * tree-ssa-structalias.h: Remove.
3271         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
3272         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
3273         (struct vuse_element_d): Remove.
3274         (struct vuse_vec_d): Likewise.
3275         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
3276         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
3277         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
3278         VUSE_ELEMENT_VAR): Likewise.
3279         (struct voptype_d): Likewise.
3280         (NUM_VOP_FREE_BUCKETS): Likewise.
3281         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
3282         (struct stmt_operands_d): Remove.
3283         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
3284         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
3285         VDEF_NUM, VDEF_VECT): Likewise.
3286         (copy_virtual_operands): Remove.
3287         (operand_build_cmp): Likewise.
3288         (create_ssa_artificial_load_stmt): Likewise.
3289         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
3290         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
3291         vuse_index and mayuse_index members.  Pack and move done and iter_type
3292         members to the front.
3293         (SSA_OP_VMAYUSE): Remove.
3294         (SSA_OP_VIRTUAL_USES): Adjust.
3295         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
3296         (unlink_stmt_vdef): Declare.
3297         (add_to_addressable_set): Remove.
3298         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
3299         (vrp_visit_stmt): Likewise.
3300         * doc/tree-ssa.texi (Alias analysis): Update.
3301         * doc/invoke.texi (max-aliased-vops): Remove docs.
3302         (avg-aliased-vops): Likewise.
3303         * tree-into-ssa.c (syms_to_rename): Remove.
3304         (need_to_update_vops_p): Likewise.
3305         (need_to_initialize_update_ssa_p): Rename to ...
3306         (update_ssa_initialized_fn): ... this.  Track function we are
3307         initialized for.
3308         (symbol_marked_for_renaming): Simplify.
3309         (add_new_name_mapping): Do not set need_to_update_vops_p.
3310         (dump_currdefs): Use SYMS_TO_RENAME.
3311         (rewrite_update_stmt): Always walk all uses/defs.
3312         (dump_update_ssa): Adjust.
3313         (init_update_ssa): Take function argument.  Track what we are
3314         initialized for.
3315         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
3316         (create_new_def_for): Initialize for cfun, assert we are initialized
3317         for cfun.
3318         (mark_sym_for_renaming): Simplify.
3319         (mark_set_for_renaming): Do not initialize update-ssa.
3320         (need_ssa_update_p): Simplify.  Take function argument.
3321         (name_mappings_registered_p): Assert we ask for the correct function.
3322         (name_registered_for_update_p): Likewise.
3323         (ssa_names_to_replace): Likewise.
3324         (release_ssa_name_after_update_ssa): Likewise.
3325         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
3326         (dump_decl_set): Do not print a newline.
3327         (debug_decl_set): Do it here.
3328         (dump_update_ssa): And here.
3329         * tree-ssa-loop-im.c (move_computations): Adjust.
3330         (movement_possibility): Likewise.
3331         (determine_max_movement): Likewise.
3332         (gather_mem_refs_stmt): Likewise.
3333         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
3334         or NAME_MEMORY_TAG.
3335         * tree-complex.c (update_all_vops): Remove.
3336         (expand_complex_move): Adjust.
3337         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
3338         Simplify test for memory referencing statement.  Exclude
3339         non-invariant ADDR_EXPRs.
3340         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
3341         * tree-loop-distribution.c (generate_memset_zero): Adjust.
3342         (rdg_flag_uses): Likewise.
3343         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
3344         related code.
3345         (tree_optimize_tail_calls_1): Also split the
3346         edge from the entry block if we have degenerate PHI nodes in
3347         the first basic block.
3348         * tree.c (init_ttree): Remove memory-tag related code.
3349         (tree_code_size): Likewise.
3350         (tree_node_structure): Likewise.
3351         (build7_stat): Re-write to be build6_stat.
3352         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
3353         (SSA_VAR_P): Adjust.
3354         (struct tree_memory_tag): Remove.
3355         (struct tree_memory_partition_tag): Likewise.
3356         (union tree_node): Adjust.
3357         (build7): Re-write to be build6.
3358         * tree-pass.h (pass_reset_cc_flags): Remove.
3359         (TODO_update_address_taken): New flag.
3360         (pass_simple_dse): Remove.
3361         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
3362         * params.h (MAX_ALIASED_VOPS): Remove.
3363         (AVG_ALIASED_VOPS): Likewise.
3364         * omp-low.c (expand_omp_taskreg): Update SSA form.
3365         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
3366         aliases the lhs in a copy stmt.
3367         * tree-ssa-dse.c (struct address_walk_data): Remove.
3368         (memory_ssa_name_same): Likewise.
3369         (memory_address_same): Likewise.
3370         (get_kill_of_stmt_lhs): Likewise.
3371         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
3372         unused stores.  Look through PHI nodes into post-dominated regions.
3373         (dse_optimize_stmt): Simplify.  Properly remove stores.
3374         (tree_ssa_dse): Compute dominators.
3375         (execute_simple_dse): Remove.
3376         (pass_simple_dse): Likewise.
3377         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
3378         gimple_loaded_syms and gimple_stored_syms computation.
3379         * toplev.c (dump_memory_report): Dump alias and pta stats.
3380         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
3381         (vn_reference_eq): Likewise.
3382         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
3383         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
3384         valueize_vuses): Remove.
3385         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
3386         (get_def_ref_stmt_vuse): ... this.
3387         (vn_reference_lookup_2): New function.
3388         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
3389         walking equivalent vuses.  Simplify.
3390         (vn_reference_lookup): Likewise.
3391         (vn_reference_insert): Likewise.
3392         (vn_reference_insert_pieces): Likewise.
3393         (visit_reference_op_call): Simplify.
3394         (visit_reference_op_load): Likewise.
3395         (visit_reference_op_store): Likewise.
3396    &nb