OSDN Git Service

da92f2f9686a6e3e1564a1f85cd6d213393991e6
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2
3         PR c/39581
4         * c-decl.c (global_bindings_p): Return negative value.
5         (c_variable_size): New.  Based on variable_size from
6         stor-layout.c.
7         (grokdeclarator): Call c_variable_size not variable_size.
8
9 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
10
11         * config/i386/i386.c (print_operand) ['z']: Fix typo.
12
13 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
14
15         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
16         Redefine it to just use mingw/include.
17         (ASM_SPEC): Rules for -m32 and -m64.
18         (LINK_SPEC): Use Likewise.
19         (SPEC_32): New define.
20         (SPEC_64): Likewise.
21         (SUB_LINK_SPEC): Likewise.
22         (MULTILIB_DEFAULTS): New define.
23         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
24         Add multilib options.
25         (MULTILIB_DIRNAMES): Likewise.
26         (MULTILIB_OSDIRNAMES): Likewise.
27         (LIBGCC): Likewise.
28         (INSTALL_LIBGCC): Likewise.
29
30 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
31
32         PR c/39556
33         * c-tree.h (enum c_inline_static_type): New.
34         (record_inline_static): Declare.
35         * c-decl.c (struct c_inline_static, c_inline_statics,
36         record_inline_static, check_inline_statics): New.
37         (pop_file_scope): Call check_inline_statics.
38         (start_decl): Call record_inline_static instead of pedwarning
39         directly for static in inline function.
40         * c-typeck.c (build_external_ref): Call record_inline_static
41         instead of pedwarning directly for static referenced in inline
42         function.
43
44 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
45
46         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
47         not new but only being rescanned.
48         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
49         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
50         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
51         record_set_info, compute_set, grealloc): Remove.
52         (recompute_all_luids): New function.
53         (gcse_main): Don't compute sets, and don't do related memory
54         allocations/free-ing.  If something changed before the end of the
55         pass, update LUIDs using recompute_all_luids.
56         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
57         (free_gcse_mem): Don't free it either.
58         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
59         Use the df insn LUIDs.
60         (load_killed_in_block): Likewise.
61         (compute_hash_table_work): Don't compute reg_set_in_block.
62         (compute_transp): Use DF_REG_DEF_CHAINs.
63         (local_cprop_pass): Don't use compute_sets and related functions.
64         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
65         Use get_max_uid() instead of max_cuid.
66         (insert_insn_end_basic_block, pre_insert_copy_insn,
67         update_ld_motion_stores): Don't try to
68         keep reg_set tables up to date.
69         (pre_insert_copies): Use df insn LUIDs.
70         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
71         (reg_set_info): Don't use extra bitmap argument.
72         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
73         information to compute regs_set_in_block.
74         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
75         (bypass_jumps): Don't use compute_sets and friends.
76
77 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
78
79         PR testsuite/39710
80         * opts.c (undocumented_msg): Do not leave blank even with
81         ENABLE_CHECKING.
82
83 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
84
85         * c-decl.c (build_enumerator): Allow values folding to integer
86         constants but not integer constant expressions with a pedwarn if
87         pedantic.
88
89 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
90
91         PR c/39582
92         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
93         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
94         type is an integer constant.
95
96 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
97
98         PR target/39897
99         * config/i386/i386.c (print_operand) ['z']: Revert handling of
100         HImode operands.
101
102 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
103
104         PR c/39564
105         * c-decl.c (grokdeclarator): Diagnose declarations of functions
106         with variably modified return type and no storage class
107         specifiers, except for the case of nested functions.  Distinguish
108         extern declarations of functions with variably modified return
109         types from those of objects with variably modified types.
110
111 2009-04-25  Jan Hubicka  <jh@suse.cz>
112
113         * tree.c (list_equal_p): New function.
114         * tree.h (list_equal_p): Declare.
115         * coretypes.h (edge_def, edge, const_edge, basic_block_def
116         basic_block_def, basic_block, const_basic_block): New.
117         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
118         (redirect_eh_edge): New function.
119         (make_eh_edge_update_phi): EH edges are not abnormal.
120         * except.c: Include tree-flow.h.
121         (list_match): New function.
122         (eh_region_replaceable_by_p): New function.
123         (replace_region): New function.
124         (hash_type_list): New function.
125         (hash_eh_region): New function.
126         (eh_regions_equal_p): New function.
127         (merge_peers): New function.
128         (remove_unreachable_regions): Verify EH tree when checking;
129         merge peers.
130         (copy_eh_region_1): New function.
131         (copy_eh_region): New function.
132         (push_reachable_handler): New function.
133         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
134         regions without label but with live RESX.
135         * except.h (redirect_eh_edge_to_label): New.
136         * tree-flow.h (redirect_eh_edge): New.
137         * coretypes.h (edge_def, edge, const_edge, basic_block_def
138         basic_block_def, basic_block, const_basic_block): Remove.
139         * Makefile.in (except.o): Add dependency on tree-flow.h
140         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
141         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
142         Remove.
143
144 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
145
146         PR bootstrap/39645
147         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
148         on the destination of memcpy.
149
150 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
151
152         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
153         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
154         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
155
156 2009-04-25  Jan Hubicka  <jh@suse.cz>
157
158         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
159         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
160         to be reached by different label than left.
161         (update_eh_edges): Update comment; remove edge_to_remove if possible
162         and return true if suceeded.
163         (cleanup_empty_eh): Accept sharing map; handle shared regions.
164         (cleanup_eh): Compute sharing map.
165         * except.c (remove_eh_handler_and_replace): Add argument if we should
166         update regions.
167         (remove_unreachable_regions): Update for label sharing.
168         (label_to_region_map): Likewise.
169         (get_next_region_sharing_label): New function.
170         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
171         prev_try pointers.
172         (remove_eh_handler): Update.
173         (remove_eh_region_and_replace_by_outer_of): New function.
174         * except.h (struct eh_region): Add next_region_sharing_label.
175         (remove_eh_region_and_replace_by_outer_of,
176         get_next_region_sharing_label): Declare.
177         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
178
179 2009-04-25  Jan Hubicka  <jh@suse.cz>
180
181         * tree-cfg.c (split_critical_edges): Split also edges where we can't
182         insert code even if they are not critical.
183
184 2009-04-25  Jan Hubicka  <jh@suse.cz>
185
186         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
187         (gimple_can_remove_branch_p): EH edges won't remove branch by
188         redirection.
189         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
190         updating of non-abnormal EH edges.
191         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
192         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
193         (split_critical_edges): Split also edges where emitting code on them
194         will lead to splitting later.
195
196 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
197             H.J. Lu  <hongjiu.lu@intel.com>
198
199         PR target/39590
200         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
201         the configured assembler supports fildq and fistpq mnemonics.
202         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
203         * configure: Regenerated.
204         * config.in: Ditto.
205
206         * config/i386/i386.c (print_operand): Handle 'Z'.
207         ['z']: Remove handling of special fild/fist suffixes.
208         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
209         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
210         suffix of fild insn.
211         (*floatsi<mode>2_vector_mixed): Ditto.
212         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
213         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
214         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
215         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
216         * config/i386/gas.h (GAS_MNEMONICS): Remove.
217
218 2009-04-25  Ben Elliston  <bje@au.ibm.com>
219  
220         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
221         the source of a set operation.
222
223 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
224
225         * target.h (struct gcc_target): Add case_values_threshold field.
226         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
227         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
228         * targhooks.c (default_case_values_threshold): New function.
229         * targhooks.h (default_case_values_threshold): Declare function.
230         * stmt.c (expand_case): Use case_values_threshold target hook.
231         * expr.h (case_values_threshold): Remove declartation.
232         * expr.c (case_values_threshold): Remove function.
233         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
234
235         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
236         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
237         (avr_case_values_threshold): Declare as static.
238         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
239
240         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
241         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
242         (mn10300_case_values_threshold): New function.
243
244 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
245
246         * ira.c (setup_cover_and_important_classes): Add enum cast.
247
248 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
249
250         * genpreds.c (write_enum_constraint_num): Output definition of
251         CONSTRAINT_NUM_DEFINED_P macro.
252         * ira.c (setup_cover_and_important_classes): Use
253         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
254         
255 2009-04-24  DJ Delorie  <dj@redhat.com>
256
257         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
258         __SH2A_SINGLE_ONLY__ also.
259
260 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
261
262         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
263         (movdf_internal): Ditto.
264         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
265         SFmode and DFmode constants.
266         (ia64_print_operand): Add 'G' format for printing
267         floating point constants.
268
269 2009-04-24  Richard Guenther  <rguenther@suse.de>
270
271         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
272         from unsigned additions.
273
274 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
275
276         * c-typeck.c (set_init_index): Allow array designators that are
277         not integer constant expressions with a pedwarn if pedantic.
278
279 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
280
281         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
282         zero if no overlap in nonzero bits between the operands.
283
284 2009-04-24  Ian Lance Taylor  <iant@google.com>
285
286         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
287         (record_dead_and_set_regs): Likewise.
288         * df.h (struct df_mw_hardreg): Change flags field to int.
289         (struct df_base_ref): Likewise.
290         (struct df): Change changeable_flags field to int.
291         * df-scan.c (df_defs_record): Change clobber_flags to int.
292         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
293         constants rather than #define macros.
294         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
295         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
296         (enum dwarf_calling_convention): Likewise.
297         (enum dwarf_line_number_x_ops): Likewise.
298         (enum dwarf_call_frame_info): Likewise.
299         (enum dwarf_source_language): Likewise.
300         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
301         (add_calling_convention_attribute): Likewise.
302         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
303         (combine_comparisons): Change compcode to int.  Add cast to enum type.
304         * genrecog.c (maybe_both_true_2): Change c to int.
305         (write_switch): Likewise.  Add cast to enum type.
306         * gimplify.c (gimplify_omp_for): Handle return values from
307         gimplify_expr using MIN rather than bitwise or.
308         (gimplify_expr): Add cast to enum type.
309         * ipa-prop.c (update_jump_functions_after_inlining): Change
310         IPA_BOTTOM to IPA_JF_UNKNOWN.
311         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
312         Add casts to enum type.
313         (setup_cover_and_important_classes): Change cl to int.  Add casts
314         to enum type.
315         (setup_class_translate): Change cl and mode to int.
316         (ira_init_once): Change mode to int.
317         (free_register_move_costs): Likewise.
318         (setup_prohibited_mode_move_regs): Add casts to enum type.
319         * langhooks.c (add_builtin_function_common): Rework assertion that
320         value fits bitfield.
321         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
322         * omega.c (omega_do_elimination): Avoid math on enum types.
323         * optabs.c (expand_vec_shift_expr): Remove casts to int.
324         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
325         int local to handle integral_argment value.
326         * regmove.c (try_auto_increment): Change PUT_MODE to
327         PUT_REG_NOTE_KIND.
328         * reload.c (push_secondary_reload): Add casts to enum type.
329         (secondary_reload_class, find_valid_class): Likewise.
330         * reload1.c (emit_input_reload_insns): Likewise.
331         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
332         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
333         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
334         constant.
335         * tree.c (build_common_builtin_nodes): Add casts to enum type.
336         * tree-complex.c (complex_lattice_t): Typedef to int rather than
337         enum type.
338         (expand_complex_libcall): Add casts to enum type.
339         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
340         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
341         with ERROR_MARK, not NUM_TREE_CODES.
342         (vect_create_epilog_for_reduction): Likewise.
343         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
344         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
345         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
346         enum machine_mode.
347         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
348         vect_unused_in_loop.  Change 0 to loop_vect.
349         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
350         * var-tracking.c (get_init_value): Change return type to enum
351         var_init_status.
352         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
353         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
354         arm_fp_model.
355         (arm_override_options): Add casts to enum type.
356         (arm_emit_tls_decoration): Likewise.
357         * config/i386/i386.c (ix86_function_specific_restore): Add casts
358         to enum type.
359         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
360         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
361         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
362         enum type.
363         * config/s390/s390.c (code_for_builtin_64): Change to array of
364         enum insn_code.
365         (code_for_builtin_31): Likewise.
366         (s390_expand_builtin): Change code_for_builtin to enum insn_code
367         const *.
368         * config/sparc/sparc.c (sparc_override_options): Change value
369         field in struct code_model to enum cmodel.  In initializer change
370         0 to NULL and add cast to enum type.
371
372         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
373         Change all callers.  Issue a -Wc++-compat warning using
374         lhs_origtype if necessary.
375         (convert_for_assignment): Issue -Wc++-compat warnings about
376         invalid conversions to enum type on assignment.
377         * c-common.h (build_modify_expr): Update declaration.
378
379 2009-04-24  Nick Clifton  <nickc@redhat.com>
380
381         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
382         (function_arg_advance): Likewise.
383         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
384         5th alternative.
385
386 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
387
388         * config/s390/constraints.md ('I', 'J'): Fix condition.
389
390 2009-04-24  Diego Novillo  <dnovillo@google.com>
391
392         * gengtype-parse.c (parse_error): Add newline after message.
393
394 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
395
396         * config/i386/sse.md (avxmodesuffixs): Removed.
397         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
398         (*avx_pinsr<ssevecsize>): This.
399
400 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
401
402         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
403         follow chains of regs with a single definition, and allow expressions
404         that are function_invariant_p.
405         (simple_rhs_p): Allow expressions that are function_invariant_p.
406
407 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
408
409         PR middle-end/39867
410         * fold-const.c (fold_cond_expr_with_comparison): When folding
411         > and >= to MAX, make sure the MAX uses the same type as the
412         comparison's operands.
413
414 2009-04-24  Nick Clifton  <nickc@redhat.com>
415
416         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
417         addressing for DImode accesses.
418         (frv_print_operand_address): Handle PLUS case.
419         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
420
421 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
422
423         PR rtl-optimization/39794
424         * alias.c (canon_true_dependence): Add x_addr argument.
425         * rtl.h (canon_true_dependence): Adjust prototype.
426         * cse.c (check_dependence): Adjust canon_true_dependence callers.
427         * cselib.c (cselib_invalidate_mem): Likewise.
428         * gcse.c (compute_transp): Likewise.
429         * dse.c (scan_reads_nospill): Likewise.
430         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
431         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
432         canon_base_addr of the group, plus optional offset.
433         (struct group_info): Rename canon_base_mem to
434         canon_base_addr.
435         (get_group_info): Set canon_base_addr to canon_rtx of base, not
436         canon_rtx of base_mem.
437
438 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
439
440         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
441         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
442
443 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
444
445         * config/spu/spu-builtins.h: Delete file.
446
447         * config/spu/spu.h (enum spu_builtin_type): Move here from
448         spu-builtins.h.
449         (struct spu_builtin_description): Likewise.  Add GTY marker.
450         Do not use enum spu_function_code or enum insn_code.
451         (spu_builtins): Add extern declaration.
452
453         * config/spu/spu.c: Do not include "spu-builtins.h".
454         (enum spu_function_code, enum spu_builtin_type_index,
455         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
456         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
457         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
458         unsigned_V2DI_type_node): Move here from spu-builtins.h.
459         (spu_builtin_types): Make static.  Add GTY marker.
460         (spu_builtins): Add extern declaration with GTY marker.
461         Include "gt-spu.h".
462
463         * config/spu/spu-c.c: Do not include "spu-builtins.h".
464         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
465         Check programmatically whether all parameters are scalar.
466
467         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
468
469 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
470
471         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
472         assignment from the constructor either if the target is volatile.
473
474 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
475
476         * config/arm/arm.md (insv): Do not share operands[0].
477
478 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
479
480         * config/vxlib-tls.c (active_tls_threads): Delete.
481         (delete_hook_installed): New.
482         (tls_delete_hook): Don't delete the delete hook.
483         (tls_destructor): Delete it here.
484         (__gthread_set_specific): Adjust installing the delete hook.
485         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
486         __gthread_leave_tsd_dtor_context.
487
488 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
489
490         * c-format.c (gcc_tdiag_char_table): Add support for %E.
491
492 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
493
494         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
495         enum type.
496         (alpha_rtx_costs): Ditto.
497         (emit_unlikely_jump): Use add_reg_note.
498         (emit_frame_store_1): Ditto.
499         (alpha_expand_prologue): Ditto.
500         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
501         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
502
503 2009-04-23  Nick Clifton  <nickc@redhat.com>
504
505         * config/v850/v850.md (epilogue): Remove suppressed code.
506         (return): Rename to return_simple and remove test of frame size.
507         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
508         to gen_return_simple.
509
510 2009-04-22  Jing Yu  <jingyu@google.com>
511
512         PR testsuite/39781
513         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
514
515 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
516
517         PR C/31499
518         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
519         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
520         value is a VECTOR_CST, the element type is the element type of the
521         vector.
522
523 2009-04-22  DJ Delorie  <dj@redhat.com>
524
525         * config/m32c/m32c.h: Update GTY annotations to new syntax.
526
527 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
528
529         * alias.c (find_base_term): Move around LO_SUM case, so that
530         CONST falls through into PLUS/MINUS handling.
531
532         PR c/39855
533         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
534         into 0, use omit_one_operand.
535
536 2009-04-23  Ben Elliston  <bje@au.ibm.com>
537
538         * config/rs6000/linux-unwind.h (get_regs): Remove type
539         puns. Change the type of `pc' to an array of unsigned ints and
540         update all users.  Constify frame24.
541
542 2009-04-22  DJ Delorie  <dj@redhat.com>
543
544         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
545         declarations before code.
546         (current_function_special_page_vector): Likewise.
547         (m32c_expand_insv): Silence a warning.
548
549 2009-04-21  Taras Glek <tglek@mozilla.com>
550
551         * alias.c: Update GTY annotations to new syntax.
552         * basic-block.h: Likewise.
553         * bitmap.h: Likewise.
554         * c-common.h: Likewise.
555         * c-decl.c: Likewise.
556         * c-parser.c: Likewise.
557         * c-pragma.c: Likewise.
558         * c-tree.h: Likewise.
559         * cfgloop.h: Likewise.
560         * cgraph.h: Likewise.
561         * config/alpha/alpha.c: Likewise.
562         * config/arm/arm.h: Likewise.
563         * config/avr/avr.h: Likewise.
564         * config/bfin/bfin.c: Likewise.
565         * config/cris/cris.c: Likewise.
566         * config/darwin.c: Likewise.
567         * config/frv/frv.c: Likewise.
568         * config/i386/i386.c: Likewise.
569         * config/i386/i386.h: Likewise.
570         * config/i386/winnt.c: Likewise.
571         * config/ia64/ia64.h: Likewise.
572         * config/iq2000/iq2000.c: Likewise.
573         * config/mips/mips.c: Likewise.
574         * config/mmix/mmix.h: Likewise.
575         * config/pa/pa.c: Likewise.
576         * config/pa/pa.h: Likewise.
577         * config/rs6000/rs6000.c: Likewise.
578         * config/s390/s390.c: Likewise.
579         * config/sparc/sparc.c: Likewise.
580         * config/xtensa/xtensa.c: Likewise.
581         * cselib.h: Likewise.
582         * dbxout.c: Likewise.
583         * dwarf2out.c: Likewise.
584         * except.c: Likewise.
585         * except.h: Likewise.
586         * fixed-value.h: Likewise.
587         * function.c: Likewise.
588         * function.h: Likewise.
589         * gimple.h: Likewise.
590         * integrate.c: Likewise.
591         * optabs.c: Likewise.
592         * output.h: Likewise.
593         * real.h: Likewise.
594         * rtl.h: Likewise.
595         * stringpool.c: Likewise.
596         * tree-data-ref.c: Likewise.
597         * tree-flow.h: Likewise.
598         * tree-scalar-evolution.c: Likewise.
599         * tree-ssa-address.c: Likewise.
600         * tree-ssa-alias.h: Likewise.
601         * tree-ssa-operands.h: Likewise.
602         * tree.c: Likewise.
603         * tree.h: Likewise.
604         * varasm.c: Likewise.
605         * varray.h: Likewise.
606         * vec.h: Likewise.
607         * coretypes.h: Do not define GTY macro if it is already defined.
608         * doc/gty.texi: Update GTY documentation to new syntax.
609         * gengtype-lex.l: Enforce attribute-like syntax for GTY
610         annotations on structs.
611         * gengtype-parse.c: Likewise.
612
613 2009-04-22  Mark Heffernan  <meheff@google.com>
614
615         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
616
617 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
618
619         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
620         where appropriate.
621
622 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
623
624         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
625         the same as a PLUS without a shift.  Increase the cost of a
626         CONST_INT in MULT.
627
628 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
629
630         * Makefile.in: Update dependencies.
631         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
632         * errors.h: Remove bogus comment about compatibility.
633         (warning): Update declaration.
634         * genautomata.c: Update all calls to warning.
635         * gimple.c: Do not include errors.h. Include toplev.h.
636         * tree-ssa-structalias.c: Do not include errors.h.
637         * omega.c: Likewise.
638         * tree-ssa-reassoc.c: Likewise.
639         * config/spu/spu-c.c: Likewise.
640         * config/spu/t-spu-elf: Update dependencies.
641
642 2009-04-22  Richard Guenther  <rguenther@suse.de>
643
644         PR tree-optimization/39824
645         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
646         make sure the types are compatible.
647
648 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
649
650         PR c++/14875
651         * c-common.c (c_parse_error): Take a token_flags parameter.
652         Use token_type for the token type instead.
653         Pass token_flags to cpp_type2name.
654         * c-common.h (c_parse_error): Update declaration.
655         * c-parser.c (c_parser_error): Pass 0 as token flags.
656
657 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
658
659         PR rtl-optimization/39580
660         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
661         
662 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
663
664         * function.c (expand_function_end): Do not emit a jump to the "naked"
665         return label for fall-through returns.
666         * except.c (sjlj_emit_function_exit): Always place the call to the
667         unregister function at the location installed by expand_function_end.
668
669 2009-04-22  Richard Guenther  <rguenther@suse.de>
670
671         PR tree-optimization/39845
672         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
673         (gen_inbound_check): Likewise.
674
675 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
676
677         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
678         padding for PPC.
679         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
680         * config/vxlib.c (__gthread_once): Add race guard for PPC.
681
682 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
683
684         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
685         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
686         shift counts to avoid out-of-bounds array accesses.
687
688 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
689
690         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
691         (Pmode): Move above.
692
693 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
694
695         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
696         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
697         GET_CODE macro.  Use IN_RANGE macro where appropriate.
698         * config/alpha/alpha.h: Ditto.
699         * config/alpha/alpha.md: Ditto.
700         * config/alpha/constraints.md: Ditto.
701         * config/alpha/predicates.md: Ditto.
702         
703 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
704
705         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
706         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
707         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
708         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
709         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
710         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
711         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
712         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
713         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
714         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
715         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
716         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
717         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
718         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
719         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
720         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
721         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
722         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
723         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
724         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
725         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
726         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
727         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
728         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
729         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
730         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
731         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
732
733 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
734
735         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
736         references from comments.
737         * cfgbuild.c: (count_basic_blocks): Delete.
738         (find_basic_blocks_1): Delete.
739         (find_basic_blocks): Delete.
740         * except.c (finish_eh_generation): Make static.  Move comment from
741         except.h here.  Remove find_basic_blocks references from comments.
742         * except.h (finish_eh_generation): Delete.
743         * basic-block.h (find_basic_blocks): Delete.
744         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
745
746 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
747
748         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
749         (sdbout_parms):  Likewise.
750
751 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
752
753         * config/sh/sh.c (prepare_cbranch_operands): Use
754         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
755         (expand_cbranchdi4): Likewise.
756         (from_compare): Add cast to enum type.
757         (expand_cbranchsi4): Use add_reg_note.
758         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
759         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
760         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
761         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
762         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
763         instead of CODE_FOR_nothing.
764         (cbranchdi4): Likewise.  Fix the order of arguments for
765         gen_rtx_fmt_ee.
766         (push_fpscr): Use add_reg_note.
767         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
768         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
769         
770 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
771
772         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
773         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
774         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
775         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
776         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
777         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
778         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
779         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
780         config/alpha/x-vms, config/arc/t-arc,
781         config/arm/README-interworking, config/arm/arm-c.c,
782         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
783         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
784         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
785         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
786         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
787         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
788         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
789         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
790         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
791         config/cris/t-elfmulti, config/crx/t-crx,
792         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
793         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
794         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
795         config/h8300/t-h8300, config/i386/athlon.md,
796         config/i386/darwin-libgcc.10.4.ver,
797         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
798         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
799         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
800         config/i386/t-linux64, config/i386/t-nwld,
801         config/i386/t-rtems-i386, config/i386/t-sol2-10,
802         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
803         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
804         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
805         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
806         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
807         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
808         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
809         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
810         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
811         config/m68k/t-uclinux, config/mcore/t-mcore,
812         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
813         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
814         config/mips/crtn.asm, config/mips/irix-crti.asm,
815         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
816         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
817         config/mips/mips-fixed.md, config/mips/sb1.md,
818         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
819         config/mips/t-iris6, config/mips/t-isa3264,
820         config/mips/t-libgcc-mips16, config/mips/t-linux64,
821         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
822         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
823         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
824         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
825         config/mn10300/t-linux, config/mn10300/t-mn10300,
826         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
827         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
828         config/picochip/libgccExtras/clzsi2.asm,
829         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
830         config/rs6000/darwin-libgcc.10.4.ver,
831         config/rs6000/darwin-libgcc.10.5.ver,
832         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
833         config/rs6000/t-aix43, config/rs6000/t-aix52,
834         config/rs6000/t-darwin, config/rs6000/t-fprules,
835         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
836         config/rs6000/t-lynx, config/rs6000/t-netbsd,
837         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
838         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
839         config/rs6000/t-rtems, config/rs6000/t-spe,
840         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
841         config/score/t-score-elf, config/sh/divcost-analysis,
842         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
843         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
844         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
845         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
846         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
847         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
848         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
849         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
850         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
851         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
852         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
853         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
854         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
855         limitx.h, version.c, xcoff.h: Add copyright and license notices.
856         * config/h8300/genmova.sh: Include copyright and license notices
857         in generated output.
858         * config/h8300/mova.md: Regenerate.
859         * doc/install.texi2html: Include word "Copyright" in copyright
860         notice and use name "Free Software Foundation, Inc.".
861         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
862         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
863         ChangeLog-2007, ChangeLog-2008: Correct dates.
864
865 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
866
867         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
868         NE_EXPR operations as well.
869         * c-parser.c (c_parser_condition): Do not set location information on
870         the condition.
871         (c_parser_conditional_expression): Likewise.
872         (c_parser_binary_expression): Set location information on operators.
873         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
874         TRUTH_NOT_EXPR has been folded.
875         * fold-const.c (fold_truth_not_expr): Copy location information from
876         the incoming expression to the outgoing one.
877         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
878         recursive calls on the LHS of the operator but pass that of the
879         operator to recursive calls on the RHS of the operator.  Set it
880         on the COND_EXPR.
881         (shortcut_cond_expr): Set the locus of the operator on the second
882         COND_EXPR and that of the expression on the first in degenerate cases.
883         Pass the locus of the expression to calls to shortcut_cond_r.
884         Set the locus of the 'then' block on the associated jump, if any.
885         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
886         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
887         expression to call to gimplify_boolean_expr.
888
889 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
890
891         * config.gcc: Add additional configuration for
892         i686-w64-mingw* and x86_64-w64-mingw* triplet.
893         * config/i386/mingw-w64.h: New mingw-w64 specific header.
894         (CPP_SPEC): Redefine for allowing -municode option.
895         (STARTFILE_SPEC): Likewise.
896         * config/i386/t-mingw-w64: New.
897         * config/i386/mingw-w64.opt: New.
898         (municode): Add new target option.
899         * doc/invoke.texi (municode): Add documentation for new option.
900
901 2009-04-21  Ian Lance Taylor  <iant@google.com>
902
903         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
904         Correct test for number of arguments.
905         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
906
907 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
908
909         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
910         argument of emit_library_call.
911
912 2009-04-21  Richard Guenther  <rguenther@suse.de>
913
914         PR middle-end/39829
915         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
916         inside VIEW_CONVERT_EXPRs.
917
918 2009-04-21  Martin Jambor  <mjambor@suse.cz>
919
920         * tree-switch-conversion.c (build_constructors): Split a long line.
921         (constructor_contains_same_values_p): New function.
922         (build_one_array): Create assigns of constants if possible, do not
923         call mark_sym_for_renaming, call update_stmt.
924         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
925         make_rename_temp.  Do not call mark_symbols_for_renaming, call
926         update_stmt.
927         (gen_def_assigns): Do not call mark_symbols_for_renaming or
928         find_new_referenced_vars, call update_stmt.
929         (gen_inbound_check): Use create_tmp_var and create ssa names manually
930         instead of calling make_rename_temp.  Do not call
931         find_new_referenced_vars or mark_symbols_for_renaming, call
932         update_stmt.
933
934 2009-04-21  Richard Guenther  <rguenther@suse.de>
935
936         PR tree-optimization/39827
937         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
938         (tree_ssa_phiprop): Pass the correct array size.
939
940 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
941
942         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
943
944 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
945
946         PR 16202
947         * c-typeck.c (lvalue_p): Move declaration ...
948         * c-common.h (lvalue_p): ... to here.
949         * c-common.c (candidate_equal_p): New.
950         (add_tlist): Use it.
951         (merge_tlist): Use it.
952         (warn_for_collisions_1): Likewise.
953         (warning_candidate_p): Accept more candidates.
954         (verify_tree): A warning candidate can be an expression. Use
955         candidate_equal_p.
956
957 2009-04-21  Ben Elliston  <bje@au.ibm.com>
958
959         PR target/5267
960         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
961         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
962         options.  Remove -mcall-solaris documentation.
963
964 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
965
966         PR c++/13358
967         * doc/invoke.texi (-Wlong-long): Update description.
968         * c-lex (interpret_integer): Only warn if there was no previous
969         overflow and -Wlong-long is enabled.
970         * c-decl.c (declspecs_add_type): Drop redundant flags.
971         * c.opt (Wlong-long): Init to -1.
972         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
973         and front-end warn_long_long. Wlong-long only depends on other
974         flags if it is uninitialized.
975         * c-parser.c (disable_extension_diagnostics): warn_long_long is
976         the same for CPP and FE.
977         (restore_extension_diagnostics): Likewise.
978
979 2009-04-20  Ian Lance Taylor  <iant@google.com>
980
981         Fix enum conversions which are invalid in C++:
982         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
983         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
984         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
985         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
986         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
987         (dbxout_parms): Likewise.
988         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
989         (df_clear_flags): Likewise.
990         * df-problems.c (df_rd_bb_local_compute_process_def): Change
991         top_flag parameter to int.
992         (df_chain_create_bb_process_use): Likewise.
993         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
994         Remove cast.
995         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
996         (df_ref_create_structure, df_def_record_1): Likewise.
997         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
998         (df_notes_rescan): Change 0 to VOIDmode in function call.
999         (df_get_call_refs, df_insn_refs_collect): Likewise.
1000         (df_bb_regs_collect): Likewise.
1001         (df_entry_block_defs_collect): Likewise.
1002         (df_exit_block_uses_collect): Likewise.
1003         * df.h: Update declarations.
1004         * double-int.c (double_int_divmod): Add cast to enum type.
1005         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
1006         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
1007         (based_loc_descr): Likewise.
1008         (loc_descriptor_from_tree_1): Change first_op and second_op to
1009         enum dwarf_location_atom.  Add cast to enum type.
1010         * expmed.c (init_expmed): Change 0 to SET in function call.
1011         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
1012         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
1013         (do_store_flag): Likewise.
1014         * fixed-value.h (struct fixed_value): Change mode to enum
1015         machine_mode.
1016         * function.c (assign_parms): Change 0 to VOIDmode in function call.
1017         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
1018         function call.
1019         (insert_insn_decl, insert_decl, insert_state): Likewise.
1020         (automata_list_finish): Likewise.
1021         * genrecog.c (process_define_predicate): Add cast to enum type.
1022         * gensupport.c (init_predicate_table): Add cast to enum type.
1023         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
1024         function call.
1025         (gimple_build_call_1, gimple_build_label): Likewise.
1026         (gimple_build_goto, gimple_build_asm_1): Likewise.
1027         (gimple_build_switch_1, gimple_build_cdt): Likewise.
1028         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
1029         (enum fallback): Rename from enum fallback_t.
1030         (fallback_t): Typedef as int.
1031         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
1032         GSI_SAME_STMT in function call.
1033         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
1034         enum type.
1035         (setup_reg_class_relations): Likewise.
1036         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
1037         (setup_prohibited_class_mode_regs): Add cast to enum type.
1038         (setup_prohibited_mode_move_regs): Likewise.
1039         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
1040         (record_address_regs): Change i to enum reg_class.
1041         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
1042         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
1043         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
1044         (GET_MODE_2XWIDER_MODE): Likewise.
1045         (GET_CLASS_NARROWEST_MODE): Likewise.
1046         * omp-low.c (expand_omp_for): Add cast to enum type.
1047         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
1048         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
1049         * postreload.c (reload_cse_simplify_operands): Change rclass local
1050         to enum reg_class.
1051         * predict.c (combine_predictions_for_insn): Change best_predictor
1052         and predictor to enum br_predictor.
1053         (combine_predictions_for_bb): Likewise.
1054         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
1055         use SET_PREDICT_EXPR_OUTCOME.
1056         * real.c (real_arithmetic): Change icode to code in function call.
1057         * reginfo.c (init_move_cost): Add casts to enum type.
1058         (init_reg_sets_1, init_fake_stack_mems): Likewise.
1059         * regmove.c (regclass_compatible_p): Change class0 and class1 to
1060         enum reg_class.
1061         * reload.c (find_valid_class): Add casts to enum type.
1062         (push_reload): Change 0 to NO_REGS in function call.
1063         (find_reloads): Change this_alternative to array of enum
1064         reg_class.  Remove some now-unnecessary casts.
1065         (make_memloc): Change 0 to VOIDmode in function call.
1066         * reload1.c (reload): Change 0 to VOIDmode in function call.
1067         (eliminate_regs_1, elimination_effects): Likewise.
1068         (eliminate_regs_in_insn): Likewise.
1069         (emit_input_reload_insns): Add cast to enum type.
1070         (delete_output_reload): Change 0 to VOIDmode in function call.
1071         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
1072         to enum type in function call.
1073         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
1074         (SET_PREDICT_EXPR_OUTCOME): Define.
1075         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
1076         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
1077         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
1078         (dump_function): Likewise.
1079         * tree-dump.h: Update declarations.
1080         * tree-pass.h: Update declarations.
1081         * varasm.c (assemble_integer): Change mclass to enum mode_class.
1082         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
1083         enum type.
1084         (arm_rtx_costs_1): Correct parenthesization.
1085         (arm_rtx_costs): Add casts to enum type.
1086         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
1087         (vfp_emit_fstmd): Use add_rg_note.
1088         (emit_multi_reg_push, emit_sfm): Likewise.
1089         (thumb_set_frame_pointer): Likewise.
1090         (arm_expand_prologue): Likewise.
1091         (arm_regno_class): Change return type to enum reg_class.
1092         (thumb1_expand_prologue): Use add_reg_note.
1093         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
1094         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
1095         in function call.
1096         * config/arm/gentune.sh: Add cast to enum type.
1097         * config/arm/arm-tune.md: Rebuild.
1098         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
1099         (ix86_split_fp_branch, predict_jump): Likewise.
1100         (ix86_expand_multi_arg_builtin): Change sub_code from enum
1101         insn_code to enum rtx_code.
1102         (ix86_builtin_vectorized_function): Add cast to enum type.
1103         * config/i386/i386.md (truncdfsf2): Change slot to enum
1104         ix86_stack_slot.
1105         (truncxf<mode>2, isinf<mode>2): Likewise.
1106         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
1107         enum type.
1108         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
1109         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
1110         (insert_bundle_state): Change 1 to INSERT in function call.
1111         (ia64_add_bundle_selector_before): Likewise.
1112         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
1113         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
1114         (restore_stack_nonlocal): Likewise.
1115         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
1116         function call.
1117         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
1118         function call.
1119         (mips_rtx_costs): Likewise.
1120         (mips_override_options): Add casts to enum type.
1121         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
1122         in function call.
1123         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
1124         (store_reg, set_reg_plus_d): Likewise.
1125         (hppa_expand_prologue, hppa_profile_hook): Likewise.
1126         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1127         cast to enum type.
1128         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
1129         function call.
1130         (emit_unlikely_jump): Use add_reg_note.
1131         (rs6000_emit_allocate_stack): Likewise.
1132         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
1133         (output_toc): Change 1 to INSERT in function call.
1134         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
1135         (rs6000_initialize_trampoline): Likewise.
1136         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
1137         function call.
1138         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
1139         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
1140         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
1141         (save_gprs): Use add_reg_note.
1142         (s390_emit_prologue): Likewise.
1143         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1144         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
1145         (sparc_fold_builtin): Add cast to enum type.
1146         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
1147         enum insn_code.
1148         (spu_expand_prologue): Use add_reg_note.
1149         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
1150
1151 2009-04-20  Ian Lance Taylor  <iant@google.com>
1152
1153         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
1154         (c_parser_postfix_expression_after_primary): Get VEC for list of
1155         arguments.  Get original types of arguments.  Call
1156         build_function_call_vec.
1157         (cached_expr_list_1, cached_expr_list_2): New static variables.
1158         (c_parser_expr_list): Change return type to VEC *.  Add
1159         p_orig_types parameter.  Change all callers.
1160         (c_parser_release_expr): New static function.
1161         (c_parser_vec_to_tree_list): New static function.
1162         * c-typeck.c (build_function_call): Rewrite to build a VEC and
1163         call build_function_call_vec.
1164         (build_function_call_vec): New function, based on old
1165         build_function_call.
1166         (convert_arguments): Remove nargs and argarray parameters.  Change
1167         values to a VEC.  Add origtypes parameter.
1168         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
1169         (convert_for_assignment): Add origtype parameter.  Change all
1170         callers.  If warn_cxx_compat, check for conversion to an enum
1171         type when calling a function.
1172         (store_init_value): Add origtype parameter.  Change all callers.
1173         (digest_init): Likewise.
1174         (struct init_node): Add origtype field.
1175         (add_pending_init): Add origtype parameter.  Change all callers.
1176         (output_init_element): Likewise.
1177         (output_pending_init_elements): Pass origtype from init_node to
1178         output_init_element.
1179         (process_init_element): Pass origtype from c_expr to
1180         output_init_element.
1181         (c_finish_return): Add origtype parameter.  Change all callers.
1182         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
1183         caller.
1184         (sync_resolve_params): Likewise.
1185         (sync_resolve_return): Change params to first_param.  Change caller.
1186         (resolve_overloaded_builtins): Change params to VEC *.  Change
1187         callers.  Save first parameter around call to build_function_call_vec.
1188         * c-decl.c (finish_decl): Add origtype parameter.  Change all
1189         callers.  Call build_function_call_vec rather than
1190         build_function_call for cleanup.
1191         * c-tree.h: Update declarations.
1192         * c-common.h: Update declarations.
1193         * stub-objc.c (objc_rewrite_function_call): Change parameter from
1194         params to first_param.
1195         * target.h (struct gcc_target): Change resolve_overloaded_builtin
1196         params parameter from tree to void *.
1197         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1198         Change arglist parameter to have type void *, and to be a pointer
1199         to a VEC.
1200         * config/rs6000/rs6000-protos.h
1201         (altivec_resolve_overloaded_builtin): Update declaration.
1202         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
1203         fnargs parameter to have type void *, and to be a pointer to a
1204         VEC.  Call build_function_call_vec instead of
1205         build_function_call.
1206         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
1207
1208 2009-04-20  Joey Ye  <joey.ye@intel.com>
1209             Xuepeng Guo <xuepeng.guo@intel.com>
1210             H.J. Lu  <hongjiu.lu@intel.com>
1211
1212         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
1213
1214         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
1215         (IX86_LEA_PRIORITY): Likewise.
1216         (distance_non_agu_define): New function.
1217         (distance_agu_use): Likewise.
1218         (ix86_lea_for_add_ok): Likewise.
1219         (ix86_dep_by_shift_count): Likewise.
1220
1221         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
1222         should split for LEA.
1223
1224         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
1225         function.
1226         (ix86_dep_by_shift_count): Likewise.
1227
1228 2009-04-20  Richard Guenther  <rguenther@suse.de>
1229
1230         * expr.c (handled_component_p): Move ...
1231         * tree.h (handled_component_p): ... here.
1232         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
1233         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
1234         and REALPART_EXPR to be in one group.
1235
1236 2009-04-20  Richard Guenther  <rguenther@suse.de>
1237
1238         * basic-block.h (get_all_dominated_blocks): Declare.
1239         * dominance.c (get_all_dominated_blocks): New function.
1240         * tree-cfg.c (get_all_dominated_blocks): Remove.
1241         (remove_edge_and_dominated_blocks): Adjust.
1242         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
1243         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
1244         instead of recursing.
1245
1246 2009-04-20  Doug Kwan  <dougkwan@google.com>
1247
1248         * cgraph.h (cgraph_node_ptr): New type for vector functions.
1249         (struct cgraph_node_set_def): New type.
1250         (cgraph_node_set) New type. Also declare vector functions.
1251         (struct cgraph_node_set_element_def): New type.
1252         (cgraph_node_set_element): Ditto.
1253         (cgraph_node_set_iterator): New iterator type.
1254         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
1255         cgraph_node_set_remove, dump_cgraph_node_set,
1256         debug_cgraph_node_set): New prototypes.
1257         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
1258         cgraph_node_set_size): New inlines.
1259         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
1260         including cgraph.h.
1261         (struct ipa_opt_pass): Add struct cgraph_node_set_def
1262         argument to function 'write_summary'.
1263         * ipa.c: Include ggc.h.
1264         (hash_cgraph_node_set_element,
1265         eq_cgraph_node_set_element, cgraph_node_set_new,
1266         cgraph_node_set_add, cgraph_node_set_remove,
1267         cgraph_node_set_find, dump_cgraph_node_set,
1268         debug_cgraph_node_set): New functions.
1269         * Makefile.in (ipa.o): Add dependency on GGC_H.
1270
1271 2009-04-20  Ira Rosen  <irar@il.ibm.com>
1272
1273         PR tree-optimization/39675
1274         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
1275         check of the return code of vect_schedule_slp. Check that
1276         stmt_vec_info still exists for the statement, before checking its
1277         vectorization type.
1278
1279 2009-04-20  Michael Matz  <matz@suse.de>
1280
1281         * Makefile.in (generated_files): Take out $(simple_generated_c).
1282
1283 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
1284
1285         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
1286         (UINTPTR_TYPE):  Likewise.
1287
1288 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1289
1290         PR c/37481
1291         * c-typeck.c (digest_init): Check for initializing an array with a
1292         string literal.
1293
1294 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1295
1296         PR c/19771
1297         * c-semantics.c (pop_stmt_list): Propagate
1298         STATEMENT_LIST_HAS_LABEL to parent statement list.
1299
1300 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
1301
1302         * config/mips/mips.h (mips_tune_attr): New macro.
1303         * config/mips/mips.md (cpu): Use it.
1304
1305 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1306
1307         PR c/38243
1308         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
1309         declaring a tag.
1310
1311 2009-04-19  Diego Novillo  <dnovillo@google.com>
1312
1313         * toplev.c (compile_file): Move call to coverage_finish ...
1314         * cgraphunit.c (ipa_passes): ... here.
1315         Call cgraph_process_new_functions.
1316         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
1317         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
1318
1319 2009-04-19  Jan Hubicka  <jh@suse.cz>
1320
1321         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
1322         cfun.
1323         (dump_cgraph_node): Dump can throw external flag.
1324         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
1325
1326 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1327
1328         PR c/32061
1329         PR c++/36954
1330         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
1331         * common.opt (Wlogical-op): Move from here...
1332         * c.opt (Wlogical-op): ... to here.
1333         * c-typeck.c (parser_build_binary_op): Update call to
1334         warn_logical_operator.
1335         * c-opts.c (c_common_post_options): Enable warn_logical_op with
1336         extra_warnings.
1337         * c-common.c (warn_logical_op): Update.
1338         * c-common.h (warn_logical_op): Update declaration.
1339
1340 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1341
1342         * tree.c (protected_set_expr_location): Fix formatting.
1343
1344 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1345
1346         PR c/27676
1347         * c-typeck.c (readonly_warning): new.
1348         (build_unary_op, build_modify_expr): Use readonly_warning for
1349         storing into something readonly but not const-qualified.
1350
1351 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1352
1353         PR c/22367
1354         * c-typeck.c (build_unary_op): Check for taking address of
1355         expression of type void.
1356
1357 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1358
1359         PR c/35210
1360         * c-typeck.c (build_function_call): Check for calling a function
1361         with qualified void return types.  Call require_complete_type when
1362         generating a trap.
1363
1364 2009-04-18  Jan Hubicka  <jh@suse.cz>
1365
1366         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
1367         Set nothrow flag.
1368         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
1369         can_throw_external flag.
1370         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
1371         * ipa-pure-const.c (ignore_edge): New function.
1372         (propagate): Compute order for NOTHROW computation; set NOTHROWs
1373         only over can_throw_external edges.
1374         (local_pure_const): Add nothrow flag.
1375         * ipa-utils.c (searchc): Add ignore_edge callback.
1376         (ipa_utils_reduced_inorder): Add ignore_edge callback.
1377         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
1378         (set_nothrow_function_flags): Update cgraph.
1379         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
1380
1381 2009-04-18  Richard Guenther  <rguenther@suse.de>
1382
1383         PR middle-end/39804
1384         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
1385         (fold_stmt): ... this and ...
1386         (fold_stmt_inplace): ... this.
1387         (fold_stmt_1): Fold references in calls and asms.
1388         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
1389
1390 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1391
1392         * tree-vrp.c (ssa_name_nonzero_p): Remove.
1393         * tree.h: Remove the prototype for ssa_name_nonzero_p.
1394
1395 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1396
1397         * tree.c (function_args_count): Remove.
1398         * tree.h: Remove the prototype for function_args_count.
1399
1400 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1401
1402         * tree-iterator.c (expr_only): Remove.
1403         * tree.h: Remove the prototype for expr_only.
1404
1405 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1406
1407         * reginfo.c (cannot_change_mode_set_regs): Remove.
1408         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
1409
1410 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
1411
1412         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
1413         whether operands 0 and 1 overlaps.
1414
1415 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1416
1417         PR middle-end/36902
1418         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
1419         pointer. Use warning_at instead of warning.
1420         (search_for_addr_array): Likewise.
1421         (check_array_bounds): Likewise.
1422         (check_all_array_refs): Check that the incoming edge is not in the
1423         list of edges to be removed.
1424         (check_all_array_refs): Avoid the temporal pointer.
1425         (vrp_visit_cond_stmt): Fix typo.
1426         (simplify_switch_using_ranges): Handle the case where the switch
1427         index is an integer constant.
1428
1429 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
1430
1431         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
1432
1433 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1434
1435         * doc/extend.texi, doc/invoke.texi: Fix typos.
1436
1437 2009-04-17  Cary Coutant  <ccoutant@google.com>
1438
1439         * tree-flow-inline.h (get_lineno): Fix inverted test.
1440
1441 2009-04-17  Diego Novillo  <dnovillo@google.com>
1442
1443         * tree-ssa-pre.c (create_expression_by_pieces): Remove
1444         assertion for AVAIL_OUT.
1445
1446 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
1447
1448         PR target/38627
1449         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
1450         * config/sh/linux-atomic.asm: Likewise.
1451
1452 2009-04-17  Diego Novillo  <dnovillo@google.com>
1453
1454         * except.c (debug_eh_tree): New.
1455         (struct eh_region, struct eh_status): Move ...
1456         * except.h: ... here.
1457         (add_type_for_runtime): Declare extern.
1458         (lookup_type_for_runtime): Likewise.
1459         (debug_eh_tree): Declare.
1460         * Makefile.in (GTFILES): List except.h before except.c
1461
1462 2009-04-17  Diego Novillo  <dnovillo@google.com>
1463
1464         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
1465         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1466         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
1467         (find_vars_r): ... here.
1468         * tree-flow.h (find_referenced_vars_in): Declare.
1469         * tree-ssa-pre.c (create_expression_by_pieces): Assert
1470         that AVAIL_OUT exists for BLOCK.
1471         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
1472         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
1473         (tree-parloops.o): Likewise.
1474
1475 2009-04-17  Simon Baldwin  <simonb@google.com>
1476
1477         * toplev.c (default_tree_printer): Add handling for %E format.
1478
1479 2009-04-17  Diego Novillo  <dnovillo@google.com>
1480
1481         * tree-pretty-print.c (dump_generic_node): Add break after
1482         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
1483         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
1484         FUNCTION_TYPE together.  Call print_struct_decl when printing
1485         structures and TDF_SLIM is not given.
1486         (print_struct_decl): Fix logic for detecting recursion.
1487
1488 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1489
1490         PR 31567
1491         * gcc.c (create_at_file): New.
1492         (compile_input_file_p): New.
1493         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
1494         * main.c (main): Update call to toplev_main.
1495         * toplev.c (toplev_main): Change signature. Call expandargv.
1496         * toplev.h (toplev_main): Change signature.
1497
1498 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1499
1500         * dwarf2out.c (field_byte_offset): Use the type size as the field size
1501         if the latter is not constant.
1502
1503 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
1504
1505         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
1506
1507 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1508
1509         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
1510         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
1511
1512 2009-04-17  Richard Guenther  <rguenther@suse.de>
1513
1514         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1515         Handle component references view-converting an invariant address.
1516
1517 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
1518
1519         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
1520         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
1521         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
1522         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
1523         Use @deftypevr rather than @deftypevar.
1524
1525 2009-04-17  Richard Guenther  <rguenther@suse.de>
1526
1527         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
1528         (get_prop_source_stmt): Likewise.
1529         (can_propagate_from): Likewise.
1530
1531 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
1532
1533         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
1534         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
1535         (--with-multilib-list): Add default value.
1536         * configure: Regenerate.
1537         * Makefile.in (TM_ENDIAN_CONFIG): Define.
1538         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
1539         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
1540         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
1541         Don't add default cpu to multilib list unnecessarily, but do enable
1542         the relevant compiler option..
1543         Add support for --with-multilib-list=<blank> and
1544         --with-multilib-list=!<somelib> to supress unwanted multilibs.
1545         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
1546         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
1547         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
1548         TM_MULTILIB_CONFIG.
1549         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
1550         (MULTILIB_OSDIRNAMES): New variable.
1551         * config/sh/t-1e: Delete file.
1552         * config/sh/t-mlib-sh1: Delete file.
1553         * config/sh/t-mlib-sh2: Delete file.
1554         * config/sh/t-mlib-sh2a: Delete file.
1555         * config/sh/t-mlib-sh2a-nofpu: Delete file.
1556         * config/sh/t-mlib-sh2a-single: Delete file.
1557         * config/sh/t-mlib-sh2a-single-only: Delete file.
1558         * config/sh/t-mlib-sh2e: Delete file.
1559         * config/sh/t-mlib-sh3e: Delete file.
1560         * config/sh/t-mlib-sh4: Delete file.
1561         * config/sh/t-mlib-sh4-nofpu: Delete file.
1562         * config/sh/t-mlib-sh4-single: Delete file.
1563         * config/sh/t-mlib-sh4-single-only: Delete file.
1564         * config/sh/t-mlib-sh4a: Delete file.
1565         * config/sh/t-mlib-sh4a-nofpu: Delete file.
1566         * config/sh/t-mlib-sh4a-single: Delete file.
1567         * config/sh/t-mlib-sh4a-single-only: Delete file.
1568         * config/sh/t-mlib-sh4al: Delete file.
1569         * config/sh/t-mlib-sh5-32media: Delete file.
1570         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
1571         * config/sh/t-mlib-sh5-64media: Delete file.
1572         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
1573         * config/sh/t-mlib-sh5-compact: Delete file.
1574         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
1575         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
1576         * doc/install.texi (Options specification): Add
1577         --with-multilib-list and --with-endian.
1578
1579 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1580
1581         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
1582         REVISION_c.
1583         (OBJS-common): Add plugin-version.o.
1584         (plugin-version.o): New.
1585         * gcc-plugin.h (plugin_gcc_version): New.
1586         (plugin_default_version_check): New.
1587         (plugin_init_func, plugin_init): Add version argument.
1588         * plugin-version.c: New.
1589         * plugin.c (str_plugin_gcc_version_name): New.
1590         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
1591         pass it to the init function.
1592         (plugin_default_version_check): New.
1593
1594 2009-04-17  Richard Guenther  <rguenther@suse.de>
1595
1596         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
1597         for decl-vs-decl disambiguation.
1598
1599 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1600
1601         * config/s390/s390.h (s390_tune_attr): New macro definition.
1602         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
1603
1604 2009-04-17  Richard Guenther  <rguenther@suse.de>
1605
1606         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
1607         (fold_stmt_r): Likewise.
1608         (maybe_fold_reference): New function.
1609         (fold_gimple_assign): Handle cases fold_stmt_r did.
1610         (fold_stmt): Do not use fold_stmt_r.
1611         (fold_stmt_inplace): Likewise.
1612
1613 2009-04-17  Richard Guenther  <rguenther@suse.de>
1614
1615         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
1616         (record_equivalences_from_stmt): Remove useless checks and
1617         simplifications.
1618         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
1619         the type is already suitable.
1620
1621 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
1622
1623         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
1624
1625 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
1626
1627         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
1628         (CMPtype): Define as __gcc_CMPtype.
1629
1630 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
1631
1632         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
1633         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
1634
1635 2009-04-17  Richard Guenther  <rguenther@suse.de>
1636
1637         PR tree-optimization/39746
1638         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
1639         special-casing for builtins and static variable use/def.
1640         (call_may_clobber_ref_p_1): Likewise.
1641
1642 2009-04-16  Ian Lance Taylor  <iant@google.com>
1643
1644         * df.h: Include "timevar.h".
1645         (struct df_problem): Change tv_id field to timevar_id_t.
1646         * tree-pass.h: Include "timevar.h".
1647         (struct opt_pass): Change tv_id field to timevar_id_t.
1648         * timevar.h (timevar_id_t): Define TV_NONE.
1649         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
1650         TV_NONE rather than tv_id != 0.
1651         (execute_one_pass): Likewise.
1652         * Makefile.in (DF_H): Add $(TIMEVAR_H).
1653         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
1654         dependencies to $(TREE_PASS_H).
1655         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
1656         to TV_NONE.
1657         (pass_branch_target_load_optimize2): Likewise.
1658         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
1659         (pass_outof_cfg_layout_mode): Likewise.
1660         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
1661         (pass_rebuild_cgraph_edges): Likewise.
1662         (pass_remove_cgraph_callee_edges): Likewise.
1663         * df-core.c (pass_df_initialize_opt): Likewise.
1664         (pass_df_initialize_no_opt): Likewise.
1665         (pass_df_finish): Likewise.
1666         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1667         * except.c (pass_set_nothrow_function_flags): Likewise.
1668         (pass_convert_to_eh_region_ranges): Likewise.
1669         * final.c (pass_compute_alignments): Likewise.
1670         * function.c (pass_instantiate_virtual_regs): Likewise.
1671         (pass_init_function): Likewise.
1672         (pass_leaf_regs): Likewise.
1673         (pass_match_asm_constraints): Likewise.
1674         * gimple-low.c (pass_lower_cf): Likewise.
1675         (pass_mark_used_blocks): Likewise.
1676         * init-regs.c (pass_initialize_regs): Likewise.
1677         * integrate.c (pass_initial_value_sets): Likewise.
1678         * ira.c (pass_ira): Likewise.
1679         * jump.c (pass_cleanup_barriers): Likewise.
1680         * omp-low.c (pass_expand_omp): Likewise.
1681         (pass_lower_omp): Likewise.
1682         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
1683         * recog.c (pass_split_all_insns): Likewise.
1684         (pass_split_after_reload): Likewise.
1685         (pass_split_before_regstack): Likewise.
1686         (pass_split_before_sched2): Likewise.
1687         (pass_split_for_shorten_branches): Likewise.
1688         * reginfo.c (pass_reginfo_init): Likewise.
1689         (pass_subregs_of_mode_init): Likewise.
1690         (pass_subregs_of_mode_finish): Likewise.
1691         * passes.c (pass_postreload): Likewise.
1692         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1693         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
1694         (pass_warn_function_return): Likewise.
1695         (pass_warn_function_noreturn): Likewise.
1696         * tree-complex.c (pass_lower_complex): Likewise.
1697         (pass_lower_complex_O0): Likewise.
1698         * tree-if-conv.c (pass_if_conversion): Likewise.
1699         * tree-into-ssa.c (pass_build_ssa): Likewise.
1700         * tree-mudflap.c (pass_mudflap_1): Likewise.
1701         (pass_mudflap_2): Likewise.
1702         * tree-nomudflap.c (pass_mudflap_1): Likewise.
1703         (pass_mudflap_2): Likewise.
1704         * tree-nrv.c (pass_return_slot): Likewise.
1705         * tree-object-size.c (pass_object_sizes): Likewise.
1706         * tree-optimize.c (pass_all_optimizations): Likewise.
1707         (pass_early_local_passes): Likewise.
1708         (pass_all_early_optimizations): Likewise.
1709         (pass_cleanup_cfg): Likewise.
1710         (pass_cleanup_cfg_post_optimizing): Likewise.
1711         (pass_free_datastructures): Likewise.
1712         (pass_free_cfg_annotations): Likewise.
1713         (pass_fixup_cfg): Likewise.
1714         (pass_init_datastructures): Likewise.
1715         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
1716         (pass_late_warn_uninitialized): Likewise.
1717         (pass_update_address_taken): Likewise.
1718         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
1719         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
1720         (pass_cse_sincos): Likewise.
1721         (pass_convert_to_rsqrt): Likewise.
1722         * tree-ssa-structalias.c (pass_build_alias): Likewise.
1723         * tree-stdarg.c (pass_stdarg): Likewise.
1724         * tree-tailcall.c (pass_tail_recursion): Likewise.
1725         (pass_tail_calls): Likewise.
1726         * tree-vect-generic.c (pass_lower_vector): Likewise.
1727         (pass_lower_vector_ssa): Likewise.
1728         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
1729
1730 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
1731
1732         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
1733         XLR entry.
1734         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
1735         Handle -march=xlr.
1736         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
1737         logical and signext.
1738
1739 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1740
1741         PR target/39767
1742         * config/sh/predicates.md (arith_operand): Check if the operand
1743         of TRUNCATE is a REG.
1744
1745 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1746
1747         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
1748         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
1749
1750 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1751
1752         * tree-iterator.c (tsi_split_statement_list_after,
1753         tsi_split_statement_list_before): Remove.
1754         * tree-iterator.h: Remove the prototypes for
1755         tsi_split_statement_list_after and tsi_split_statement_list_before.
1756
1757 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1758
1759         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
1760         * tree-ssa-propagate.h: Remove the prototype for
1761         stmt_makes_single_load.
1762
1763 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1764
1765         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
1766         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
1767
1768 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1769
1770         * tree-iterator.c (EXPR_LAST_BODY): Remove.
1771
1772 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1773
1774         * except.c (eh_region_outer_p): Remove.
1775         * except.h: Remove the prototype for eh_region_outer_p.
1776
1777 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1778
1779         * function.c (current_function_assembler_name): Remove.
1780         * function.h: Remove the prototype for
1781         current_function_assembler_name.
1782
1783 2009-04-16  Ian Lance Taylor  <iant@google.com>
1784
1785         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
1786         (add_reg_note): Call alloc_reg_note.
1787         * rtl.h (alloc_reg_note): Declare.
1788         * combine.c (try_combine): Use alloc_reg_note.
1789         (recog_for_combine, move_deaths): Likewise.
1790         (distribute_notes): Use alloc_reg_note and add_reg_note.
1791         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1792         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1793         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1794
1795 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
1796
1797         PR rtl-optimization/39762
1798         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1799         ira_may_move_out_cost): Add comments about way of their usage.
1800         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
1801
1802         * ira-conflicts.c (process_regs_for_copy): Use function
1803         ira_get_register_move_cost instead of global
1804         ira_register_move_cost.
1805
1806         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1807         color_pass, move_spill_restore, update_curr_costs): Ditto.
1808
1809         * ira-lives.c (process_single_reg_class_operands): Ditto.
1810
1811         * ira-emit.c (emit_move_list): Ditto.
1812
1813         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1814         (record_reg_classes): Ditto.  Use functions
1815         ira_get_register_move_cost and ira_get_may_move_cost instead of
1816         global vars ira_register_move_cost, ira_may_move_out_cost and
1817         ira_may_move_in_cost.
1818         (record_address_regs): Don't call ira_init_register_move_cost.
1819         Use function ira_get_may_move_cost instead of global
1820         ira_may_move_in_cost.
1821         (process_bb_node_for_hard_reg_moves): Use function
1822         ira_get_register_move_cost instead of global ira_register_move_cost.
1823         (ira_costs): Don't call ira_init_register_move_cost.
1824
1825 2009-04-16  Richard Guenther  <rguenther@suse.de>
1826
1827         * tree-cfg.c (verify_gimple_assign_binary):
1828         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1829         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1830         (create_general_new_stmt): Note that this function is broken.
1831
1832 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1833
1834         * common.opt (fhelp): Add Var(help_flag).
1835         * gcc-plugin.h (plugin_info): Add help.
1836         * plugin.c (plugin_name_args): Add help.
1837         (register_plugin_info): Set plugin->help.
1838         (print_help_one_plugin): New.
1839         (print_plugins_help): New.
1840         * plugin.h (print_plugins_help): New.
1841         * toplev.c (toplev_main): Call print_plugins_help if needed.
1842
1843 2009-04-16  Richard Guenther  <rguenther@suse.de>
1844
1845         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1846         (gimple_ior_addresses_taken_1): New function.
1847         (gimple_ior_addresses_taken): Likewise.
1848         * gimple.h (struct gimple_statement_with_ops_base): Remove
1849         addresses_taken member.
1850         (gimple_ior_addresses_taken): Declare.
1851         (gimple_addresses_taken, gimple_addresses_taken_ptr,
1852         gimple_set_addresses_taken): Remove.
1853         * ipa-reference.c (mark_address): New function.
1854         (scan_stmt_for_static_refs): Use it for marking addresses taken.
1855         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1856         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
1857         (gimple_add_to_addresses_taken): Remove.
1858         (get_tmr_operands): Call mark_address_taken.
1859         (get_asm_expr_operands): Likewise.
1860         (get_expr_operands): Likewise.
1861         (build_ssa_operands): Do not clear the addresses_taken bitmap.
1862         (free_stmt_operands): Do not free it.
1863         * tree-ssa.c (delete_tree_ssa): Likewise.
1864         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1865
1866 2009-04-16  Richard Guenther  <rguenther@suse.de>
1867
1868         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1869         (walk_stmt_load_store_ops): Likewise.
1870         * gimple.c (get_base_loadstore): New function.
1871         (walk_stmt_load_store_addr_ops): Likewise.
1872         (walk_stmt_load_store_ops): Likewise.
1873         * ipa-pure-const.c (check_op): Simplify.
1874         (check_load, check_store): New functions.
1875         (check_stmt): Use walk_stmt_load_store_ops.
1876         * ipa-reference.c (mark_load): Adjust signature.
1877         (mark_store): Likewise.
1878         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1879
1880 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1881
1882         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1883         (plugin_info): New.
1884         * opts.c (common_handle_option): Don't call print_version.
1885         * plugin.c (plugin_name_args): Add version.
1886         (register_plugin_info): New.
1887         (register_callback): Handle PLUGIN_INFO.
1888         (try_init_one_plugin): New.
1889         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1890         if failed to init.
1891         (finalize_one_plugin): New.
1892         (finalize_plugins): New.
1893         (print_one_plugin): New.
1894         (print_plugins_versions): New.
1895         * plugin.h (print_plugins_versions): New.
1896         (finalize_plugins): New.
1897         * toplev.c (compile_file): Don't call initialize_plugins.
1898         (print_version): Call print_plugins_versions.
1899         (toplev_main): Call initialize_plugins. Print version if needed.
1900         Call finalize_plugins.
1901
1902 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1903
1904         * common.opt (fversion): New.
1905         * gcc.c (print_version): New.
1906         (process_command): Don't print the version. Just set print_version.
1907         (main): Print version. Call subprocesses if print_version and
1908         verbose_flag are set.
1909         * opts.c (common_handle_option): Handle OPT_fversion.
1910
1911 2009-04-16  Richard Guenther  <rguenther@suse.de>
1912             Ira Rosen  <irar@il.ibm.com>
1913
1914         PR tree-optimization/39698
1915         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1916         type of the reduction variable.  Only generate the def if
1917         it is needed.
1918
1919         * omp-low.c (expand_omp_for_generic): When converting to a pointer
1920         make sure to first convert to an integer of the same precision.
1921         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1922         the type of the evolution correctly in computing the new
1923         induction variable base.
1924
1925 2009-04-16  Richard Guenther  <rguenther@suse.de>
1926
1927         PR middle-end/39625
1928         * tree-cfg.c (make_blocks): Split statements with to-be
1929         abnormal SSA names on the lhs.
1930
1931 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
1932
1933         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1934         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1935         * c-typeck.c (really_start_incremental_init): Likewise.
1936         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1937         (TARGET_INITIALIZER): Remove it.
1938         * target.h (struct target): Remove vector_opaque_p.
1939         * tree.c (build_opaque_vector_type): New.
1940         * tree.h (TYPE_VECTOR_OPAQUE): New.
1941         (build_opaque_vector_type): Declare.
1942         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1943         * config/rs6000/rs6000.c (build_opaque_vector_type,
1944         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1945         (rs6000_init_builtins): Use build_opaque_vector_type for
1946         opaque_V4SI_type_node.
1947
1948 2009-04-15  Catherine Moore  <clm@codesourcery.com>
1949
1950         * debug.h (set_name):  Declare.
1951         * dwarf2out.c (dwarf2out_set_name): Declare.
1952         (dwarf2_debug_hooks): Add set_name.
1953         (find_AT_string): New.
1954         (add_AT_string): Call find_AT_string.
1955         (dwarf2out_set_name): New.
1956         * cp/decl.c (grokdeclarator): Call set_name.
1957         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1958         * debug.c (do_nothing_debug_hooks):  Likewise.
1959         * dbxout.c (dbx_debug_hooks): Likewise.
1960         * sdbout.c (sdb_debug_hooks): Likewise.
1961
1962 2009-04-15  Michael Eager <eager@eagercon.com>
1963
1964         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1965         reg for single-precision FPU.
1966         * config/rs6000/rs6000.md (movsi_internal1): Only for
1967         !TARGET_SINGLE_FPU.
1968         (movsi_internal1_single): New. Add pattern to move SI values to/from
1969         single-precision FP regs.
1970
1971 2009-04-15  Richard Guenther  <rguenther@suse.de>
1972
1973         * omp-low.c (lower_rec_input_clauses): Build correct address
1974         expressions.
1975         (expand_omp_for_generic): Fix multiplication type.
1976         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1977         (generate_memset_zero): Fix types.
1978         * tree-profile.c (prepare_instrumented_value): Correctly
1979         widen a pointer.
1980
1981 2009-04-15  Ian Lance Taylor  <iant@google.com>
1982
1983         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1984         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1985         for -Wall and for -Wc++-compat.
1986         (c_common_post_options): For C++, set warn_enum_compare if not
1987         already set.
1988         * c-tree.h (struct c_expr): Add field original_type.
1989         (build_external_ref): Update declaration.
1990         * c-parser.c (c_parser_braced_init): Set original_type.
1991         (c_parser_initelt): Likewise.
1992         (c_parser_expr_no_commas): Likewise.
1993         (c_parser_conditional_expression): Likewise.
1994         (c_parser_cast_expression): Likewise.
1995         (c_parser_unary_expression): Likewise.  Pull setting of
1996         original_code to top of function.
1997         (c_parser_sizeof_expression): Set original_type.
1998         (c_parser_alignof_expression): Likewise.
1999         (c_parser_postfix_expression): Likewise.  Pull setting of
2000         original_code to top of function.
2001         (c_parser_postfix_expression_after_paren_type): Set original_type.
2002         (c_parser_postfix_expression_after_primary): Likewise.
2003         (c_parser_expression): Likewise.
2004         * c-typeck.c (build_external_ref): Add type parameter.  Change all
2005         callers.
2006         (c_expr_sizeof_expr): Set original_type field.
2007         (parser_build_unary_op): Likewise.
2008         (parser_build_binary_op): Likewise.  Optionally warn about
2009         comparisons of enums of different types.
2010         (digest_init): Set original_type field.
2011         (really_start_incremental_init): Likewise.
2012         (push_init_level, pop_init_level): Likewise.
2013         * doc/invoke.texi (Warning Options): -Wenum-compare now
2014         supported in C.
2015
2016 2009-04-15  Richard Guenther  <rguenther@suse.de>
2017
2018         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
2019         out a necessary conversion.
2020         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
2021         names we didn't value number.
2022         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
2023
2024 2009-04-15  Richard Guenther  <rguenther@suse.de>
2025
2026         PR tree-optimization/39764
2027         * tree-ssa-ccp.c (get_value): Canonicalize value with
2028         canonicalize_float_value.
2029
2030 2009-04-15  Jan Hubicka  <jh@suse.cz>
2031
2032         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
2033         Wrong version of patch.
2034
2035 2009-04-15  Jan Hubicka  <jh@suse.cz>
2036
2037         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
2038
2039 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
2040
2041         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
2042         our distinct integral and vector types.
2043
2044 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
2045
2046         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
2047         * init.c (build_vtbl_address): Remove call to assemble_external.
2048
2049 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
2050
2051         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
2052         output for other floating point modes.
2053
2054 2009-04-14  Diego Novillo  <dnovillo@google.com>
2055
2056         * diagnostic.c (diagnostic_report_diagnostic): Do not
2057         warn about loaded plugins for DK_ERROR and DK_WARNING.
2058         * c-decl.c (declspecs_add_type): Move call to
2059         invoke_plugin_callbacks ...
2060         * c-parser.c (c_parser_declspecs): ... here.
2061         * plugin.c (dump_active_plugins): Tidy output.
2062
2063 2009-04-14  Diego Novillo  <dnovillo@google.com>
2064             Le-Chun Wu  <lcwu@google.com>
2065
2066         * configure.ac: Add --enable-plugin support.
2067         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
2068         * Makefile.in (PLUGIN_H): Define.
2069         Export ENABLE_PLUGIN and GMPINC to site.exp.
2070         Add PLUGINLIBS to link command.
2071         Add/modify dependencies for plugin.o and files including plugin.h.
2072         (plugin.o): New.
2073         * config.in: Regenerate.
2074
2075         * opts.c (common_handle_option): Handle OPT_fplugin_ and
2076         OPT_fplugin_arg_.
2077
2078 2009-04-14  Le-Chun Wu  <lcwu@google.com>
2079
2080         * tree-pass.h (register_one_dump_file): Add a prototype for
2081         register_one_dump_file.
2082         * toplev.c (compile_file): Call initialize_plugins.
2083         (do_compile): Call invoke_plugin_callbacks.
2084         (toplev_main): Call invoke_plugin_callbacks.
2085         * common.opt: Add -fplugin= and -fplugin-arg-.
2086         * gcc-plugin.h: New public header file for plugins to include.
2087         * plugin.c: New source file.
2088         * plugin.h: New internal header file.
2089         * passes.c (register_one_dump_file): Make it external.
2090
2091         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
2092
2093 2009-04-14  Diego Novillo  <dnovillo@google.com>
2094
2095         * doc/plugins.texi: New.
2096         * doc/gccint.texi: Add reference to Plugins chapter.
2097         * doc/invoke.texi: Document -fplugin and -fplugin-arg
2098         * diagnostic.c (diagnostic_report_diagnostic): Warn about
2099         loaded plugins, if any.
2100         * timevar.def (TV_PLUGIN_INIT): Define.
2101         (TV_PLUGIN_RUN): Define.
2102         * plugin.c: Include timevar.h
2103         (plugins_active_p): New.
2104         (dump_active_plugins): New.
2105         (debug_active_plugins): New.
2106
2107 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
2108
2109         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
2110         library paths.
2111         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
2112
2113 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
2114
2115         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
2116         the same as a minus without a shift.
2117
2118 2009-04-14  Nick Clifton  <nickc@redhat.com>
2119
2120         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
2121         comparisons with small integers will always produce a short
2122         branch.
2123
2124 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
2125
2126         Merge:
2127         2008-12-19  Diego Novillo  <dnovillo@google.com>
2128
2129         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
2130
2131 2009-04-14  Richard Guenther  <rguenther@suse.de>
2132
2133         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
2134         verification.
2135         (verify_gimple_assign_binary): Likewise.  Handle shifts and
2136         rotates correctly.
2137         (verify_gimple_phi): Print the mismatched argument position.
2138         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
2139         Fix types.
2140         (vect_update_init_of_dr): Likewise.
2141         * matrix-reorg.c (transform_access_sites): Do what the
2142         comment suggests.
2143         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
2144
2145 2009-04-13  Michael Eager <eager@eagercon.com>
2146
2147         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
2148         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
2149         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
2150         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
2151         remove duplicate config
2152
2153 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2154
2155         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
2156         file_name:line_number type locator of the call site.
2157
2158 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2159
2160         * genautomata.c: Put blank after comma.
2161         (automaton_decls): New.
2162         (struct unit_usage): Add comments to member next.
2163         (store_alt_unit_usage): Keep the list ordered.
2164         (unit_present_on_list_p, equal_alternatives_p): New.
2165         (check_regexp_units_distribution): Check units distribution
2166         correctness correctly.
2167         (main): Don't write automata if error is found.  Return correct
2168         exit code.
2169
2170         * config/m68k/cf.md (cfv4_ds): Remove.
2171         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
2172         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
2173
2174         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
2175         power4-load-ext, power4-store, power4-store-update,
2176         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
2177         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
2178         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
2179         power4-sqrt, power4-isync): Modify reservation to make correct
2180         unit distribution to automata.
2181
2182         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
2183         power5-store-update, power5-two, power5-three, power5-lmul,
2184         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2185
2186 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
2187
2188         * except.c (pass_set_nothrow_function_flags): Set name and add
2189         TODO_dump_func.
2190         (set_nothrow_function_flags): Mention in the dump file when
2191         changing a function to nothrow.
2192
2193 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
2194
2195         PR/39066
2196         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
2197         instead of unsigned long.
2198
2199 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2200
2201         * config/arm/arm.c (return_used_this_function): Remove.
2202         (arm_output_function_prologue): Remove use of
2203         return_used_this_function.
2204         (output_return_instruction): Replace use of
2205         return_used_this_function
2206         by cfun->machine->return_used_this_function.
2207         (arm_output_epilogue): Likewise.
2208         (arm_output_function_epilogue): Likewise.
2209         (thumb_unexpanded_epilogue): Likewise.
2210         * config/arm/arm.h (struct machine_function):
2211         New member return_used_this_function.
2212
2213 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
2214
2215         * doc/install.texi: Correct description of default directory for
2216         --with-gxx-include-dir.
2217
2218 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2219
2220         * fold-const.c (build_range_check): Properly deal with enumeral and
2221         boolean base types.
2222
2223 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
2224
2225         * doc/invoke.texi (max_gcse_passes): Remove documentation.
2226         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
2227         * params.h (MAX_GCSE_PASSES): Remove.
2228         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
2229         in sequence.  Remove ability to run multiple passes.
2230         (bypass_jumps): Report run as third CPROP pass.
2231
2232 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
2233
2234         PR middle-end/39651
2235         * except.c (can_throw_external): Look at each insn in a SEQUENCE
2236         when deciding whether the whole SEQUENCE can throw.
2237
2238 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         PR target/39740
2241         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
2242         offseted label references.
2243
2244 2009-04-11  Jan Hubicka  <jh@suse.cz>
2245
2246         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
2247
2248 2009-04-11  Richard Guenther  <rguenther@suse.de>
2249
2250         PR middle-end/39732
2251         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
2252         return variables as TREE_ADDRESSABLE.
2253
2254 2009-04-11  Richard Guenther  <rguenther@suse.de>
2255
2256         PR tree-optimization/39713
2257         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
2258         reference trees have SSA_NAME operands.
2259
2260 2009-04-11  Richard Guenther  <rguenther@suse.de>
2261
2262         PR c/39712
2263         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
2264         address expressions.
2265
2266 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2267
2268         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
2269         match changes in Cygwin 1.7
2270         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2271         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
2272
2273 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2274
2275         PR tree-optimization/39701
2276         * doc/invoke.texi (Optimization Options): Document change in
2277         meaning and initialization of -fdelete-null-pointer-checks.
2278
2279 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2280
2281         PR middle-end/39701
2282         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
2283
2284         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
2285         here.
2286
2287         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
2288
2289 2009-04-10  Chao-ying Fu  <fu@mips.com>
2290
2291         * doc/tm.texi (Instruction Output): Document
2292         TARGET_ASM_FINAL_POSTSCAN_INSN.
2293         * target.h (final_postscan_insn): New field in asm_out.
2294         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2295         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
2296         * final.c (final_scan_insn): Call
2297         targetm.asm_out.final_postscan_insn after outputting
2298         an asm macro and a normal instruction.
2299
2300         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
2301         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
2302         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
2303         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
2304         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2305
2306 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2307
2308         PR middle-end/39701
2309         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
2310         variables as non-NULL even with -fdelete-null-pointer-checks.
2311
2312 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2313
2314         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
2315
2316 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
2317
2318         PR target/39678
2319         * config/i386/i386.c (classify_argument): Handle SCmode with
2320         (bit_offset % 64) != 0.
2321
2322 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
2323
2324         * doc/invoke.texi (Optimize Options): Add cross-reference to
2325         -Q --help=optimizers examples.
2326
2327 2009-04-10  Ben Elliston  <bje@au.ibm.com>
2328
2329         PR target/36800
2330         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
2331         regalign for the reg == fpr and TDmode case.
2332
2333 2009-04-09  David Ayers  <ayers@fsfe.org>
2334
2335         PR objc/29200
2336         * objc/objc-act.c (warn_with_method): Remove helper function.
2337         (check_duplicates): Call warning and inform directly.
2338         (really_start_method): Likewise.
2339
2340 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2341
2342         * expmed.c (expand_divmod): Always use a comparison for a division
2343         by a large unsigned integer.
2344
2345         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
2346         for things others than variables or functions as nonzero.
2347
2348 2009-04-09  Nick Clifton  <nickc@redhat.com>
2349
2350         * unwind-compat.c: Change copyright header to refer to version
2351         3 of the GNU General Public License with version 3.1 of the
2352         GCC Runtime Library Exception and to point readers at the
2353         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
2354         * config/alpha/crtfastmath.c: Likewise.
2355         * config/alpha/linux-unwind.h: Likewise.
2356         * config/alpha/qrnnd.asm: Likewise.
2357         * config/alpha/vms-crt0-64.c: Likewise.
2358         * config/alpha/vms-crt0.c: Likewise.
2359         * config/alpha/vms-dwarf2.asm: Likewise.
2360         * config/alpha/vms-dwarf2eh.asm: Likewise.
2361         * config/alpha/vms-psxcrt0-64.c: Likewise.
2362         * config/alpha/vms-psxcrt0.c: Likewise.
2363         * config/alpha/vms_tramp.asm: Likewise.
2364         * config/arc/initfini.c: Likewise.
2365         * config/arc/lib1funcs.asm: Likewise.
2366         * config/arm/bpabi-v6m.S: Likewise.
2367         * config/arm/bpabi.S: Likewise.
2368         * config/arm/bpabi.c: Likewise.
2369         * config/arm/crti.asm: Likewise.
2370         * config/arm/crtn.asm: Likewise.
2371         * config/arm/ieee754-df.S: Likewise.
2372         * config/arm/ieee754-sf.S: Likewise.
2373         * config/arm/lib1funcs.asm: Likewise.
2374         * config/arm/libunwind.S: Likewise.
2375         * config/arm/linux-atomic.c: Likewise.
2376         * config/arm/mmintrin.h: Likewise.
2377         * config/arm/pr-support.c: Likewise.
2378         * config/arm/unaligned-funcs.c: Likewise.
2379         * config/arm/unwind-arm.c: Likewise.
2380         * config/arm/unwind-arm.h: Likewise.
2381         * config/avr/libgcc.S: Likewise.
2382         * config/bfin/crti.s: Likewise.
2383         * config/bfin/crtlibid.s: Likewise.
2384         * config/bfin/crtn.s: Likewise.
2385         * config/bfin/lib1funcs.asm: Likewise.
2386         * config/bfin/linux-unwind.h: Likewise.
2387         * config/cris/arit.c: Likewise.
2388         * config/cris/cris_abi_symbol.c: Likewise.
2389         * config/darwin-64.c: Likewise.
2390         * config/darwin-crt2.c: Likewise.
2391         * config/darwin-crt3.c: Likewise.
2392         * config/darwin.h: Likewise.
2393         * config/dbxelf.h: Likewise.
2394         * config/dfp-bit.c: Likewise.
2395         * config/dfp-bit.h: Likewise.
2396         * config/elfos.h: Likewise.
2397         * config/fixed-bit.c: Likewise.
2398         * config/fixed-bit.h: Likewise.
2399         * config/fp-bit.c: Likewise.
2400         * config/fp-bit.h: Likewise.
2401         * config/fr30/crti.asm: Likewise.
2402         * config/fr30/crtn.asm: Likewise.
2403         * config/fr30/lib1funcs.asm: Likewise.
2404         * config/freebsd-spec.h: Likewise.
2405         * config/frv/cmovd.c: Likewise.
2406         * config/frv/cmovh.c: Likewise.
2407         * config/frv/cmovw.c: Likewise.
2408         * config/frv/frvbegin.c: Likewise.
2409         * config/frv/frvend.c: Likewise.
2410         * config/frv/lib1funcs.asm: Likewise.
2411         * config/glibc-stdint.h: Likewise.
2412         * config/h8300/clzhi2.c: Likewise.
2413         * config/h8300/crti.asm: Likewise.
2414         * config/h8300/crtn.asm: Likewise.
2415         * config/h8300/ctzhi2.c: Likewise.
2416         * config/h8300/fixunssfsi.c: Likewise.
2417         * config/h8300/lib1funcs.asm: Likewise.
2418         * config/h8300/parityhi2.c: Likewise.
2419         * config/h8300/popcounthi2.c: Likewise.
2420         * config/i386/ammintrin.h: Likewise.
2421         * config/i386/att.h: Likewise.
2422         * config/i386/avxintrin.h: Likewise.
2423         * config/i386/biarch64.h: Likewise.
2424         * config/i386/bmmintrin.h: Likewise.
2425         * config/i386/cpuid.h: Likewise.
2426         * config/i386/cross-stdarg.h: Likewise.
2427         * config/i386/crtfastmath.c: Likewise.
2428         * config/i386/crtprec.c: Likewise.
2429         * config/i386/cygming-crtbegin.c: Likewise.
2430         * config/i386/cygming-crtend.c: Likewise.
2431         * config/i386/cygwin.asm: Likewise.
2432         * config/i386/emmintrin.h: Likewise.
2433         * config/i386/gmm_malloc.h: Likewise.
2434         * config/i386/gthr-win32.c: Likewise.
2435         * config/i386/i386.h: Likewise.
2436         * config/i386/immintrin.h: Likewise.
2437         * config/i386/linux-unwind.h: Likewise.
2438         * config/i386/linux64.h: Likewise.
2439         * config/i386/mm3dnow.h: Likewise.
2440         * config/i386/mmintrin-common.h: Likewise.
2441         * config/i386/mmintrin.h: Likewise.
2442         * config/i386/nmmintrin.h: Likewise.
2443         * config/i386/pmm_malloc.h: Likewise.
2444         * config/i386/pmmintrin.h: Likewise.
2445         * config/i386/smmintrin.h: Likewise.
2446         * config/i386/sol2-c1.asm: Likewise.
2447         * config/i386/sol2-ci.asm: Likewise.
2448         * config/i386/sol2-cn.asm: Likewise.
2449         * config/i386/sol2-gc1.asm: Likewise.
2450         * config/i386/tmmintrin.h: Likewise.
2451         * config/i386/unix.h: Likewise.
2452         * config/i386/w32-unwind.h: Likewise.
2453         * config/i386/wmmintrin.h: Likewise.
2454         * config/i386/x86-64.h: Likewise.
2455         * config/i386/x86intrin.h: Likewise.
2456         * config/i386/xmmintrin.h: Likewise.
2457         * config/ia64/crtbegin.asm: Likewise.
2458         * config/ia64/crtend.asm: Likewise.
2459         * config/ia64/crtfastmath.c: Likewise.
2460         * config/ia64/crti.asm: Likewise.
2461         * config/ia64/crtn.asm: Likewise.
2462         * config/ia64/fde-glibc.c: Likewise.
2463         * config/ia64/lib1funcs.asm: Likewise.
2464         * config/ia64/linux-unwind.h: Likewise.
2465         * config/ia64/quadlib.c: Likewise.
2466         * config/ia64/unwind-ia64.c: Likewise.
2467         * config/linux.h: Likewise.
2468         * config/m32c/m32c-lib1.S: Likewise.
2469         * config/m32c/m32c-lib2-trapv.c: Likewise.
2470         * config/m32c/m32c-lib2.c: Likewise.
2471         * config/m32r/initfini.c: Likewise.
2472         * config/m68hc11/larith.asm: Likewise.
2473         * config/m68hc11/m68hc11-crt0.S: Likewise.
2474         * config/m68k/cf.md: Likewise.
2475         * config/m68k/crti.s: Likewise.
2476         * config/m68k/crtn.s: Likewise.
2477         * config/m68k/lb1sf68.asm: Likewise.
2478         * config/m68k/linux-unwind.h: Likewise.
2479         * config/mcore/crti.asm: Likewise.
2480         * config/mcore/crtn.asm: Likewise.
2481         * config/mcore/lib1.asm: Likewise.
2482         * config/mips/linux-unwind.h: Likewise.
2483         * config/mips/loongson.h: Likewise.
2484         * config/mips/mips16.S: Likewise.
2485         * config/mmix/crti.asm: Likewise.
2486         * config/mmix/crtn.asm: Likewise.
2487         * config/pa/fptr.c: Likewise.
2488         * config/pa/hpux-unwind.h: Likewise.
2489         * config/pa/lib2funcs.asm: Likewise.
2490         * config/pa/linux-atomic.c: Likewise.
2491         * config/pa/linux-unwind.h: Likewise.
2492         * config/pa/milli64.S: Likewise.
2493         * config/pa/quadlib.c: Likewise.
2494         * config/pa/stublib.c: Likewise.
2495         * config/picochip/libgccExtras/adddi3.asm: Likewise.
2496         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
2497         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
2498         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
2499         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
2500         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
2501         * config/picochip/libgccExtras/divmod15.asm: Likewise.
2502         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
2503         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
2504         * config/picochip/libgccExtras/longjmp.asm: Likewise.
2505         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
2506         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
2507         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
2508         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
2509         * config/picochip/libgccExtras/setjmp.asm: Likewise.
2510         * config/picochip/libgccExtras/subdi3.asm: Likewise.
2511         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
2512         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
2513         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
2514         * config/rs6000/750cl.h: Likewise.
2515         * config/rs6000/altivec.h: Likewise.
2516         * config/rs6000/biarch64.h: Likewise.
2517         * config/rs6000/crtresfpr.asm: Likewise.
2518         * config/rs6000/crtresgpr.asm: Likewise.
2519         * config/rs6000/crtresxfpr.asm: Likewise.
2520         * config/rs6000/crtresxgpr.asm: Likewise.
2521         * config/rs6000/crtsavfpr.asm: Likewise.
2522         * config/rs6000/crtsavgpr.asm: Likewise.
2523         * config/rs6000/darwin-asm.h: Likewise.
2524         * config/rs6000/darwin-fallback.c: Likewise.
2525         * config/rs6000/darwin-fpsave.asm: Likewise.
2526         * config/rs6000/darwin-ldouble.c: Likewise.
2527         * config/rs6000/darwin-tramp.asm: Likewise.
2528         * config/rs6000/darwin-unwind.h: Likewise.
2529         * config/rs6000/darwin-vecsave.asm: Likewise.
2530         * config/rs6000/darwin-world.asm: Likewise.
2531         * config/rs6000/e500crtres32gpr.asm: Likewise.
2532         * config/rs6000/e500crtres64gpr.asm: Likewise.
2533         * config/rs6000/e500crtres64gprctr.asm: Likewise.
2534         * config/rs6000/e500crtrest32gpr.asm: Likewise.
2535         * config/rs6000/e500crtrest64gpr.asm: Likewise.
2536         * config/rs6000/e500crtresx32gpr.asm: Likewise.
2537         * config/rs6000/e500crtresx64gpr.asm: Likewise.
2538         * config/rs6000/e500crtsav32gpr.asm: Likewise.
2539         * config/rs6000/e500crtsav64gpr.asm: Likewise.
2540         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2541         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
2542         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
2543         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
2544         * config/rs6000/eabi-ci.asm: Likewise.
2545         * config/rs6000/eabi-cn.asm: Likewise.
2546         * config/rs6000/eabi.asm: Likewise.
2547         * config/rs6000/linux-unwind.h: Likewise.
2548         * config/rs6000/linux64.h: Likewise.
2549         * config/rs6000/paired.h: Likewise.
2550         * config/rs6000/paired.md: Likewise.
2551         * config/rs6000/ppc64-fp.c: Likewise.
2552         * config/rs6000/ppu_intrinsics.h: Likewise.
2553         * config/rs6000/rs6000.h: Likewise.
2554         * config/rs6000/si2vmx.h: Likewise.
2555         * config/rs6000/sol-ci.asm: Likewise.
2556         * config/rs6000/sol-cn.asm: Likewise.
2557         * config/rs6000/spe.h: Likewise.
2558         * config/rs6000/spu2vmx.h: Likewise.
2559         * config/rs6000/sysv4.h: Likewise.
2560         * config/rs6000/tramp.asm: Likewise.
2561         * config/rs6000/vec_types.h: Likewise.
2562         * config/s390/linux-unwind.h: Likewise.
2563         * config/s390/tpf-unwind.h: Likewise.
2564         * config/score/crti.asm: Likewise.
2565         * config/score/crtn.asm: Likewise.
2566         * config/sh/crt1.asm: Likewise.
2567         * config/sh/crti.asm: Likewise.
2568         * config/sh/crtn.asm: Likewise.
2569         * config/sh/divtab-sh4-300.c: Likewise.
2570         * config/sh/divtab-sh4.c: Likewise.
2571         * config/sh/divtab.c: Likewise.
2572         * config/sh/lib1funcs-4-300.asm: Likewise.
2573         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
2574         * config/sh/lib1funcs.asm: Likewise.
2575         * config/sh/lib1funcs.h: Likewise.
2576         * config/sh/linux-atomic.asm: Likewise.
2577         * config/sh/linux-unwind.h: Likewise.
2578         * config/sh/shmedia.h: Likewise.
2579         * config/sh/sshmedia.h: Likewise.
2580         * config/sh/ushmedia.h: Likewise.
2581         * config/sparc/crtfastmath.c: Likewise.
2582         * config/sparc/linux-unwind.h: Likewise.
2583         * config/sparc/sol2-c1.asm: Likewise.
2584         * config/sparc/sol2-ci.asm: Likewise.
2585         * config/sparc/sol2-cn.asm: Likewise.
2586         * config/spu/divmodti4.c: Likewise.
2587         * config/spu/divv2df3.c: Likewise.
2588         * config/spu/float_disf.c: Likewise.
2589         * config/spu/float_unsdidf.c: Likewise.
2590         * config/spu/float_unsdisf.c: Likewise.
2591         * config/spu/float_unssidf.c: Likewise.
2592         * config/spu/mfc_multi_tag_release.c: Likewise.
2593         * config/spu/mfc_multi_tag_reserve.c: Likewise.
2594         * config/spu/mfc_tag_release.c: Likewise.
2595         * config/spu/mfc_tag_reserve.c: Likewise.
2596         * config/spu/mfc_tag_table.c: Likewise.
2597         * config/spu/multi3.c: Likewise.
2598         * config/spu/spu_internals.h: Likewise.
2599         * config/spu/spu_intrinsics.h: Likewise.
2600         * config/spu/spu_mfcio.h: Likewise.
2601         * config/spu/vec_types.h: Likewise.
2602         * config/spu/vmx2spu.h: Likewise.
2603         * config/stormy16/stormy16-lib2.c: Likewise.
2604         * config/svr4.h: Likewise.
2605         * config/sync.c: Likewise.
2606         * config/v850/lib1funcs.asm: Likewise.
2607         * config/vxlib-tls.c: Likewise.
2608         * config/vxlib.c: Likewise.
2609         * config/vxworks-dummy.h: Likewise.
2610         * config/xtensa/crti.asm: Likewise.
2611         * config/xtensa/crtn.asm: Likewise.
2612         * config/xtensa/ieee754-df.S: Likewise.
2613         * config/xtensa/ieee754-sf.S: Likewise.
2614         * config/xtensa/lib1funcs.asm: Likewise.
2615         * config/xtensa/lib2funcs.S: Likewise.
2616         * config/xtensa/linux-unwind.h: Likewise.
2617         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2618         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
2619         * coretypes.h: Likewise.
2620         * crtstuff.c: Likewise.
2621         * defaults.h: Likewise.
2622         * dwarf2.h: Likewise.
2623         * emutls.c: Likewise.
2624         * gbl-ctors.h: Likewise.
2625         * gcov-io.h: Likewise.
2626         * ginclude/float.h: Likewise.
2627         * ginclude/iso646.h: Likewise.
2628         * ginclude/stdarg.h: Likewise.
2629         * ginclude/stdbool.h: Likewise.
2630         * ginclude/stddef.h: Likewise.
2631         * ginclude/stdfix.h: Likewise.
2632         * ginclude/stdint-gcc.h: Likewise.
2633         * ginclude/tgmath.h: Likewise.
2634         * gthr-aix.h: Likewise.
2635         * gthr-dce.h: Likewise.
2636         * gthr-gnat.c: Likewise.
2637         * gthr-gnat.h: Likewise.
2638         * gthr-lynx.h: Likewise.
2639         * gthr-mipssde.h: Likewise.
2640         * gthr-nks.h: Likewise.
2641         * gthr-posix.c: Likewise.
2642         * gthr-posix.h: Likewise.
2643         * gthr-posix95.h: Likewise.
2644         * gthr-rtems.h: Likewise.
2645         * gthr-single.h: Likewise.
2646         * gthr-solaris.h: Likewise.
2647         * gthr-tpf.h: Likewise.
2648         * gthr-vxworks.h: Likewise.
2649         * gthr-win32.h: Likewise.
2650         * gthr.h: Likewise.
2651         * libgcc2.c: Likewise.
2652         * libgcc2.h: Likewise.
2653         * libgcov.c: Likewise.
2654         * tsystem.h: Likewise.
2655         * typeclass.h: Likewise.
2656         * unwind-c.c: Likewise.
2657         * unwind-compat.h: Likewise.
2658         * unwind-dw2-fde-compat.c: Likewise.
2659         * unwind-dw2-fde-darwin.c: Likewise.
2660         * unwind-dw2-fde-glibc.c: Likewise.
2661         * unwind-dw2-fde.c: Likewise.
2662         * unwind-dw2-fde.h: Likewise.
2663         * unwind-dw2.c: Likewise.
2664         * unwind-dw2.h: Likewise.
2665         * unwind-generic.h: Likewise.
2666         * unwind-pe.h: Likewise.
2667         * unwind-sjlj.c: Likewise.
2668         * unwind.inc: Likewise.
2669         * config/arm/neon-gen.ml: Change generated copyright header to
2670         refer to version 3 of the GNU General Public License with
2671         version 3.1 of the GCC Runtime Library Exception and to point
2672         readers at the COPYING3 and COPYING3.RUNTIME files and the
2673         FSF's license web page.
2674         * config/arm/arm_neon.h: Regenerate.
2675
2676 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2677
2678         * config/cris/cris.md: Change copyright header to refer to version
2679         3 of the GNU General Public License.
2680         * doc/install.texi2html: Change copyright header to refer to version
2681         3 of the GNU General Public License and to point readers at the
2682         COPYING3 file and the FSF's license web page.
2683         * config/vax/linux.h: Likewise.
2684
2685 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2686
2687         * config/i386/i386.md (cmpcc): New.
2688         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
2689         (sync_compare_and_swap_cc*): Delete.
2690
2691         * config/s390/s390.c (s390_compare_emitted): Remove.
2692         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
2693         s390_compare_emitted used to be handled.  Assert that modes match.
2694         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
2695         refer to sync_compare_and_swap_ccsi.
2696         * config/s390/s390.h (s390_compare_emitted): Remove.
2697         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
2698         instead of s390_compare_emitted.
2699         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
2700         instead of s390_compare_emitted.
2701         * config/s390/s390.md (cmpcc): New.
2702         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
2703         CC_REGNUM, do not pretend it's set.
2704         (sync_compare_and_swap_cc*): Delete.
2705         * config/s390/predicates.md (cc_reg_operand): New.
2706
2707         * expr.c (sync_compare_and_swap_cc): Delete.
2708         * optabs.h (sync_compare_and_swap_cc): Delete.
2709         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
2710         is being used with can_compare_p.
2711         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
2712         (find_cc_set): New.
2713         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
2714         look for a MODE_CC set instead.  Use emit_store_flag.
2715         (expand_compare_and_swap_loop): Likewise, with some additional
2716         complication to avoid a force_reg when useless.  Use
2717         emit_cmp_and_jump_insns.
2718         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
2719         * doc/md.texi (sync_compare_and_swap_cc): Merge with
2720         sync_compare_and_swap documentation.
2721
2722 2009-04-09  Jan Hubicka  <jh@suse.cz>
2723
2724         * except.c (find_prev_try): Break out from ....
2725         (duplicate_eh_regions): ... here; properly update prev_try pointers
2726         when duplication part of tree.
2727         (dump_eh_tree): Improve dumping.
2728         (verify_eh_region): New.
2729         (verify_eh_tree): Use it.
2730
2731 2009-04-06  Richard Guenther  <rguenther@suse.de>
2732
2733         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
2734         &ARRAY addresses by adjusting their types and prepending
2735         a conversion.
2736         * tree-cfg.c (verify_gimple_assign_single): Verify that
2737         addresses are correct.
2738
2739 2009-04-09  Richard Guenther  <rguenther@suse.de>
2740
2741         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
2742         indices into an array reference if possible.
2743         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2744         Fold POINTER_PLUS_EXPR statements with invariant address.
2745
2746 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
2747
2748         PR target/39634
2749         * config.gcc (powerpc64-*-linux*): Always build biarch.
2750
2751 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2752
2753         PR c/39613
2754         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
2755         it and pedwarn if this results in an INTEGER_CST.
2756
2757 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2758
2759         * doc/install.texi: Update minimum GMP version.  Remove obsolete
2760         text in MPFR section.
2761
2762 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2763
2764         * dwarf2out.c (class_scope_p): New static inline.
2765         (class_or_namespace_scope_p): Use it.
2766         (gen_variable_die): Use DW_TAG_member tag for static data member
2767         declarations instead of DW_TAG_variable.
2768
2769         PR middle-end/39573
2770         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2771         variables.
2772
2773 2009-04-08  Richard Guenther  <rguenther@suse.de>
2774
2775         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2776         valueize random data.
2777
2778 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
2779
2780         * config.gcc (aix tm_file):  Add aix-stdint.h.
2781         (aix tm clause use_gcc_stdint):  Set to wrap.
2782         * config/rs6000/aix-stdint.h:  New file.
2783
2784 2009-04-08  Richard Guenther  <rguenther@suse.de>
2785
2786         PR middle-end/36291
2787         * tree-dfa.c (add_referenced_var): Do not recurse into
2788         global initializers.
2789         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2790         exposed variables.
2791         (fold_const_aggregate_ref): Likewise.
2792
2793 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2794
2795         * recog.c (ordered_comparison_operator): New.
2796         * gensupport.c (std_preds): Add it.
2797         * doc/md.texi (Machine-Independent Predicates): Document it.
2798
2799 2009-04-08  Jan Hubicka  <jh@suse.cz>
2800
2801         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2802         * function.h (rtl_eh): Remove exception_handler_label_map.
2803         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2804         remove_exception_handler_label, for_each_eh_label_1): Remove.
2805         (rtl_remove_unreachable_regions): Remove.
2806         (convert_from_eh_region_ranges): Do not remove unreachable regions.
2807         (find_exception_handler_labels): Don't build the hashtable.
2808         (maybe_remove_eh_handler): Remove.
2809         (for_each_eh_label): Rewrite to walk the tree.
2810         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2811         * except.h (maybe_remove_eh_handler): Remove.
2812         * passes.c (init_optimization_passes): Schedule second EH cleanup
2813         before out-of-ssa.
2814         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2815         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2816
2817 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2818
2819         * genoutput.c (validate_optab_operands): New.
2820         (gen_insn, gen_expand): Call it.
2821
2822         * genflags.c (gen_insn): Detect misused iterators.
2823         (main): Pass line_no to gen_insn, exit with status 1 on error.
2824
2825         * genextract.c (line_no): Make global.
2826         (VEC_safe_set_locstr): Change assertion to error message.
2827         (main): Exit with status 1 on error.
2828
2829 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
2830
2831         PR c/39614
2832         PR c/39673
2833         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2834         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2835         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2836         * c-convert.c (convert): Do not call fold on results of conversion
2837         functions when the result is a C_MAYBE_CONST_EXPR.
2838         * c-parser.c (c_parser_postfix_expression): Do not fold condition
2839         of __builtin_choose_expr.
2840         * c-typeck.c (remove_c_maybe_const_expr): New.
2841         (build_unary_op, build_conditional_expr, build_compound_expr,
2842         build_binary_op, c_objc_common_truthvalue_conversion): Call
2843         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2844         integer operands.
2845
2846 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
2847
2848         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
2849         CODE to produce a new one. Add a prototype to use fold_convert_const
2850
2851 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2852
2853         PR bootstrap/39660
2854         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2855         mix declarations and code.
2856
2857 2009-04-08  Ben Elliston  <bje@au.ibm.com>
2858
2859         * gcc.c: Replace `CC' with `GCC' throughout.
2860
2861 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2862
2863         * doc/invoke.texi: Document Atom support.
2864
2865 2009-04-07  Jason Merrill  <jason@redhat.com>
2866
2867         PR c++/25185
2868         * c-common.h, c-common.c: Add flag_pretty_templates.
2869         * c-opts.c (c_common_handle_option): Set it.
2870         * c.opt: Add -fno-pretty-templates.
2871         * doc/invoke.texi (C++ Dialect Options): Likewise.
2872
2873 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2874
2875         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2876         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2877         (ia64_expand_builtin): Likewise.
2878
2879 2009-04-07  Martin Jambor  <mjambor@suse.cz>
2880
2881         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2882         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2883         ADDR_EXPRS are include too.
2884
2885 2009-04-07  Richard Guenther  <rguenther@suse.de>
2886
2887         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2888         decls are only used if passes as parameters or if they are
2889         local statics and the call is not to a builtin.
2890         (call_may_clobber_ref_p_1): Likewise.
2891
2892 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2893
2894         * expr.c (do_store_flag): Remove last argument.  Simplify code
2895         to avoid duplication of tests already done by can_compare_p.
2896         (expand_expr_real_1): Adjust caller.
2897
2898 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2899
2900         * optabs.c (can_compare_p): Test the predicate of a
2901         cbranch and cstore pattern.
2902
2903 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2904
2905         * expr.c (convert_move): Use emit_store_flag instead of
2906         "emulating" it.
2907
2908 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2909
2910         * config/i386/i386.c (ix86_compare_emitted): Remove.
2911         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2912         ix86_compare_op0 like ix86_compare_emitted used to be handled.
2913         * config/i386/i386.h (ix86_compare_emitted): Remove.
2914         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2915         instead of ix86_compare_emitted.
2916         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
2917
2918 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
2919
2920         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2921         Add t-sysroot-suffix to tmake_file.
2922         * config/print-sysroot-suffix.sh: New file.
2923         * config/t-sysroot-suffix: New file.
2924
2925 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2926
2927         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2928         as the latter produces a warning when the target does not support
2929         infinity.
2930
2931 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2932
2933         * dfp.c: Replace type punning assignments with memcpy throughout.
2934         * Makefile.in (dfp.o-warn): Remove.
2935
2936 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
2937
2938         PR target/39634
2939         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2940         Include soft-fp/t-softfp after rs6000/t-linux64.
2941
2942 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2943
2944         * stor-layout.c (set_sizetype): Use the full precision of their
2945         machine mode for bitsize types.
2946
2947 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2948
2949         * config/i386/i386.md: Revert 2 accidental checkins.
2950
2951 2009-04-06  Joey Ye  <joey.ye@intel.com>
2952             Xuepeng Guo <xuepeng.guo@intel.com>
2953             H.J. Lu  <hongjiu.lu@intel.com>
2954
2955         Atom pipeline model, tuning and insn selection.
2956         * config.gcc (atom): Add atom config options and target.
2957
2958         * config/i386/atom.md: New.
2959
2960         * config/i386/i386.c (atom_cost): New cost.
2961         (m_ATOM): New macro flag.
2962         (initial_ix86_tune_features): Set m_ATOM.
2963         (x86_accumulate_outgoing_args): Likewise.
2964         (x86_arch_always_fancy_math_387): Likewise.
2965         (processor_target): Add Atom cost.
2966         (cpu_names): Add Atom cpu name.
2967         (override_options): Set Atom ISA.
2968         (ix86_issue_rate): New case PROCESSOR_ATOM.
2969         (ix86_adjust_cost): Likewise.
2970
2971         * config/i386/i386.h (TARGET_ATOM): New target macro.
2972         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2973         (TARGET_OPT_AGU): New target option.
2974         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2975         (processor_type): Add PROCESSOR_ATOM.
2976
2977         * config/i386/i386.md (cpu): Add new value "atom".
2978         (use_carry, movu): New attr.
2979         (atom.md): Include atom.md.
2980         (adddi3_carry_rex64): Set attr "use_carry".
2981         (addqi3_carry): Likewise.
2982         (addhi3_carry): Likewise.
2983         (addsi3_carry): Likewise.
2984         (*addsi3_carry_zext): Likewise.
2985         (subdi3_carry_rex64): Likewise.
2986         (subqi3_carry): Likewise.
2987         (subhi3_carry): Likewise.
2988         (subsi3_carry): Likewise.
2989         (x86_movdicc_0_m1_rex64): Likewise.
2990         (*x86_movdicc_0_m1_se): Likewise.
2991         (x86_movsicc_0_m1): Likewise.
2992         (*x86_movsicc_0_m1_se): Likewise.
2993         (*adddi_1_rex64): Emit add insn as much as possible.
2994         (*addsi_1): Likewise.
2995         (return_internal): Set atom_unit.
2996         (return_internal_long): Likewise.
2997         (return_pop_internal): Likewise.
2998         (*rcpsf2_sse): Set atom_sse_attr attr.
2999         (*qrt<mode>2_sse): Likewise.
3000         (*prefetch_sse): Likewise.
3001
3002         * config/i386/i386-c.c (ix86_target_macros_internal): New case
3003         PROCESSOR_ATOM.
3004         (ix86_target_macros_internal): Likewise.
3005
3006         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
3007         (*prefetch_sse_rex): Likewise.
3008         (sse_rcpv4sf2): Likewise.
3009         (sse_vmrcpv4sf2): Likewise.
3010         (sse_sqrtv4sf2): Likewise.
3011         (<sse>_vmsqrt<mode>2): Likewise.
3012         (sse_ldmxcsr): Likewise.
3013         (sse_stmxcsr): Likewise.
3014         (*sse_sfence): Likewise.
3015         (sse2_clflush): Likewise.
3016         (*sse2_mfence): Likewise.
3017         (*sse2_lfence): Likewise.
3018         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
3019         (<sse>_movup<ssemodesuffixf2c>): Likewise.
3020         (avx_movdqu<avxmodesuffix>): Likewise.
3021         (avx_lddqu<avxmodesuffix>): Likewise.
3022         (sse2_movntv2di): Change attr "type" to "ssemov".
3023         (sse2_movntsi): Likewise.
3024         (rsqrtv8sf2): Change attr "type" to "sseadd".
3025         (sse3_addsubv2df3): Set attr "atom_unit".
3026         (sse3_h<plusminus_insn>v4sf3): Likewise.
3027         (*sse2_pmaddwd): Likewise.
3028         (*vec_extractv2di_1_rex64): Likewise.
3029         (*vec_extractv2di_1_avx): Likewise.
3030         (sse2_psadbw): Likewise.
3031         (ssse3_phaddwv8hi3): Likewise.
3032         (ssse3_phaddwv4hi3): Likewise.
3033         (ssse3_phadddv4si3): Likewise.
3034         (ssse3_phadddv2si3): Likewise.
3035         (ssse3_phaddswv8hi3): Likewise.
3036         (ssse3_phaddswv4hi3): Likewise.
3037         (ssse3_phsubwv8hi3): Likewise.
3038         (ssse3_phsubwv4hi3): Likewise.
3039         (ssse3_phsubdv4si3): Likewise.
3040         (ssse3_phsubdv2si3): Likewise.
3041         (ssse3_phsubswv8hi3): Likewise.
3042         (ssse3_phsubswv4hi3): Likewise.
3043         (ssse3_pmaddubsw128): Likewise.
3044         (sse3_pmaddubsw: Likewise.
3045         (ssse3_palignrti): Likewise.
3046         (ssse3_palignrdi): Likewise.
3047
3048 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
3049
3050         * doc/install.texi (Specific): Fix two cross-references to MinGW.
3051
3052 2009-04-06  Richard Guenther  <rguenther@suse.de>
3053
3054         PR tree-optimization/28868
3055         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
3056         of which PHI results we inserted.
3057         (insert_into_preds_of_block): Record inserted PHIs.
3058         (eliminate): Eliminate redundant PHI nodes.
3059         (init_pre): Init inserted_phi_names.
3060
3061 2009-04-06  Richard Guenther  <rguenther@suse.de>
3062
3063         PR tree-optimization/39643
3064         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
3065         IMAGPART_EXPRs of complex constants.
3066         (execute_fold_all_builtins): If we folded a call queue
3067         TODO_update_address_taken.
3068
3069 2009-04-06  Jan Hubicka  <jh@suse.cz>
3070
3071         PR middle-end/39659
3072         * except.c (remove_unreachable_regions): Propagate may_contain_throw
3073         flag.
3074
3075 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
3076
3077         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
3078         delay slot.
3079         (ic_invalidate_array): Likewise.
3080
3081 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
3082
3083         * calls.c (emit_library_call_value_1): Fix a problem with parameter
3084         alignment for library calls.
3085
3086 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
3087
3088         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
3089         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
3090         * config/i386/mingw-stdint.h:  New file.
3091
3092 2009-04-05  Richard Guenther  <rguenther@suse.de>
3093
3094         PR tree-optimization/39648
3095         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
3096         our &A vs. &A[0] IL deficiencies.
3097
3098 2009-04-04  Jan Hubicka  <jh@suse.cz>
3099
3100         * except.c (sjlj_find_directly_reachable_regions): Be ready for
3101         removed toplevel regions.
3102         (sjlj_mark_call_sites): Likewise.
3103
3104 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
3105
3106         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
3107         (cygwin tm clause use_gcc_stdint):  Set to wrap.
3108         * config/i386/cygwin-stdint.h:  New file.
3109
3110 2009-04-04  Richard Guenther  <rguenther@suse.de>
3111
3112         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
3113         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
3114         single-argument PHIs if we are in loop-closed SSA form.
3115         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
3116         for the pre-condition.
3117         (slpeel_tree_peel_loop_to_edge): Likewise.
3118         (vect_build_loop_niters): Take an optional sequence to append stmts.
3119         (vect_generate_tmps_on_preheader): Likewise.
3120         (vect_do_peeling_for_loop_bound): Take extra guards for the
3121         pre-condition.
3122         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
3123         the cost model check.
3124         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
3125         guards if we are going to peel.  Do not apply versioning in that case.
3126         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
3127         (vect_do_peeling_for_loop_bound): Likewise.
3128         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
3129         loop bound only record extra pre-conditions, do not apply loop
3130         versioning.
3131
3132 2009-04-04  Richard Guenther  <rguenther@suse.de>
3133
3134         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
3135         renaming code.
3136
3137 2009-04-04  Jan Hubicka  <jh@suse.cz>
3138
3139         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
3140         last_basic_block for size of bb->index indexed array.
3141         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
3142         compute_out, link_btr_uses, build_btr_def_use_webs,
3143         build_btr_def_use_webs, migrate_btr_defs): Likewise.
3144
3145 2009-04-04  Jan Hubicka  <jh@suse.cz>
3146
3147         * except.c (remove_eh_handler_and_replace): Break out from ...
3148         (remove_eh_handler): ... here.
3149         (bring_to_root): New function.
3150         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
3151         handled ones, bring others to root of tree.
3152
3153 2009-04-04  Jan Hubicka  <jh@suse.cz>
3154
3155         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
3156         (all_phis_safe_to_merge): New function.
3157         (update_info): New structure.
3158         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
3159         (cleanup_empty_eh): Update SSA if possible.
3160
3161 2009-04-04  Richard Guenther  <rguenther@suse.de>
3162
3163         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
3164         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
3165         (append_vuse): Likewise.
3166
3167 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
3168
3169         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
3170         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
3171         instead of REG_UNSAVED for DW_CFA_undefined.
3172         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
3173         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
3174         outermost frame.
3175
3176 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
3177
3178         PR target/39501
3179         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
3180         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
3181         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
3182
3183 2009-04-04  Richard Guenther  <rguenther@suse.de>
3184
3185         PR tree-optimization/8781
3186         PR tree-optimization/37892
3187         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
3188         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
3189         (valueize_refs): Call it for *& valueizations.
3190         (shared_reference_ops_from_ref): Rename to ...
3191         (valueize_shared_reference_ops_from_ref): ... this and valueize.
3192         (shared_reference_ops_from_call): Rename to ...
3193         (valueize_shared_reference_ops_from_call): ... this and valueize.
3194         (vn_reference_lookup): Update.
3195         (visit_reference_op_call): Likewise.
3196         * tree-ssa-pre.c (phi_translate_1): Fold *&.
3197         (eliminate): Value-replace the call address in call statements.
3198
3199 2009-04-04  Richard Guenther  <rguenther@suse.de>
3200
3201         PR tree-optimization/39636
3202         * tree-ssa-forwprop.c
3203         (forward_propagate_addr_into_variable_array_index): Check for
3204         GIMPLE_ASSIGN before accessing the rhs code.
3205
3206 2009-04-03  Jason Merrill  <jason@redhat.com>
3207
3208         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
3209
3210 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
3211
3212         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
3213         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
3214         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
3215         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
3216         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
3217         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
3218         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
3219         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
3220         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
3221         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
3222         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
3223         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
3224         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
3225         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
3226         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
3227         Use fr_reg_or_fp01_operand instead of fr_register_operand
3228
3229         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
3230         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
3231         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
3232
3233 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
3234
3235         PR rtl-optimization/39607
3236         PR rtl-optimization/39631
3237
3238         Revert:
3239
3240         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3241         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3242         instead of DF_LR_OUT.
3243         * ira-lives.c (process_bb_node_lives): Ditto.
3244         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3245         instead of DF_LR_{OUT,IN}.
3246         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3247         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3248
3249 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
3250
3251         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
3252         (execute_lower_omp): Always run but take the short way out if -fopenmp
3253         is not given.
3254         (gate_lower_omp): Remove, forcing the pass manager to always run the
3255         pass and always set PROP_gimple_lomp.
3256         (pass_lower_omp): Remove gate function.
3257         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
3258         PROP_trees.  Instead, require it.
3259         * ipa-cp.c (pass_ipa_cp): Likewise.
3260         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
3261         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
3262         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
3263         and PROP_gimple_leh.
3264
3265 2009-04-03  Richard Guenther  <rguenther@suse.de>
3266
3267         PR middle-end/13146
3268         PR tree-optimization/23940
3269         PR tree-optimization/33237
3270         PR middle-end/33974
3271         PR middle-end/34093
3272         PR tree-optimization/36201
3273         PR tree-optimization/36230
3274         PR tree-optimization/38049
3275         PR tree-optimization/38207
3276         PR tree-optimization/38230
3277         PR tree-optimization/38301
3278         PR tree-optimization/38585
3279         PR middle-end/38895
3280         PR tree-optimization/38985
3281         PR tree-optimization/39299
3282         * tree-ssa-structalias.h: Remove.
3283         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
3284         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
3285         (struct vuse_element_d): Remove.
3286         (struct vuse_vec_d): Likewise.
3287         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
3288         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
3289         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
3290         VUSE_ELEMENT_VAR): Likewise.
3291         (struct voptype_d): Likewise.
3292         (NUM_VOP_FREE_BUCKETS): Likewise.
3293         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
3294         (struct stmt_operands_d): Remove.
3295         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
3296         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
3297         VDEF_NUM, VDEF_VECT): Likewise.
3298         (copy_virtual_operands): Remove.
3299         (operand_build_cmp): Likewise.
3300         (create_ssa_artificial_load_stmt): Likewise.
3301         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
3302         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
3303         vuse_index and mayuse_index members.  Pack and move done and iter_type
3304         members to the front.
3305         (SSA_OP_VMAYUSE): Remove.
3306         (SSA_OP_VIRTUAL_USES): Adjust.
3307         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
3308         (unlink_stmt_vdef): Declare.
3309         (add_to_addressable_set): Remove.
3310         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
3311         (vrp_visit_stmt): Likewise.
3312         * doc/tree-ssa.texi (Alias analysis): Update.
3313         * doc/invoke.texi (max-aliased-vops): Remove docs.
3314         (avg-aliased-vops): Likewise.
3315         * tree-into-ssa.c (syms_to_rename): Remove.
3316         (need_to_update_vops_p): Likewise.
3317         (need_to_initialize_update_ssa_p): Rename to ...
3318         (update_ssa_initialized_fn): ... this.  Track function we are
3319         initialized for.
3320         (symbol_marked_for_renaming): Simplify.
3321         (add_new_name_mapping): Do not set need_to_update_vops_p.
3322         (dump_currdefs): Use SYMS_TO_RENAME.
3323         (rewrite_update_stmt): Always walk all uses/defs.
3324         (dump_update_ssa): Adjust.
3325         (init_update_ssa): Take function argument.  Track what we are
3326         initialized for.
3327         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
3328         (create_new_def_for): Initialize for cfun, assert we are initialized
3329         for cfun.
3330         (mark_sym_for_renaming): Simplify.
3331         (mark_set_for_renaming): Do not initialize update-ssa.
3332         (need_ssa_update_p): Simplify.  Take function argument.
3333         (name_mappings_registered_p): Assert we ask for the correct function.
3334         (name_registered_for_update_p): Likewise.
3335         (ssa_names_to_replace): Likewise.
3336         (release_ssa_name_after_update_ssa): Likewise.
3337         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
3338         (dump_decl_set): Do not print a newline.
3339         (debug_decl_set): Do it here.
3340         (dump_update_ssa): And here.
3341         * tree-ssa-loop-im.c (move_computations): Adjust.
3342         (movement_possibility): Likewise.
3343         (determine_max_movement): Likewise.
3344         (gather_mem_refs_stmt): Likewise.
3345         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
3346         or NAME_MEMORY_TAG.
3347         * tree-complex.c (update_all_vops): Remove.
3348         (expand_complex_move): Adjust.
3349         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
3350         Simplify test for memory referencing statement.  Exclude
3351         non-invariant ADDR_EXPRs.
3352         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
3353         * tree-loop-distribution.c (generate_memset_zero): Adjust.
3354         (rdg_flag_uses): Likewise.
3355         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
3356         related code.
3357         (tree_optimize_tail_calls_1): Also split the
3358         edge from the entry block if we have degenerate PHI nodes in
3359         the first basic block.
3360         * tree.c (init_ttree): Remove memory-tag related code.
3361         (tree_code_size): Likewise.
3362         (tree_node_structure): Likewise.
3363         (build7_stat): Re-write to be build6_stat.
3364         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
3365         (SSA_VAR_P): Adjust.
3366         (struct tree_memory_tag): Remove.
3367         (struct tree_memory_partition_tag): Likewise.
3368         (union tree_node): Adjust.
3369         (build7): Re-write to be build6.
3370         * tree-pass.h (pass_reset_cc_flags): Remove.
3371         (TODO_update_address_taken): New flag.
3372         (pass_simple_dse): Remove.
3373         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
3374         * params.h (MAX_ALIASED_VOPS): Remove.
3375         (AVG_ALIASED_VOPS): Likewise.
3376         * omp-low.c (expand_omp_taskreg): Update SSA form.
3377         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
3378         aliases the lhs in a copy stmt.
3379         * tree-ssa-dse.c (struct address_walk_data): Remove.
3380         (memory_ssa_name_same): Likewise.
3381         (memory_address_same): Likewise.
3382         (get_kill_of_stmt_lhs): Likewise.
3383         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
3384         unused stores.  Look through PHI nodes into post-dominated regions.
3385         (dse_optimize_stmt): Simplify.  Properly remove stores.
3386         (tree_ssa_dse): Compute dominators.
3387         (execute_simple_dse): Remove.
3388         (pass_simple_dse): Likewise.
3389         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
3390         gimple_loaded_syms and gimple_stored_syms computation.
3391         * toplev.c (dump_memory_report): Dump alias and pta stats.
3392         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
3393         (vn_reference_eq): Likewise.
3394         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
3395         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
3396         valueize_vuses): Remove.
3397         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
3398         (get_def_ref_stmt_vuse): ... this.
3399         (vn_reference_lookup_2): New function.
3400         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
3401         walking equivalent vuses.  Simplify.
3402         (vn_reference_lookup): Likewise.
3403         (vn_reference_insert): Likewise.
3404         (vn_reference_insert_pieces): Likewise.
3405         (visit_reference_op_call): Simplify.
3406         (visit_reference_op_load): Likewise.
3407         (visit_reference_op_store): Likewise.
3408         (init_scc_vn): Remove shared_lookup_vuses initialization.
3409         (free_scc_vn): Remove shared_lookup_vuses freeing.
3410         (sort_vuses, sort_vuses_heap): Remove.
3411         (get_ref_from_reference_ops): Export.
3412         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
3413         vector with single vuse pointer.
3414         (vn_reference_lookup_pieces, vn_reference_lookup,
3415         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
3416         (shared_vuses_from_stmt): Remove.
3417         (get_ref_from_reference_ops): Declare.
3418         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
3419         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3420         memory-tag related code.
3421         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
3422         (likely_value): Add comment, skip static-chain of call statements.
3423         (surely_varying_stmt_p): Adjust.
3424         (gimplify_and_update_call_from_tree): Likewise.
3425         (execute_fold_all_builtins): Do not rebuild alias info.
3426         (gimplify_and_update_call_from_tree): Properly update VOPs.
3427         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
3428         (copy_ref_info): Remove memory-tag related code.
3429         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
3430         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
3431         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
3432         computation.
3433         * tree-ssa-dom.c (gimple_p): Remove typedef.
3434         (eliminate_redundant_computations): Adjust.
3435         (record_equivalences_from_stmt): Likewise.
3436         (avail_expr_hash): Likewise.
3437         (avail_expr_eq): Likewise.
3438         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
3439         (stmt_makes_single_load): Likewise.
3440         (stmt_makes_single_store): Likewise.
3441         * tree-ssa-alias.c: Rewrite completely.
3442         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
3443         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
3444         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
3445         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
3446         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
3447         Remove public functions.
3448         (pass_reset_cc_flags): Remove.
3449         (pass_build_alias): Move ...
3450         * tree-ssa-structalias.c (pass_build_alias): ... here.
3451         * tree-ssa-alias.c (may_be_aliased): Move ...
3452         * tree-flow-inline.h (may_be_aliased): ... here.
3453         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
3454         count_uses_and_derefs): Move ...
3455         * gimple.c: ... here.
3456         * gimple.h (count_uses_and_derefs): Declare.
3457         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
3458         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
3459         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
3460         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
3461         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
3462         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
3463         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
3464         New functions.
3465         * tree-dfa.c (refs_may_alias_p): Move ...
3466         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
3467         * tree-ssa-alias.h: New file.
3468         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
3469         (statement_sink_location): Likewise.
3470         * opts.c (decode_options): Do not adjust max-aliased-vops or
3471         avg-aliased-vops values.
3472         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
3473         (TV_CALL_CLOBBER): Likewise.
3474         (TV_FLOW_SENSITIVE): Likewise.
3475         (TV_FLOW_INSENSITIVE): Likewise.
3476         (TV_MEMORY_PARTITIONING): Likewise.
3477         (TV_ALIAS_STMT_WALK): New timevar.
3478         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
3479         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
3480         (get_address_description): Remove memory-tag related code.
3481         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
3482         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
3483         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
3484         and immediate uses in statements.  Document.
3485         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
3486         (dump_symbols): Remove.
3487         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
3488         * alias.c (get_deref_alias_set): New function split out from ...
3489         (get_alias_set): ... here.
3490         * alias.h (get_deref_alias_set): Declare.
3491         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
3492         type parameter.  Remove restrict pointer handling.  Create a
3493         ref-all pointer in case type-based alias sets do not conflict.
3494         (vect_analyze_data_refs): Remove SMT related code.
3495         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
3496         (vectorizable_load): Likewise.
3497         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
3498         (DR_SYMBOL_TAG, DR_VOPS): Remove.
3499         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
3500         Ignore vops and SMTs.
3501         (dr_analyze_alias): Likewise..
3502         (free_data_ref): Likewise.
3503         (create_data_ref): Likewise.
3504         (analyze_all_data_dependences): Likewise.
3505         (get_references_in_stmt): Adjust.
3506         * tree-flow-inline.h (gimple_aliases_computed_p,
3507         gimple_addressable_vars, gimple_call_clobbered_vars,
3508         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
3509         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
3510         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
3511         gimple_mem_ref_stats): Remove.
3512         (gimple_vop): New function.
3513         (op_iter_next_use): Remove vuses and mayuses cases.
3514         (op_iter_next_def): Remove vdefs case.
3515         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
3516         (clear_and_done_ssa_iter): Do not set removed fields.
3517         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
3518         Assert we are not iterating over vuses or vdefs if not also
3519         iterating over uses or defs.
3520         (op_iter_init_use): Likewise.
3521         (op_iter_init_def): Likewise.
3522         (op_iter_next_vdef): Remove.
3523         (op_iter_next_mustdef): Likewise.
3524         (op_iter_init_vdef): Likewise.
3525         (compare_ssa_operands_equal): Likewise.
3526         (link_use_stmts_after): Handle vuse operand.
3527         (is_call_used): Use is_call_clobbered.
3528         (is_call_clobbered): Global variables are always call clobbered,
3529         query the call-clobbers bitmap.
3530         (mark_call_clobbered): Ignore global variables.
3531         (clear_call_clobbered): Likewise.
3532         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
3533         virtual operands sanity check.
3534         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
3535         Remove.
3536         (TARGET_MEM_REF): Remove TMR_TAG operand.
3537         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
3538         Remove call-clobber related code.
3539         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
3540         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
3541         partitions or escape reason.
3542         (get_single_def_stmt, get_single_def_stmt_from_phi,
3543         get_single_def_stmt_with_phi): Remove.
3544         (dump_referenced_vars): Tidy.
3545         (get_ref_base_and_extent): Allow bare decls.
3546         (collect_dfa_stats): Adjust.
3547         * graphite.c (rename_variables_in_stmt): Adjust.
3548         (graphite_copy_stmts_from_block): Likewise.
3549         (translate_clast): Likewise.
3550         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
3551         (EXPR_DIES): New.
3552         (translate_vuse_through_block): Use the oracle.
3553         (phi_translate_1): Adjust.
3554         (value_dies_in_block_x): Use the oracle.  Cache the outcome
3555         in EXPR_DIES.
3556         (valid_in_sets): Check if the VUSE for
3557         a REFERENCE is available.
3558         (eliminate): Do not remove stmts during elimination,
3559         instead queue and remove them afterwards.
3560         (do_pre): Do not rebuild alias info.
3561         (pass_pre): Run TODO_rebuild_alias before PRE.
3562         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
3563         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
3564         (mark_all_v_defs_stmt): Remove.
3565         (mark_all_v_defs_seq): Adjust.
3566         (sra_replace): Likewise.
3567         (scalarize_use): Likewise.
3568         (scalarize_copy): Likewise.
3569         (scalarize_init): Likewise.
3570         (scalarize_ldst): Likewise.
3571         (todoflags): Remove.
3572         (tree_sra): Do not rebuild alias info.
3573         (tree_sra_early): Adjust.
3574         (pass_sra): Run TODO_update_address_taken before SRA.
3575         * tree-predcom.c (set_alias_info): Remove.
3576         (prepare_initializers_chain): Do not call it.
3577         (mark_virtual_ops_for_renaming): Adjust.
3578         (mark_virtual_ops_for_renaming_list): Remove.
3579         (initialize_root_vars): Adjust.
3580         (initialize_root_vars_lm): Likewise.
3581         (prepare_initializers_chain): Likewise.
3582         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
3583         (may_propagate_copy_into_stmt): Likewise.
3584         (merge_alias_info): Do nothing for now.
3585         (propagate_tree_value_into_stmt): Adjust.
3586         (stmt_may_generate_copy): Likewise.
3587         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
3588         not mark symbols for renaming.
3589         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
3590         with the same statement, make sure to update the new pointed-to one.
3591         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
3592         call statements, do not mark symbols for renaming.
3593         (mark_operand_necessary): Dump something.
3594         (ref_may_be_aliased): New function.
3595         (mark_aliased_reaching_defs_necessary_1): New helper function.
3596         (mark_aliased_reaching_defs_necessary): Likewise.
3597         (mark_all_reaching_defs_necessary_1): Likewise.
3598         (mark_all_reaching_defs_necessary): Likewise.
3599         (propagate_necessity): Do not process virtual PHIs.  For
3600         non-aliased loads mark all reaching definitions as necessary.
3601         For aliased loads and stores mark the immediate dominating
3602         aliased clobbers as necessary.
3603         (visited): New global static.
3604         (perform_tree_ssa_dce): Free visited bitmap after propagating
3605         necessity.
3606         (remove_dead_phis): Perform simple dead virtual PHI removal.
3607         (remove_dead_stmt): Properly unlink virtual operands when
3608         removing stores.
3609         (eliminate_unnecessary_stmts): Schedule PHI removal after
3610         stmt removal.
3611         * tree-ssa-ter.c (is_replaceable_p): Adjust.
3612         (process_replaceable): Likewise.
3613         (find_replaceable_in_bb): Likewise.
3614         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
3615         based on the single gimple vop.
3616         (verify_flow_insensitive_alias_info): Remove.
3617         (verify_flow_sensitive_alias_info): Likewise.
3618         (verify_call_clobbering): Likewise.
3619         (verify_memory_partitions): Likewise.
3620         (verify_alias_info): Likewise.
3621         (verify_ssa): Adjust..
3622         (execute_update_addresses_taken): Export.  Update SSA
3623         manually.  Optimize only when optimizing.  Use a local bitmap.
3624         (pass_update_address_taken): Remove TODO_update_ssa, add
3625         TODO_dump_func.
3626         (pass_update_address_taken): Just use TODO_update_address_taken.
3627         (init_tree_ssa): Do not initialize addressable_vars.
3628         (verify_ssa): Verify new VUSE / VDEF properties.
3629         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
3630         Do not call verify_alias_info.
3631         (delete_tree_ssa): Clear the VUSE, VDEF operands.
3632         Do not free the loaded and stored syms bitmaps.  Reset the escaped
3633         and callused solutions.  Do not free addressable_vars.
3634         Remove memory-tag related code.
3635         (warn_uninitialized_var): Aliases are always available.
3636         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
3637         * lambda-code.c (can_put_in_inner_loop): Adjust.
3638         (can_put_after_inner_loop): Likewise.
3639         (perfect_nestify): Likewise.
3640         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
3641         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
3642         (vectorizable_conversion): Do not mark symbols for renaming.
3643         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
3644         (expand_call_inline): Unlink the calls virtual operands before
3645         replacing it.
3646         (tree_function_versioning): Do not call update_ssa if we are not
3647         updating clones.  Simplify.
3648         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
3649         (propagate_with_phi): Likewise..
3650         * tree-outof-ssa.c (create_temp): Remove memory tag and call
3651         clobber code.  Assert we are not aliased or global.
3652         * tree-flow.h: Include tree-ssa-alias.h
3653         (enum escape_type): Remove.
3654         (struct mem_sym_stats_d): Likewise.
3655         (struct mem_ref_stats_d): Likewise.
3656         (struct gimple_df): Add vop member.  Remove global_var,
3657         call_clobbered_vars, call_used_vars, addressable_vars,
3658         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
3659         escaped and callused members.
3660         (struct ptr_info_def): Remove all members, add points-to solution
3661         member pt.
3662         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
3663         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
3664         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
3665         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
3666         (tree-ssa-alias.o): Likewise.
3667         (toplev.o): Add tree-ssa-alias.h
3668         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
3669         * gimple.c (gimple_set_bb): Fix off-by-one error.
3670         (is_gimple_reg): Do not handle memory tags.
3671         (gimple_copy): Also copy virtual operands.
3672         Delay updating the statement.  Do not reset loaded and stored syms.
3673         (gimple_set_stored_syms): Remove.
3674         (gimple_set_loaded_syms): Likewise.
3675         (gimple_call_copy_skip_args): Copy the virtual operands
3676         and mark the new statement modified.
3677         * tree-ssa-structalias.c (may_alias_p): Remove.
3678         (set_uids_in_ptset): Take the alias set to prune with as
3679         parameter.  Fold in the alias test of may_alias_p.
3680         (compute_points_to_sets): Compute whether a ptr is dereferenced
3681         in a local sbitmap.
3682         (process_constraint): Deal with &ANYTHING on the lhs, reject all
3683         other ADDRESSOF constraints on the lhs.
3684         (get_constraint_for_component_ref): Assert that we don't get
3685         ADDRESSOF constraints from the base of the reference.
3686         Properly generate UNKNOWN_OFFSET for DEREF if needed.
3687         (struct variable_info): Remove collapsed_to member.
3688         (get_varinfo_fc): Remove.
3689         (new_var_info): Do not set collapsed_to.
3690         (dump_constraint): Do not follow cycles.
3691         (dump_constraint_graph): Likewise.
3692         (build_pred_graph): Likewise.
3693         (build_succ_graph): Likewise.
3694         (rewrite_constraints): Likewise.
3695         (do_simple_structure_copy): Remove.
3696         (do_rhs_deref_structure_copy): Remove.
3697         (do_lhs_deref_structure_copy): Remove.
3698         (collapse_rest_of_var): Remove.
3699         (do_structure_copy): Re-implement.
3700         (pta_stats): New global variable.
3701         (dump_pta_stats): New function.
3702         (struct constraint_expr): Make offset signed.
3703         (UNKNOWN_OFFSET): Define special value.
3704         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
3705         (solution_set_expand): New helper function split out from ...
3706         (do_sd_constraint): ... here.
3707         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
3708         (do_ds_constraint): Likewise.
3709         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
3710         and CALLUSED = *CALLUSED.
3711         (set_union_with_increment): Make inc argument signed.
3712         (type_safe): Remove.
3713         (get_constraint_for_ptr_offset): Handle unknown and negative
3714         constant offsets.
3715         (first_vi_for_offset): Handle offsets before start.  Bail
3716         out early for offsets beyond the variable extent.
3717         (first_or_preceding_vi_for_offset): New function.
3718         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
3719         Together with ESCAPED = *ESCAPED this properly computes reachability.
3720         (find_what_var_points_to): New function.
3721         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
3722         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
3723         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
3724         pt_solutions_intersect): New functions.
3725         (compute_call_used_vars): Remove.
3726         (compute_may_aliases): New main entry into PTA computation.
3727         * gimple.h (gimple_p): New typedef.
3728         (struct gimple_statement_base): Remove references_memory_p.
3729         (struct gimple_statement_with_memory_ops_base): Remove
3730         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
3731         members.
3732         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
3733         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
3734         gimple_set_references_memory): Remove.
3735         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
3736         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
3737         New functions.
3738         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
3739         (verify_expr): Allow RESULT_DECL.
3740         (gimple_duplicate_bb): Do not copy virtual operands.
3741         (gimple_duplicate_sese_region): Adjust.
3742         (gimple_duplicate_sese_tail): Likewise.
3743         (mark_virtual_ops_in_region): Remove.
3744         (move_sese_region_to_fn): Do not call it.
3745         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
3746         and pass_simple_dse.
3747         (execute_function_todo): Handle TODO_update_address_taken,
3748         call execute_update_addresses_taken for TODO_rebuild_alias.
3749         (execute_todo): Adjust.
3750         (execute_one_pass): Init dump files early.
3751         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
3752         call-clobbered.
3753         (create_general_new_stmt): Clear vops.
3754         * tree-ssa-reassoc.c (get_rank): Adjust.
3755         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
3756         symbols for renaming.
3757         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
3758         (PARAM_AVG_ALIASED_VOPS): Likewise.
3759         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
3760         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
3761         * tree-ssa-operands.c: Simplify for new virtual operand representation.
3762         (operand_build_cmp, copy_virtual_operands,
3763         create_ssa_artificial_load_stmt, add_to_addressable_set,
3764         gimple_add_to_addresses_taken): Remove public functions.
3765         (unlink_stmt_vdef): New function.
3766
3767 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3768
3769         * config.gcc (powerpc-*-linux*): Merge variants.
3770
3771 2009-04-02  Chao-ying Fu  <fu@mips.com>
3772             James Grosbach <james.grosbach@microchip.com>
3773
3774         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
3775         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
3776         cop0_sp_offset.
3777         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
3778         keep_interrupts_masked_p, use_debug_exception_return_p.
3779         (mips_attribute_table): Add interrupt, use_shadow_register_set,
3780         keep_interrupts_masked, use_debug_exception_return.
3781         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
3782         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
3783         New functions.
3784         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
3785         (mips_print_operand): Process COP0 registers to print $0 .. $31
3786         correctly for GAS to process.
3787         (mips_interrupt_extra_call_saved_reg_p): New function.
3788         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
3789         extra registers.
3790         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3791         (mips_compute_frame_info): Add supports for interrupt context that
3792         includes doubleword accumulators and COP0 registers.
3793         (mips_for_each_saved_acc): New function.
3794         (mips_for_each_saved_gpr_and_fpr): Change the function name from
3795         mips_for_each_saved_reg.
3796         (mips_save_reg): Save accumulators.
3797         (mips_kernel_reg_p): A new for_each_rtx callback.
3798         (mips_expand_prologue): Support interrupt handlers.
3799         (mips_restore_reg): Restore accumulators.
3800         (mips_expand_epilogue): Support interrupt handlers.
3801         (mips_can_use_return_insn): Return false for interrupt handlers.
3802         (mips_epilogue_uses): New function.
3803         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
3804         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
3805         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
3806         cop0_move): New instructions.
3807         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
3808         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
3809         defines.
3810         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
3811         New defines.
3812         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
3813         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
3814         interrupt handlers, we use K0 as the temporary register.
3815         (EPILOGUE_USES): Change to a function call.
3816         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
3817         handlers, we use K0 as the temporary register.
3818
3819         * doc/extend.texi (Function Attributes): Document interrupt,
3820         use_shadow_register_set, keep_interrupts_masked,
3821         use_debug_exception_return for MIPS attributes.
3822
3823 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3824
3825         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
3826         Remove a number of t-files from tmake_file.
3827         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
3828         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
3829         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3830         target_prototype, not TARGET_PROTOTYPE.
3831         (LINK_OS_GNU_SPEC): Define.
3832         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
3833         and darwin-ldoubdle.c.
3834
3835 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3836
3837         PR driver/39293
3838         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
3839         (cpp_options): Ditto.
3840         (default_compilers): Ditto.
3841         (display_help): Ditto.
3842         (process_command): Ditto.
3843         (do_spec_1): Ditto.
3844         (set_input): Use lbasename instead of duplicate code.
3845         (save_temps_prefix): New static for -save-temps=obj.
3846         (save_temps_length): Ditto.
3847
3848         * doc/invoke.texi (-save-temps=obj): Document new variant to
3849         -save-temps switch.
3850
3851 2009-04-02  Jeff Law  <law@redhat.com>
3852
3853         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
3854         variable.
3855
3856 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3857
3858         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
3859         * configure: Regenerated.
3860
3861 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3862
3863         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
3864         share the argument list.
3865
3866 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3867
3868         Merge
3869
3870         2009-02-12  Diego Novillo  <dnovillo@google.com>
3871
3872         * varpool.c (debug_varpool): New.
3873         * cgraph.h (debug_varpool): Declare.
3874
3875 2009-04-02  Jan Hubicka  <jh@suse.cz>
3876
3877         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
3878         pass.
3879
3880 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3881
3882         * config/i386/i386.c (ix86_abi): Move initialization to ...
3883         (override_options): Here.
3884
3885 2009-04-02  Christian Bruel  <christian.bruel@st.com>
3886
3887         * config/sh/sh.c (sh_dwarf_register_span): New function.
3888         (TARGET_DWARF_REGISTER_SPAN): Define.
3889         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
3890
3891 2009-04-02  Ira Rosen  <irar@il.ibm.com>
3892
3893         PR tree-optimization/39595
3894         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
3895         interleaved loads group is not  greater than the SLP group size.
3896
3897 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3898
3899         * builtins.c (is_builtin_name): New.
3900         (called_as_built_in): Use is_builtin_name.
3901         * tree.h (is_builtin_name): New.
3902         * varasm.c (incorporeal_function_p): Use is_builtin_name
3903
3904 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
3905
3906         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
3907
3908 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
3909
3910         PR c++/26693
3911         * c-decl.c (clone_underlying_type): Move this ...
3912         * c-common.c (set_underlying_type): ... here.
3913         Also, make sure the function properly sets TYPE_STUB_DECL() on
3914         the newly created typedef variant type.
3915         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
3916         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
3917         points.
3918
3919 2009-04-02  Richard Guenther  <rguenther@suse.de>
3920
3921         PR tree-optimization/37221
3922         * tree-flow.h (degenerate_phi_result): Declare.
3923         * tree-ssa-dom.c (degenerate_phi_result): Export.
3924         * tree-scalar-evolution.c (analyze_initial_condition): If
3925         the initial condition is defined by a degenerate PHI node
3926         use the degenerate value.
3927
3928 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
3929
3930         PR rtl-optimization/39588
3931         * combine.c (merge_outer_ops): Do not set the constant when this
3932         is not necessary.
3933         (simplify_shift_const_1): Do not modify it either in this case.
3934
3935 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
3936
3937         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
3938         tuning is deprecated if -mtune value is set to an Itanium1 variant.
3939
3940 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
3941
3942         PR c/29027
3943         * c-lex.c (interpret_float): Default (no suffix) is double.
3944
3945 2009-04-1  Xinliang David Li  <davidxl@google.com>
3946
3947         * config/i386/i386.c (legitimate_constant_p): Recognize
3948         all one vector constant.
3949
3950 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3951
3952         * gcc/config/vax/vax.c: Add #includes to silence warnings.
3953         Change #include order to silence two warnings.
3954
3955 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3956
3957         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
3958         (ASM_SPEC): Pass -k to the assembler for PIC code.
3959
3960 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3961
3962         * gcc/config.gcc: Add vax-*-linux* to the switch.
3963         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
3964         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
3965
3966 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3967
3968         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
3969         Use predicate macros instead of GET_CODE() == foo.
3970         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
3971         ashlsi3, rotrsi3, <unnamed>): Likewise.
3972
3973 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3974
3975         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
3976         jbbccihi, jbbccisi): Remova trailing whitespace.
3977         * gcc/config/vax/constraints.md: Likewise.
3978         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3979         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
3980         * gcc/config/vax/predicates.md: Likewise.
3981         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
3982         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
3983         * gcc/config/vax/vax.h: Likewise.
3984         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
3985
3986 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3987
3988         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
3989         (indirectable_address_p, adjacent_operands_p): Add spaces around
3990         braces.
3991         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
3992
3993 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3994
3995         * gcc/config/vax/vax.c (legitimate_constant_address_p,
3996         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
3997         index_term_p, reg_plus_index_p, legitimate_address_p,
3998         vax_mode_dependent_address_p): Update comments to match functions
3999         modified by the recent int->bool conversion.
4000
4001 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4002
4003         * gcc/config/vax/builtins.md: Update copyright message.
4004         * gcc/config/vax/constraints.md: Likewise.
4005         * gcc/config/vax/netbsd-elf.h: Likewise.
4006         * gcc/config/vax/predicates.md: Likewise.
4007         * gcc/config/vax/vax-protos.h: Likewise.
4008         * gcc/config/vax/vax.c: Likewise.
4009         * gcc/config/vax/vax.h: Likewise.
4010         * gcc/config/vax/vax.md: Likewise.
4011         * gcc/config/vax/vax.opt: Likewise.
4012
4013 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4014
4015         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
4016         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
4017         * gcc/config/vax/constraints.md (B, R): Likewise.
4018         * gcc/config/vax/predicates.md (external_memory_operand,
4019         nonimmediate_addsub_di_operand): Likewise.
4020         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
4021         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
4022         untyped_call): Likewise.
4023
4024 2009-04-01  Matt Thomas <matt@3am-software.com>
4025
4026         * config/vax/predicates.md: New file.
4027         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
4028         external_const_operand, nonsymbolic_operand, external_memory_operand,
4029         indirect_memory_operand, indexed_memory_operand,
4030         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
4031         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
4032         predicate.
4033         * config/vax/constraints.md: New file.
4034         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
4035         New constraint.
4036         * config/vax/builtins.md: New file.
4037         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
4038         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
4039         jbbccisi): Define.
4040         * config/vax/vax.opt (mqmath): Add option.
4041         * config/vax/vax.md (isfx): Extend with DI.
4042         (VAXintQH, VAXintQHSD): Define.
4043         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
4044         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
4045         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
4046         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
4047         (movdi): Update constraints and use vax_output_int_move().
4048         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
4049         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
4050         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
4051         nonlocal_goto): New.
4052         (mov<mode>): Extend accepted operand types.
4053         (subdi3_old): Rename from subdi3, change update constraints and use
4054         a new implementation.
4055         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
4056         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
4057         MOVE_RATIO, CLEAR_RATIO): Define.
4058         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
4059         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
4060         (PRINT_OPERAND): Redefine using a function instead of inlined code.
4061         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
4062         (split_quadword_operands): Make static and really allow variable
4063         splitting.
4064         (print_operand_address): Update for PIC generation.
4065         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
4066         indexable_address_p, fixup_mathdi_operand,
4067         vax_expand_addsub_di_operands, adjacent_operands_p): New.
4068         (vax_float_literal, legitimate_constant_p,
4069         indirectable_constant_address_p, index_term_p,
4070         reg_plus_index_p): Return bool instead of int.
4071         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
4072         where needed.
4073         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
4074         generation.
4075         (vax_output_conditional_branch): Indent.
4076         (legitimate_constant_address_p, indirectable_constant_address_p,
4077         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
4078         vax_mode_dependent_address_p): Return bool instead of int, update for
4079         PIC generation.
4080         * config/vax/vax-protos.h (legitimate_constant_address_p,
4081         legitimate_constant_p, legitimate_address_p,
4082         vax_mode_dependent_address_p): Change declaration to bool.
4083         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
4084         vax_expand_addsub_di_operands, vax_output_int_subtract,
4085         vax_output_movmemsi): Declare.
4086         (split_quadword_operands, vax_float_literal): Delete declaration.
4087         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
4088         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
4089         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
4090         ASM_OUTPUT_DWARF_PCREL): Define.
4091         (ASM_SPEC): Change definition to allow PIC generation.
4092
4093 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
4094
4095         * doc/sourcebuild.texi: Update front-end requirements.
4096
4097 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4098
4099         PR target/39226
4100         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
4101         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
4102         (booldi3_internal3): Use boolean_or_operator instead of
4103         boolean_operator.
4104
4105 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
4106
4107         PR c/39605
4108         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
4109         declarator whose size is not an integer constant expression but
4110         folds to an integer constant, then treat it as a constant
4111         subsequently.
4112
4113 2009-04-01  Richard Guenther  <rguenther@suse.de>
4114
4115         * fold-const.c (fold_plusminus_mult_expr): Do not fold
4116         i * 4 + 2 to (i * 2 + 1) * 2.
4117
4118 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4119
4120         PR c/37772
4121         * c-parser.c (c_parser_asm_statement): Skip until close paren and
4122         return if c_parser_asm_string_literal returned NULL.
4123
4124 2009-04-01  Nick Clifton  <nickc@redhat.com>
4125
4126         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
4127         already defined.
4128         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
4129         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
4130         other typedefs to avoid conflicts with libgcc2.c.  Define labels
4131         to gain 16-bit bit-manipulation functions from libgcc2.c and then
4132         include it.
4133         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
4134         to gain 16-bit trapping arithmetic functions from libgcc2.c and
4135         then include it.
4136
4137 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
4138
4139         * varasm.c (default_function_rodata_section): Declare DOT as
4140         const char*.
4141
4142 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
4143             Andrey Galkin <agalkin@hypercom.com>
4144
4145         PR/39492
4146         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
4147         Make object_name unique for each process.
4148
4149 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4150
4151         PR other/39591
4152         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
4153         addressable variables in the parallel that could go out of scope while
4154         running queued tasks.
4155
4156 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
4157
4158         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
4159         (CASE_VALUES_THRESHOLD): Redefine.
4160         * config/avr/avr.c (avr_override_options): Remove initialization of
4161         avr_case_values_threshold variable.
4162         (avr_case_values_threshold): Remove variable. Add new function.
4163         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
4164         * config/avr/avr.opt (mno-tablejump): Remove option.
4165         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
4166
4167 2009-04-01  DJ Delorie  <dj@redhat.com>
4168
4169         * varasm.c (default_function_rodata_section): Don't assume
4170         anything about where the first '.' in the section name is.
4171
4172 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
4173
4174         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
4175         rs6000_emit_stack_tie.
4176
4177 2009-03-31  Ian Lance Taylor  <iant@google.com>
4178
4179         * tree-eh.c (tree_remove_unreachable_handlers): Compare
4180         gimple_code with GIMPLE_RESX, not RESX.
4181
4182 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4183
4184         * c-common.c (c_get_ident): New.
4185         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
4186
4187 2009-04-01  Ben Elliston  <bje@au.ibm.com>
4188
4189         * config/rs6000/sysv4.opt (msdata): Improve option description.
4190
4191 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
4192
4193         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
4194         (divdf3_internal_lat): Remove.
4195         (divxf3_internal_lat): Remove.
4196         (divxf3_internal_thr): Remove.
4197         (divxf): Use divxf3_internal.
4198         * config/ia64/div.md (divsf3_internal_lat): New.
4199         (divdf3_internal_lat): New.
4200         (divxf3_internal): New.
4201
4202 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4203
4204         PR c/448
4205         * Makefile.in (USE_GCC_STDINT): Define.
4206         (stmp-int-hdrs): Install stdint.h if applicable.
4207         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
4208         if known.
4209         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
4210         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
4211         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
4212         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4213         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4214         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4215         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4216         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4217         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4218         (c_common_nodes_and_builtins): Initialize
4219         underlying_wchar_type_node.  Do not initialize
4220         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
4221         nodes for new types.
4222         (c_stddef_cpp_builtins): Define macros for new types.
4223         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
4224         Remove.
4225         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
4226         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
4227         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
4228         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
4229         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
4230         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
4231         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
4232         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
4233         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
4234         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
4235         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
4236         int16_type_node, int32_type_node, int64_type_node,
4237         uint8_type_node, uint16_type_node, c_uint32_type_node,
4238         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
4239         int_least32_type_node, int_least64_type_node,
4240         uint_least8_type_node, uint_least16_type_node,
4241         uint_least32_type_node, uint_least64_type_node,
4242         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
4243         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
4244         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
4245         uintptr_type_node): Define.
4246         * c-cppbuiltin.c (builtin_define_constants,
4247         builtin_define_type_minmax): New.
4248         (builtin_define_stdint_macros): Define more macros.
4249         (c_cpp_builtins): Define more limit macros.
4250         (type_suffix): New.
4251         (builtin_define_type_max): Define in terms of
4252         builtin_define_type_minmax.  Remove is_long parameter.  All
4253         callers changed.
4254         * config.gcc (use_gcc_stdint): Define.
4255         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
4256         Add newlib-stdint.h for generic targets.
4257         * config/glibc-stdint.h, config/newlib-stdint.h,
4258         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
4259         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
4260         * config/score/score.h (UINTPTR_TYPE): Define.
4261         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4262         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4263         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4264         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4265         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4266         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4267         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4268         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4269         * config/spu/spu.h (STDINT_LONG32): Define.
4270         * configure.ac (use_gcc_stdint): Substitute.
4271         * configure: Regenerate.
4272         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
4273         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
4274         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
4275         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
4276         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
4277         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
4278         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
4279         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
4280         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
4281         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
4282         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
4283         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
4284         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
4285         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
4286         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
4287         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
4288         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
4289         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
4290         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
4291         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
4292         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
4293         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
4294         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
4295         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4296         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4297         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4298         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4299         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4300         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
4301
4302 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
4303
4304         * loop-iv.c (suitable_set_for_replacement): Renamed from
4305         simplify_using_assignment; changed to return bool and to accept new
4306         args DEST and SRC.  Return true iff we find a source/destination pair
4307         that can be used to make a replacement, and fill SRC and DEST if so.
4308         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
4309         changed.
4310         (simplify_using_initial_values): Deal with altered regs here and track
4311         more precisely the effect they have on the validity of our expression.
4312
4313         * loop-iv.c (simplify_using_condition): A condition of the form
4314         (EQ REG CONST) can be used to simply make a substitution.
4315         (simplify_using_initial_values): Keep track of conditions we have seen
4316         and keep using them to simplify new expressions, while applying the
4317         same substitutions to them as to the expression.
4318
4319         * simplify-rtx.c (simplify_relational_operation_1): Simplify
4320         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
4321         GEU/LTU reversed.
4322
4323         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
4324         changed.  Use this when trying to improve the upper bound.
4325         Generate the comparison by using simplify_gen_relational.
4326
4327         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
4328
4329         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
4330         functions.
4331         (simplify_using_assignment, simplify_using_initial_values): Call
4332         replace_in_expr to make replacements.  Call replace_single_def_regs
4333         once on the initial version of the expression.
4334
4335 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4336
4337         PR target/27237
4338         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
4339
4340 2009-03-31  Richard Guenther  <rguenther@suse.de>
4341
4342         PR middle-end/31029
4343         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
4344         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
4345
4346 2009-03-31  Richard Guenther  <rguenther@suse.de>
4347
4348         * tree.h (div_if_zero_remainder): Declare.
4349         * fold-const.c (div_if_zero_remainder): Export.
4350         * tree-ssa-forwprop.c
4351         (forward_propagate_addr_into_variable_array_index): Handle
4352         constant array index addition outside of the variable index.
4353
4354 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4355
4356         PR target/39592
4357         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
4358         define_splits, floatunssi<mode>2): Require x87 conversions from
4359         DImode to be permitted.
4360
4361 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4362
4363         PR preprocessor/15638
4364         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
4365
4366 2009-03-31  Richard Guenther  <rguenther@suse.de>
4367
4368         PR middle-end/23401
4369         PR middle-end/27810
4370         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
4371         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
4372         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
4373         a separate statement.
4374         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
4375         (lookup_tmp_var): Likewise.
4376         (is_gimple_formal_tmp_or_call_rhs): Remove.
4377         (is_gimple_reg_or_call_rhs): Rename to ...
4378         (is_gimple_reg_rhs_or_call): ... this.
4379         (is_gimple_mem_or_call_rhs): Rename to ...
4380         (is_gimple_mem_rhs_or_call): ... this.
4381         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
4382         DECL_GIMPLE_REG_P only if is_formal is true.
4383         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
4384         for non-proper post-modify expression gimplification.
4385         (gimplify_self_mod_expr): For post-modify expressions gimplify
4386         the lvalue to a minimal lvalue.
4387         (rhs_predicate_for): Remove formal temp case.
4388         (gimplify_modify_expr_rhs): Likewise.
4389         (gimplify_addr_expr): Use is_gimple_reg.
4390         (gimplify_expr): Remove formal temp cases.
4391         (gimple_regimplify_operands): Likewise.
4392         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
4393         and FILTER_EXPR like constants.
4394         * gimple.c (walk_gimple_op): Fix val_only initialization, use
4395         is_gimple_reg.
4396         (is_gimple_formal_tmp_rhs): Remove.
4397         (is_gimple_reg_rhs): Remove special casing.
4398         (is_gimple_mem_rhs): Fix.
4399         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
4400         (is_gimple_formal_tmp_var): Remove.
4401         (is_gimple_formal_tmp_reg): Likewise.
4402         (is_gimple_min_lval): Allow invariant component ref parts.
4403         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
4404         is_gimple_formal_tmp_reg): Remove declarations.
4405         * tree-cfg.c (verify_expr): Verify that variables with address
4406         taken do not have DECL_GIMPLE_REG_P set.
4407         * tree-mudflap.c (mf_build_check_statement_for): Use
4408         force_gimple_operand instead of gimplify_expr.
4409
4410 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
4411
4412         * modulo-sched.c (sms_schedule_by_order): Pass the actual
4413         schedulable rows to compute_split_row.
4414
4415 2009-03-31  Ben Elliston  <bje@au.ibm.com>
4416
4417         PR target/31635
4418         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
4419         OPT_mvrsave.
4420
4421 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4422
4423         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
4424         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
4425         * configure: Regenerate.
4426         * config.in: Regenerate.
4427         * config/rs6000/rs6000.opt (mtls-markers): Add.
4428         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
4429         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
4430         (tls_ld_aix, tls_ld_sysv): Likewise.
4431         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
4432         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
4433
4434 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4435
4436         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
4437
4438 2009-03-30  Jan Hubicka  <jh@suse.cz>
4439
4440         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
4441         out of RESX.
4442         (tree_remove_unreachable_handlers): Cleanup EH predecestor
4443         detection and label handling.
4444
4445 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4446
4447         * ira-int.h (ira_allocno): Rename left_conflicts_num to
4448         left_conflicts_size.
4449         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
4450         ALLOCNO_LEFT_CONFLICTS_SIZE.
4451
4452         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
4453         remove_allocno_from_bucket_and_push,
4454         allocno_spill_priority_compare, push_allocnos_to_stack,
4455         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4456         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
4457         (setup_allocno_left_conflicts_num): Ditto.  Rename to
4458         setup_allocno_left_conflicts_size.
4459         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4460         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
4461         setup_allocno_left_conflicts_size instead of
4462         setup_allocno_left_conflicts_num.
4463
4464         * ira-build.c (ira_create_allocno): Use
4465         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
4466         ALLOCNO_LEFT_CONFLICTS_NUM.
4467
4468 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4469
4470         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4471         instead of DF_LR_OUT.
4472
4473         * ira-lives.c (process_bb_node_lives): Ditto.
4474
4475         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4476         instead of DF_LR_{OUT,IN}.
4477
4478         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4479
4480         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4481
4482 2009-03-30  Jan Hubicka  <jh@suse.cz>
4483
4484         * except.c (label_to_region_map): Fix thinko.
4485
4486 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
4487
4488         PR middle-end/38237
4489         * tree.h (tree_find_value): New declaration.
4490         * tree.c (tree_find_value): New function.
4491         * varasm.c (assemble_external): Avoid duplicate entries on lists.
4492
4493 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
4494
4495         PR debug/39563
4496         * c-decl.c (struct c_binding): Add locus field.
4497         (bind): Add locus argument, set locus field from it.
4498         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
4499         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
4500         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
4501         implicitly_declare, undeclared_variable, lookup_label,
4502         declare_label, c_make_fname_decl, c_builtin_function,
4503         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
4504         bind callers.
4505
4506 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4507
4508         PR target/38781
4509         * config/i386/i386.c (classify_argument): Check total size of
4510         structure.
4511
4512 2009-03-30  Martin Jambor  <mjambor@suse.cz>
4513
4514         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
4515         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
4516         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
4517         respectively.
4518
4519         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
4520         seen_variable_array_ref while also traversing a union.
4521
4522         * tree-inline.c (optimize_inline_calls): Do not call
4523         cgraph_node_remove_callees.
4524         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
4525         (pass_remove_cgraph_callee_edges): New variable.
4526         * passes.c (init_optimization_passes): Add
4527         pass_remove_cgraph_callee_edges after early inlining and before all
4528         late intraprocedural passes.
4529
4530         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
4531
4532 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4533
4534         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
4535         Fix typos in names.
4536
4537 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4538
4539         * combine.c (simplify_comparison): Use have_insn_for.
4540         * dojump.c (do_jump): Likewise.
4541
4542 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4543
4544         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
4545         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
4546         sparc_compare_op0 like sparc_compare_emitted used to be handled.
4547         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
4548         instead of sparc_compare_emitted.
4549         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
4550         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
4551         instead of sparc_compare_emitted.
4552
4553 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4554
4555         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
4556         enter/exit cfglayout mode.
4557         (pass_partition_block): Require it.
4558         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
4559         (combine_instructions): Track basic blocks instead of labels.
4560         (update_cfg_for_uncondjump): New.
4561         (try_combine): Use it.  Update jumps after rescanning.
4562         (pass_combine): Require PROP_cfglayout.
4563         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
4564
4565 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4566
4567         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
4568         Provide/destroy PROP_cfglayout respectively.
4569         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
4570         * tree-pass.h (PROP_cfglayout): New.
4571
4572 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4573
4574         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
4575         fold_convert_const_fixed_from_fixed,
4576         fold_convert_const_fixed_from_int,
4577         fold_convert_const_fixed_from_real, fold_negate_const): Do not
4578         set TREE_CONSTANT_OVERFLOW.
4579         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
4580         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
4581
4582 2009-03-30  Ira Rosen  <irar@il.ibm.com>
4583
4584         * tree-vect-loop-manip.c: New file.
4585         * tree-vectorizer.c: Update documentation and included files.
4586         (vect_loop_location): Make extern.
4587         (rename_use_op): Move to tree-vect-loop-manip.c
4588         (rename_variables_in_bb, rename_variables_in_loop,
4589         slpeel_update_phis_for_duplicate_loop,
4590         slpeel_update_phi_nodes_for_guard1,
4591         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
4592         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
4593         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
4594         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
4595         find_loop_location): Likewise.
4596         (new_stmt_vec_info): Move to tree-vect-stmts.c.
4597         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
4598         get_vectype_for_scalar_type, vect_is_simple_use,
4599         supportable_widening_operation, supportable_narrowing_operation):
4600         Likewise.
4601         (bb_in_loop_p): Move to tree-vect-loop.c.
4602         (new_loop_vec_info, destroy_loop_vec_info,
4603         reduction_code_for_scalar_code, report_vect_op,
4604         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
4605         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
4606         (vect_supportable_dr_alignment): Likewise.
4607         * tree-vectorizer.h (tree-data-ref.h): Include.
4608         (vect_loop_location): Declare.
4609         Reorganize function declarations according to the new file structure.
4610         * tree-vect-loop.c: New file.
4611         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
4612         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
4613         * tree-vect-data-refs.c: New file.
4614         * tree-vect-patterns.c (timevar.h): Don't include.
4615         * tree-vect-stmts.c: New file.
4616         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
4617         tree-vect-slp.c, tree-vect-loop.c.
4618         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
4619         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
4620         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
4621         (tree-vect-analyze.o): Remove.
4622         (tree-vect-transform.o): Likewise.
4623         (tree-vect-data-refs.o): Add rule.
4624         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
4625         tree-vect-slp.o): Likewise.
4626         (tree-vect-patterns.o): Remove redundant dependencies.
4627         (tree-vectorizer.o): Likewise.
4628         * tree-vect-slp.c: New file.
4629
4630 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4631
4632         * optc-gen.awk: Warn if an option flag has multiple different
4633         help strings.
4634
4635 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4636
4637         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
4638         -floop-block): Document dependences on PPL, CLooG and Graphite.
4639
4640 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4641
4642         PR rtl-optimization/323
4643         * c-common.c (c_fully_fold, convert_and_check,
4644         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
4645         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
4646         * c-common.def (EXCESS_PRECISION_EXPR): New.
4647         * c-cppbuiltin.c (builtin_define_float_constants): Define
4648         constants with enough digits for long double.
4649         * c-lex.c (interpret_float): Interpret constant with excess
4650         precision where appropriate.
4651         * c-opts.c (c_common_post_options): Set
4652         flag_excess_precision_cmdline.  Give an error for
4653         -fexcess-precision=standard for C++ for processors where the
4654         option is significant.
4655         * c-parser.c (c_parser_conditional_expression): Handle excess
4656         precision in condition.
4657         * c-typeck.c (convert_arguments): Handle arguments with excess
4658         precision.
4659         (build_unary_op): Move excess precision outside operation.
4660         (build_conditional_expr): Likewise.
4661         (build_compound_expr): Likewise.
4662         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
4663         (build_modify_expr): Handle excess precision in RHS.
4664         (convert_for_assignment): Handle excess precision in converted
4665         value.
4666         (digest_init, output_init_element, process_init_element): Handle
4667         excess precision in initializer.
4668         (c_finish_return): Handle excess precision in return value.
4669         (build_binary_op): Handle excess precision in operands and add
4670         excess precision as needed for operation.
4671         * common.opt (-fexcess-precision=): New option.
4672         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
4673         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4674         For standard excess precision, output explicit conversion to and
4675         truncation from XFmode.
4676         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
4677         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
4678         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
4679         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
4680         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
4681         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
4682         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
4683         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
4684         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
4685         define_splits, sqrt<mode>2): Disable where appropriate for
4686         standard excess precision.
4687         * convert.c (convert_to_real): Do not shorten arithmetic to type
4688         for which excess precision would be used.
4689         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
4690         * doc/invoke.texi (-fexcess-precision=): Document option.
4691         (-mfpmath=): Correct index entry.
4692         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
4693         flag_excess_precision): New.
4694         * langhooks.c (lhd_post_options): Set
4695         flag_excess_precision_cmdline.
4696         * opts.c (common_handle_option): Handle -fexcess-precision=.
4697         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
4698         init_excess_precision): New.
4699         (lang_dependent_init_target): Call init_excess_precision.
4700         * tree.c (excess_precision_type): New.
4701         * tree.h (excess_precision_type): Declare.
4702
4703 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4704
4705         PR c/35235
4706         * c-typeck.c (build_component_ref): Do not copy qualifiers from
4707         non-lvalue to component.
4708
4709 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
4710
4711         PR preprocessor/34695
4712         * Makefile.in (c-opts.o): Depend on c-tree.h.
4713         * c-common.c: Move down include of diagnostic.h.
4714         (done_lexing, c_cpp_error): New.
4715         * c-common.h (done_lexing): Declare.
4716         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
4717         (parse_in).
4718         * c-opts.c: Include c-tree.h.
4719         (c_common_init_options): Set preprocessor error callback.
4720         (c_common_handle_option): Do not set preprocessor
4721         inhibit_warnings, warnings_are_errors, warn_system_headers,
4722         pedantic_errors or inhibit_warnings flags.
4723         (c_common_post_options): Do not check cpp_errors (parse_in).
4724         (c_common_finish): Do not output dependencies if there were
4725         errors.  Do not check return value of cpp_finish.
4726         * c-ppoutput.c (pp_file_change): Set input_location.
4727         * c-tree.h (c_cpp_error): Declare.
4728         * diagnostic.c (diagnostic_set_info_translated): Also initialize
4729         override_column.
4730         (diagnostic_build_prefix): Check override_column.
4731         * diagnostic.h (diagnostic_info): Add override_column field.
4732         (diagnostic_override_column): Define.
4733
4734 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
4735
4736         * c-common.c (c_expand_expr, c_staticp): Remove.
4737         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
4738         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
4739         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
4740         * c-gimplify.c (gimplify_compound_literal_expr,
4741         optimize_compound_literals_in_ctor): Remove.
4742         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
4743         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
4744         * c-semantics.c (emit_local_var): Remove.
4745
4746         * langhooks-def.h (lhd_expand_expr): Remove.
4747         * langhooks.c (lhd_expand_expr): Remove.
4748         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
4749
4750         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
4751         handling from c-semantics.c; don't call into langhook.
4752         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
4753         * gimplify.c (gimplify_compound_literal_expr,
4754         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
4755         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
4756         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
4757         as was done in c-gimplify.c.
4758         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
4759         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
4760         Move from c-common.h.
4761         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
4762
4763         * tree.c (staticp): Do not call langhook.
4764         * langhooks.c (lhd_staticp): Delete.
4765         * langhooks-def.h (lhd_staticp): Delete prototype.
4766         (LANG_HOOKS_STATICP): Delete.
4767         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
4768
4769         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
4770         instead of DECL_STMTs.
4771
4772 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
4773
4774         PR c/456
4775         PR c/5675
4776         PR c/19976
4777         PR c/29116
4778         PR c/31871
4779         PR c/35198
4780         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
4781         void_type_node.
4782         (fold_call_expr): Return a NOP_EXPR from folding rather than the
4783         contained expression.
4784         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
4785         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
4786         conditional expressions for C.
4787         (decl_constant_value_for_optimization): Move from
4788         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
4789         whether optimizing and that the expression is a VAR_DECL not of
4790         array type instead of doing such checks in the caller.  Do not
4791         check pedantic.  Call gcc_unreachable for C++.
4792         * c-common.def (C_MAYBE_CONST_EXPR): New.
4793         * c-common.h (c_fully_fold, c_save_expr,
4794         decl_constant_value_for_optimization): New prototypes.
4795         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4796         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4797         EXPR_INT_CONST_OPERANDS): Define.
4798         * c-convert.c (convert): Strip nops from expression.
4799         * c-decl.c (groktypename): Take extra parameters expr and
4800         expr_const_operands.  Update call to grokdeclarator.
4801         (start_decl): Update call to grokdeclarator.  Add statement for
4802         expressions used in type of decl.
4803         (grokparm): Update call to grokdeclarator.
4804         (push_parm_decl): Update call to grokdeclarator.
4805         (build_compound_literal): Add parameter non_const and build a
4806         C_MAYBE_COSNT_EXPR if applicable.
4807         (grokdeclarator): Take extra parameters expr and
4808         expr_const_operands.  Track expressions used in declaration
4809         specifiers and declarators.  Fold array sizes and track whether
4810         they are constant expressions and whether they are integer
4811         constant expressions.
4812         (parser_xref_tag): Set expr and expr_const_operands fields in
4813         return value.
4814         (grokfield): Update call to grokdeclarator.
4815         (start_function): Update call to grokdeclarator.
4816         (build_null_declspecs): Set expr and expr_const_operands fields in
4817         return value.
4818         (declspecs_add_type): Handle expressions in typeof specifiers.
4819         * c-parser.c (c_parser_declspecs): Set expr and
4820         expr_const_operands fields for declaration specifiers.
4821         (c_parser_enum_specifier): Likewise.
4822         (c_parser_struct_or_union_specifier): Likewise.
4823         (c_parser_typeof_specifier): Likewise.  Update call to
4824         groktypename.  Fold expression as needed.  Return expressions with
4825         type instead of adding statements.
4826         (c_parser_attributes): Update calls to c_parser_expr_list.
4827         (c_parser_statement_after_labels): Fold expression before passing
4828         to objc_build_throw_stmt.
4829         (c_parser_condition): Fold expression.
4830         (c_parser_asm_operands): Fold expression.
4831         (c_parser_conditional_expression): Use c_save_expr.  Update call
4832         to build_conditional_expr.
4833         (c_parser_alignof_expression): Update call to groktypename.
4834         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
4835         original_code.  Fold expression argument of va_arg.  Create
4836         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
4837         argument to va_arg.  Update calls to groktypename.  Fold array
4838         index for offsetof.  Verify that first argument to
4839         __builtin_choose_expr has integer type.
4840         (c_parser_postfix_expression_after_paren_type): Update calls to
4841         groktypename and build_compound_literal.  Handle expressions with
4842         side effects in type name.
4843         (c_parser_postfix_expression_after_primary): Update call to
4844         c_parser_expr_list.  Set original_code for calls to
4845         __builtin_constant_p.
4846         (c_parser_expr_list): Take extra parameter fold_p.  Fold
4847         expressions if requested.
4848         (c_parser_objc_type_name): Update call to groktypename.
4849         (c_parser_objc_synchronized_statement): Fold expression.
4850         (c_parser_objc_receiver): Fold expression.
4851         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
4852         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
4853         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
4854         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
4855         (struct c_typespec): Add elements expr and expr_const_operands.
4856         (struct c_declspecs): Add elements expr and expr_const_operands.
4857         (groktypename, build_conditional_expr, build_compound_literal):
4858         Update prototypes.
4859         (in_late_binary_op): Declare.
4860         * c-typeck.c (note_integer_operands): New function.
4861         (in_late_binary_op): New variable.
4862         (decl_constant_value_for_broken_optimization): Move to c-common.c
4863         and rename to decl_constant_value_for_optimization.
4864         (default_function_array_conversion): Do not strip nops.
4865         (default_conversion): Do not call
4866         decl_constant_value_for_broken_optimization.
4867         (build_array_ref): Do not fold result.
4868         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
4869         result when operand is a VLA.
4870         (c_expr_sizeof_type): Update call to groktypename.  Handle
4871         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
4872         result when operand names a VLA type.
4873         (build_function_call): Update call to build_compound_literal.
4874         Only fold result for calls to __builtin_* functions.  Strip
4875         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
4876         the function designator.
4877         (convert_arguments): Fold arguments.  Update call to
4878         convert_for_assignment.
4879         (build_unary_op): Handle increment and decrement of
4880         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
4881         decrement earlier.  Fold operand of increment and decrement.
4882         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
4883         built for integer operand.  Wrap returns that are INTEGER_CSTs
4884         without being integer constant expressions or that have integer
4885         constant operands without being INTEGER_CSTs.
4886         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
4887         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
4888         result is an integer constant expression or can be used in
4889         unevaluated parts of one and avoid folding and wrap as
4890         appropriate.  Fold operands before possibly doing -Wsign-compare
4891         warnings.
4892         (build_compound_expr): Wrap result for C99 if operands can be used
4893         in integer constant expressions.
4894         (build_c_cast): Update call to digest_init.  Do not ignore
4895         overflow from casting floating-point constants to integers.  Wrap
4896         results that could be confused with integer constant expressions,
4897         null pointer constants or floating-point constants.
4898         (c_cast_expr): Update call to groktypename.  Handle expressions
4899         included in type name.
4900         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
4901         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
4902         Update calls to convert_for_assignment.
4903         (convert_for_assignment): Take new parameter
4904         null_pointer_constant.  Do not strip nops or call
4905         decl_constant_value_for_broken_optimization.  Set
4906         in_late_binary_op for conversions to boolean.
4907         (store_init_value): Update call to digest_init.
4908         (digest_init): Take new parameter null_pointer_constant.  Do not
4909         call decl_constant_value_for_broken_optimization.  pedwarn for
4910         initializers not constant expressions.  Update calls to
4911         convert_for_assignment.
4912         (constructor_nonconst): New.
4913         (struct constructor_stack): Add nonconst element.
4914         (really_start_incremental_init, push_init_level, pop_init_level):
4915         Handle constructor_nonconst and nonconst element.
4916         (set_init_index): Call constant_expression_warning for array
4917         designators.
4918         (output_init_element): Fold value.  Set constructor_nonconst as
4919         applicable.  pedwarn for initializers not constant expressions.
4920         Update call to digest_init.  Call constant_expression_warning
4921         where constant initializers are required.
4922         (process_init_element): Use c_save_expr.
4923         (c_finish_goto_ptr): Fold expression.
4924         (c_finish_return): Fold return value.  Update call to
4925         convert_for_assignment.
4926         (c_start_case): Fold switch expression.
4927         (c_process_expr_stmt): Fold expression.
4928         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
4929         ensure statement expression is not evaluated in constant expression.
4930         (build_binary_op): Track whether results are integer constant
4931         expressions or may occur in such, disable folding and wrap results
4932         as applicable.  Fold operands for -Wsign-compare warnings unless
4933         in_late_binary_op.
4934         (c_objc_common_truthvalue_conversion): Handle results folded to
4935         integer constants that are not integer constant expressions.
4936         * doc/extend.texi: Document when typeof operands are evaluated,
4937         that condition of __builtin_choose_expr is an integer constant
4938         expression, and more about use of __builtin_constant_p in
4939         initializers.
4940
4941 2009-03-29  Richard Guenther  <rguenther@suse.de>
4942
4943         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
4944         propagate addresses of array references.
4945
4946 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
4947
4948         * regmove.c (perhaps_ends_bb_p): Remove.
4949         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
4950         from INSN and check that the main loop stays within that basic block.
4951         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
4952         (regmove_forward_pass): Split out from regmove_optimize.  Use
4953         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
4954         (regmove_backward_pass): Split out from regmove_optimize.  Use
4955         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
4956         (regmove_optimize): Simplify.
4957
4958 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4959
4960         PR target/39545
4961         * config/i386/i386.c (classify_argument): Ignore flexible array
4962         member in struct and warn ABI change.
4963
4964 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4965
4966         * config/i386/i386-protos.h (ix86_agi_dependent): New.
4967
4968         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
4969         (ix86_adjust_cost): Updated.
4970
4971 2009-03-29  Jan Hubicka  <jh@suse.cz>
4972
4973         PR middle-end/28850
4974         * tree-pass.h (pass_cleanup_eh): New function.
4975         (remove_unreachable_regions): Break code handling RTL
4976         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
4977         that can not be reached by runtime.
4978         (can_be_reached_by_runtime): New function.
4979         (label_to_region_map): New function.
4980         (num_eh_regions): New function.
4981         (rtl_remove_unreachable_regions): New function.
4982         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
4983         (remove_eh_region): New function.
4984         * except.h: Include sbitmap and vecprim.
4985         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
4986         num_eh_regions): Declare.
4987         * passes.c (init_optimization_passes): Schedule cleanup_eh.
4988         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4989         * tree-eh.c (tree_remove_unreachable_handlers): New function.
4990         (tree_empty_eh_handler_p): New function.
4991         (cleanup_empty_eh): New function.
4992         (cleanup_eh): New function.
4993         (pass_cleanup_eh): New function.
4994
4995 2009-03-29  Jan Hubicka  <jh@suse.cz>
4996
4997         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
4998         for removed regions.
4999
5000 2009-03-29  Jan Hubicka  <jh@suse.cz>
5001
5002         * except.c (dump_eh_tree): Dump all datastructures.
5003
5004 2009-03-29  Jan Hubicka  <jh@suse.cz>
5005
5006         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
5007         (duplicate_eh_regions_1): Likewise.
5008         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
5009         vector; call EH verification.
5010         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
5011         Be ready for region being removed.
5012
5013 2009-03-29  Jan Hubicka  <jh@suse.cz>
5014
5015         * bitmap.c (bitmap_last_set_bit): New function.
5016         * bitmap.h (bitmap_last_set_bit): Declare.
5017
5018 2009-03-29  David Ayers  <ayers@fsfe.org>
5019
5020         PR objc/27377
5021         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
5022         by calling objc_compare_types and surpress warnings about
5023         incompatible C pointers that are compatible ObjC pointers.
5024
5025 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
5026
5027         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
5028         call initialize_inline_failed.
5029         (initialize_inline_failed): Move it from here ...
5030         * cgraph.c (initialize_inline_failed): ... to here.
5031         (cgraph_create_edge): Call initialize_inline_failed rather than
5032         setting inline_failed directly.
5033
5034 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5035
5036         PR target/32542
5037         * sysv4.opt (msdata): Improve comment.
5038         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
5039         * sysv4.h (SVR4_ASM_SPEC): Likewise.
5040
5041 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5042
5043         PR target/30451
5044         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
5045         load and store attributes.
5046
5047 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5048
5049         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
5050         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
5051         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
5052         * doc/extend.texi (X86 Built-in Functions): Add index entries for
5053         __builtin_infq and __builtin_huge_valq.
5054
5055 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
5056
5057         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
5058         atmega8m1 devices.
5059         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5060         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
5061
5062 2009-03-28  Xinliang David Li  <davidxl@google.com>
5063
5064         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
5065         (do_dbg_cnt): New function.
5066
5067 2009-03-28  Jan Hubicka  <jh@suse.cz>
5068
5069         Merge from pretty-ipa:
5070
5071         2009-03-27  Jan Hubicka  <jh@suse.cz>
5072
5073         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
5074         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
5075         * passes.c (function_called_by_processed_nodes_p): New.
5076         * ipa-pure-const.c (check_call): Fix handling of operands.
5077         (analyze_function): Dump debug output for skipped bodies.
5078         (local_pure_const): Use function_called_by_processed_nodes_p.
5079         * dwarf2out.c (reference_to_unused): Use output.
5080         * passes.c (do_per_function_toporder): Likewise.
5081
5082         2008-11-12  Jan Hubicka  <jh@suse.cz>
5083
5084         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
5085         * ipa-pure-const.c (funct_state_d): Add can throw field; make
5086         state_set_in_source enum
5087         (check_decl): Ignore memory tags; do not set fake looping flags;
5088         dump diagnostics.
5089         (check_operand, check_tree, check_rhs_var, check_lhs_var,
5090         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
5091         (check_call, analyze_function): Rewrite.
5092         (check_stmt): New.
5093         (add_new_function): Update call of analyze_function.
5094         (generate_summary): Add call of analyze_function.
5095         (propagate): Propagate can_throw; handle state_set_in_source correctly.
5096         (local_pure_const): New function.
5097         (pass_local_pure_const): New pass.
5098         * ipa-inline.c (inline_transform): Set after_inlining.
5099         * tree-eh.c (stmt_can_throw_external): New.
5100         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
5101         work with aliasing built.
5102         * tree-flow.h (stmt_can_throw_external): New.
5103         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
5104         and local pure/const pass in early and late optimization queue.
5105
5106 2009-03-28  Martin Jambor  <mjambor@suse.cz>
5107
5108         * fold-const.c (get_pointer_modulus_and_residue): New parameter
5109         allow_func_align.
5110         (fold_binary): Allow function decl aligment consideration is the
5111         second argument is integer constant one.
5112         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
5113         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
5114         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
5115
5116 2009-03-28  Jan Hubicka  <jh@suse.cz>
5117
5118         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
5119         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
5120         * function.h (rtl_data): Add nothrow flag.
5121         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
5122         set DECL_NOTHROW for AVAILABLE functions.
5123
5124 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
5125
5126         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
5127         following vector keyword has expansion starting with pixel or bool
5128         keyword, expand vector to __vector and pixel or bool to __pixel or
5129         __bool.
5130
5131         PR c++/39554
5132         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
5133         warn_if_disallowed_function_p): Removed.
5134         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
5135         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
5136         warning_if_disallowed_function_p.
5137         * flags.h (warn_if_disallowed_function_p,
5138         warn_disallowed_functions): Removed.
5139         * common.opt (Wdisallowed-function-list=): Removed.
5140         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
5141
5142 2009-03-28  Richard Guenther  <rguenther@suse.de>
5143
5144         PR tree-optimization/38723
5145         * tree-ssa-pre.c (compute_avail): Add all default definitions to
5146         the entry block.
5147
5148 2009-03-28  Jan Hubicka  <jh@suse.cz>
5149
5150         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
5151         test introduced by my previous patch.
5152
5153 2009-03-28  Richard Guenther  <rguenther@suse.de>
5154
5155         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
5156         the PHIs value undefined.
5157
5158 2009-03-28  Jan Hubicka  <jh@suse.cz>
5159
5160         * tree-pass.h (pass_fixup_cfg): New pass.
5161         * ipa-inline.c (inline_transform): Set
5162         always_inline_functions_inlined/after_inlining.
5163         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
5164         (pass_fixup_cfg): New pass.
5165         * passes.c (init_optimization_passes): Add fixup_cfg.
5166
5167 2009-03-28  Richard Guenther  <rguenther@suse.de>
5168
5169         PR tree-optimization/38458
5170         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
5171         argument use the arguments copy-of value.
5172
5173 2009-03-28  Richard Guenther  <rguenther@suse.de>
5174
5175         PR tree-optimization/38180
5176         * tree-ssa-ccp.c (get_default_value): Simplify.
5177         (likely_value): Likewise.
5178         (surely_varying_stmt_p): Properly handle VOP case.
5179         (ccp_initialize): Likewise.
5180         (ccp_fold): Handle propagating through *&.
5181         (fold_const_aggregate_ref): Also handle decls.
5182
5183 2009-03-28  Jan Hubicka  <jh@suse.cz>
5184
5185         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
5186         * cgraph.h (cgraph_node): Likewise.
5187         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
5188         (cgraph_reset_node): Use process flag.
5189         (cgraph_mark_functions_to_output): Likewise.
5190         (cgraph_expand_function): Likewise.
5191         (cgraph_expand_all_functions): Likewise.
5192         (cgraph_output_in_order): Likewise.
5193         * dwarf2out.c (reference_to_unused): Likewise.
5194         * passes.c do_per_function_toporder): Likewise.
5195
5196 2009-03-28  Jan Hubicka  <jh@suse.cz>
5197
5198         Bring from lto-branch:
5199
5200         2008-09-03  Doug Kwan  <dougkwan@google.com>
5201
5202         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
5203         enums instead of reason strings.
5204         * cgraph.c (cgraph_create_edge): Same.
5205         (cgraph_inline_failed_string): New function.
5206         * cgraph.h (cgraph_inline_failed_t): New enum type.
5207         (cgraph_inline_failed_string): New prototype.
5208         (struct cgraph_edge): Change type of INLINED_FAILED from constant
5209         char pointer to cgraph_inline_failed_t.
5210         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
5211         (cgraph_default_inline_p): Ditto.
5212         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
5213         to cgraph_inline_failed_t pointer.
5214         * cif-code.def: New file.
5215         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
5216         reason string.
5217         (cgraph_check_inline_limits): Change type of REASON to pointer to
5218         cgraph_inline_failed_t.  Replace reason strings with enums.
5219         (cgraph_default_inline_p): Ditto.
5220         (cgraph_recursive_inlining_p): Ditto.
5221         (update_caller_keys): Change type of FAILED_REASON to
5222         cgraph_inline_failed_t.
5223         (cgraph_set_inline_failed): Change type of REASON to pointer to
5224         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
5225         convert enums to strings for text output.
5226         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
5227         to be of type cgraph_inline_failed_t.  Replace reason strings with
5228         enums.  Call cgraph_inline_failed_string to covert enums
5229         to strings for text output.
5230         (cgraph_decide_inlining): Replace reason strings with enums.
5231         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
5232         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
5233         for text output.
5234         * tree-inline.c (expand_call_inline): Change type of REASON
5235         to cgraph_inline_failed_t.  Replace reason strings with enums.
5236         Call cgraph_inline_failed_string for text output.
5237         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
5238         (cgraph.o): Ditto.
5239
5240 2009-03-28  Jan Hubicka  <jh@suse.cz>
5241
5242         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
5243         cgraph_clone_node): Remove master clone handling.
5244         (cgraph_is_master_clone, cgraph_master_clone): Remove.
5245         * cgraph.h (master_clone): Remove.
5246         (cgraph_is_master_clone, cgraph_master_clone): Remove.
5247         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
5248         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
5249
5250 2009-03-28  Jan Hubicka  <jh@suse.cz>
5251
5252         * cgraph.c (cgraph_function_body_availability): Functions declared
5253         inline are always safe to assume that it is not going to be replaced.
5254
5255 2009-03-28  Richard Guenther  <rguenther@suse.de>
5256
5257         PR tree-optimization/38513
5258         * tree-ssa-pre.c (eliminate): Remove redundant stores.
5259         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5260         EXC_PTR_EXPR and FILTER_EXPR.
5261         (get_ref_from_reference_ops): Likewise.
5262
5263 2009-03-28  Richard Guenther  <rguenther@suse.de>
5264
5265         PR tree-optimization/38968
5266         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
5267         Use FLOOR_MOD_EXPR to compute misalignment.
5268
5269 2009-03-28  Richard Guenther  <rguenther@suse.de>
5270
5271         PR tree-optimization/37795
5272         * tree.h (combine_comparisons): Declare.
5273         * fold-const.c (combine_comparisons): Export.
5274         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
5275         comparisons.
5276         (ifcombine_iforif): Use combine_comparisons.
5277
5278 2009-03-28  Jan Hubicka  <jh@suse.cz>
5279
5280         * tree-eh.c (inlinable_call_p): New function.
5281         (make_eh_edges): Use it.
5282         (verify_eh_edges): Use it.
5283         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
5284         * except.c (reachable_next_level): Add inlinable_function argument
5285         (sjlj_find_directly_reachable_regions): Update.
5286         (add_reachable_handler): Do not set saw_any_handlers.
5287         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
5288         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
5289         Add new inlinable call parameter.
5290         (can_throw_internal, can_throw_external): Update.
5291         * except.h (can_throw_internal_1, can_throw_external_1,
5292         foreach_reachable_handler): Update declaration.
5293
5294 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
5295
5296         * config/arm/t-arm-coff, config/h8300/coff.h,
5297         config/i386/i386-aout.h, config/i386/i386-coff.h,
5298         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
5299         config/pdp11/2bsd.h, config/rs6000/aix41.h,
5300         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
5301         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
5302         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
5303         sys-types.h: Remove.
5304         * Makefile.in: Remove protoize and fixproto support and references
5305         in comments.
5306         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
5307         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
5308         Remove.
5309         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
5310         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
5311         unprotoize$(exeext).
5312         (rest.encap): Don't depend on $(STMP_FIXPROTO)
5313         (.PHONY): Don't depend on proto.
5314         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
5315         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
5316         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
5317         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
5318         build/gen-protos.o, build/scan.o, xsys-protos.h,
5319         build/fix-header$(build_exeext), build/fix-header.o,
5320         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
5321         stmp-install-fixproto): Remove.
5322         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
5323         SYSCALLS.c or fixproto files.
5324         (install-common): Don't install protoize.
5325         (install-headers-tar, install-headers-cpio, install-headers-cp):
5326         Don't depend on $(STMP_FIXPROTO).
5327         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
5328         install fixproto files or write out fixproto settings.
5329         (uninstall): Don't uninstall protoize.
5330         * config.gcc (use_fixproto): Remove.
5331         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
5332         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
5333         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
5334         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
5335         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
5336         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
5337         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
5338         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
5339         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
5340         * config/t-vxworks (STMP_FIXPROTO): Remove.
5341         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
5342         STMP_FIXPROTO): Remove.
5343         * config.in, configure: Regenerate.
5344         * crtstuff.c (gid_t, uid_t): Don't undefine.
5345         * doc/install.texi: Change m68k-coff to m68k-elf in example.
5346         (arm-*-coff, arm-*-aout: Remove target entries.
5347         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
5348         Remove mention of AIX 4.1.
5349         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
5350         * doc/invoke.texi (Running Protoize): Remove.
5351         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
5352         (Protoize Caveats): Remove.
5353         * tsystem.h: Update comments on headers assumed to exist.
5354
5355 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5356
5357         * genautomata.c: Add a new year to the copyright.  Add a new
5358         reference.
5359         (struct insn_reserv_decl): Add comments for member bypass_list.
5360         (find_bypass): Remove.
5361         (insert_bypass): New.
5362         (process_decls): Use insert_bypass.
5363         (output_internal_insn_latency_func): Output all bypasses with the
5364         same input insn in one switch case.
5365
5366         * rtl.def (define_bypass): Describe bypass choice.
5367         * doc/md.texi (define_bypass): Ditto.
5368
5369 2009-03-27  Richard Guenther  <rguenther@suse.de>
5370
5371         * gimplify.c (mark_addressable): Export.
5372         * tree-flow.h (mark_addressable): Declare.
5373         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
5374         * tree-ssa.c (verify_phi_args): Verify that address taken
5375         variables have TREE_ADDRESSABLE set.
5376
5377 2009-03-27  Richard Guenther  <rguenther@suse.de>
5378
5379         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
5380         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
5381         Do not mark decls TREE_ADDRESSABLE.
5382         (build_fold_addr_expr): Adjust.
5383         (fold_addr_expr): Remove.
5384         (fold_unary): Use build_fold_addr_expr.
5385         (fold_comparison): Likewise.
5386         (split_address_to_core_and_offset): Likewise.
5387         * coverage.c (tree_coverage_counter_addr): Mark the array decl
5388         TREE_ADDRESSABLE.
5389         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
5390         (gimplify_modify_expr_to_memcpy): Mark source and destination
5391         addressable.
5392         * omp-low.c (create_omp_child_function): Mark the object decl
5393         TREE_ADDRESSABLE.
5394         (lower_rec_input_clauses): Mark the var we take the address of
5395         TREE_ADDRESSABLE.
5396         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
5397
5398 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5399
5400         PR middle-end/39315
5401         * cfgexpand.c (expand_one_stack_var_at): Change alignment
5402         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
5403
5404 2009-03-27  Richard Guenther  <rguenther@suse.de>
5405
5406         PR tree-optimization/39120
5407         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
5408         constraints.
5409         (handle_lhs_call): Process return constraints.  Add escape
5410         constraints if necessary.
5411         (handle_const_call): Fill out return constraints.  Make nested
5412         case more precise.  Avoid consttmp if possible.
5413         (handle_pure_call): Fill out return constraints.  Avoid
5414         callused if possible.
5415         (find_func_aliases): Simplify call handling.
5416
5417 2009-03-27  Richard Guenther  <rguenther@suse.de>
5418
5419         PR tree-optimization/39120
5420         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
5421         as a representative.
5422         (solve_graph): Do propagate CALLUSED.
5423         (handle_pure_call): Use a scalar constraint from CALLUSED for
5424         the return value.
5425         (find_what_p_points_to): CALLUSED shall not appear in poins-to
5426         solutions.
5427
5428 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5429
5430         PR c/39323
5431         * c-common.c (handle_aligned_attribute): Properly check alignment
5432         overflow.  Use (1U << i) instead of (1 << i).
5433
5434         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
5435
5436         * expr.h (get_mem_align_offset): Updated.
5437
5438         * tree.h (tree_decl_common): Change align to "unsigned int" and
5439         move it before pointer_alias_set.
5440
5441 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5442             Jakub Jelinek  <jakub@redhat.com>
5443
5444         PR target/38034
5445         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
5446         gr_register_operand with gr_reg_or_0_operand.
5447         (cmpxchg_rel_di): Likewise.
5448         (sync_lock_test_and_set<mode>): Likewise.
5449
5450 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5451
5452         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
5453         (true_regnum): Likewise.
5454
5455         * rtlanal.c (subreg_info): Moved to ...
5456         * rtl.h (subreg_info): Here.  New.
5457         (subreg_get_info): New.
5458
5459         * rtlanal.c (subreg_get_info): Make it extern.
5460
5461 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5462
5463         PR target/39472
5464         * config/i386/i386.c (ix86_abi): New.
5465         (override_options): Handle -mabi=.
5466         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
5467         (ix86_call_abi_override): Likewise.
5468         (init_cumulative_args): Likewise.
5469         (function_arg_advance): Likewise.
5470         (function_arg_64): Likewise.
5471         (function_arg): Likewise.
5472         (ix86_pass_by_reference): Likewise.
5473         (ix86_function_value_regno_p): Likewise.
5474         (ix86_build_builtin_va_list_abi): Likewise.
5475         (setup_incoming_varargs_64): Likewise.
5476         (is_va_list_char_pointer): Likewise.
5477         (ix86_init_machine_status): Likewise.
5478         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
5479         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
5480         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
5481         (ix86_function_abi): Make it static and return enum calling_abi.
5482         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
5483         with ix86_abi.
5484         (ix86_fn_abi_va_list): Updated.
5485
5486         * config/i386/i386.h (ix86_abi): New.
5487         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
5488         (CONDITIONAL_REGISTER_USAGE): Likewise.
5489         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
5490         (machine_function): Likewise.
5491
5492         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
5493         with ix86_abi.
5494         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
5495         (STACK_BOUNDARY): Likewise.
5496         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
5497
5498         * config/i386/i386.opt (mabi=): New.
5499
5500         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
5501         return enum calling_abi.
5502         (ix86_function_type_abi): Likewise.
5503         (ix86_function_abi): Removed.
5504
5505         * doc/invoke.texi: Document -mabi= option for x86.
5506
5507 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5508
5509         * builtins.c (real_dconstp): Delete.
5510         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
5511
5512 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
5513             Jakub Jelinek  <jakub@redhat.com>
5514
5515         PR debug/37959
5516         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
5517         (gen_subprogram_die): When a function is explicit, generate the
5518         DW_AT_explicit attribute.
5519         * langhooks.h (struct lang_hooks_for_decls): Add
5520         function_decl_explicit_p langhook.
5521         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
5522         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
5523
5524 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
5525
5526         * builtins.c (fold_builtin_memory_op): Optimize memmove
5527         into memcpy if we can prove source and destination don't overlap.
5528
5529         * tree-inline.c: Include gt-tree-inline.h.
5530         (clone_fn_id_num): New variable.
5531         (clone_function_name): New function.
5532         (tree_function_versioning): Use it.
5533         * Makefile.in (GTFILES): Add tree-inline.c.
5534
5535 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
5536
5537         * BASE-VER: Change to 4.5.0.
5538
5539 2009-03-27  Xinliang David Li  <davidxl@google.com>
5540
5541         PR tree-optimization/39557
5542         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
5543
5544 2009-03-27  Xinliang David Li  <davidxl@google.com>
5545
5546         PR tree-optimization/39548
5547         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
5548         candidate check.
5549
5550 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5551
5552         * c-common.c (pointer_int_sum): Use %wd on return from
5553         tree_low_cst.
5554
5555 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5556
5557         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
5558         on return from tree_low_cst.
5559
5560 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5561
5562         PR c++/36799
5563         * ginclude/stdarg.h (va_copy): Define also for
5564         __GXX_EXPERIMENTAL_CXX0X__.
5565
5566 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5567
5568         PR c++/35652
5569         * builtins.h (c_strlen): Do not warn here.
5570         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5571         * c-common.c (pointer_int_sum): Take an explicit location.
5572         Warn about offsets out of bounds.
5573         * c-common.h (pointer_int_sum): Adjust declaration.
5574
5575 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5576
5577         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
5578         markup glitch.
5579
5580 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
5581
5582         PR c++/39554
5583         * opts.c (warn_if_disallowed_function_p): Don't assume
5584         get_callee_fndecl must return non-NULL.
5585
5586 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
5587
5588         PR rtl-optimization/39522
5589         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
5590         when reg_reloaded_valid is set.
5591
5592 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5593
5594         * config/spu/divv2df3.c: New file.
5595         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
5596         (DPBIT_FUNCS): Filter out _div_df.
5597
5598 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
5599
5600         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
5601         a jump insn, count that jump in the distance to the loop start.
5602
5603 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
5604
5605         PR target/39523
5606         * config/sh/sh.c (calc_live_regs): Fix condition for global
5607         registers except PIC_OFFSET_TABLE_REGNUM.
5608
5609 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
5610
5611         PR/39518
5612         * doc/invoke.texi (-mconsole): New.
5613         (-mcygwin): New.
5614         (-mno-cygwin): New.
5615         (-mdll): New.
5616         (-mnop-fun-dllimport): New.
5617         (-mthread): New.
5618         (-mwin32): New.
5619         (-mwindows): New.
5620         (sub section "i386 and x86-64 Windows Options"): New.
5621
5622 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
5623
5624         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
5625         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
5626
5627 2009-03-25  Richard Guenther  <rguenther@suse.de>
5628
5629         PR middle-end/39497
5630         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
5631         of -Wno-error.
5632
5633 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
5634
5635         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
5636         neither of haifa/selective schedulers are working.
5637
5638 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5639
5640         * doc/invoke.texi (Debugging Options): Fix description of
5641         -fno-merge-debug-strings.
5642
5643 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
5644
5645         * config/cris/libgcc.ver: New version-script.
5646         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
5647
5648         * configure.ac <GAS features, nop mnemonic>: Add pattern
5649         crisv32-*-* for "nop".
5650         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
5651         * configure: Regenerate.
5652
5653 2009-03-24  Ira Rosen  <irar@il.ibm.com>
5654
5655         PR tree-optimization/39529
5656         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
5657         mark_sym_for_renaming for the tag copied to the new vector
5658         pointer.
5659
5660 2009-03-24  Arthur Loiret  <aloiret@debian.org>
5661
5662         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
5663         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
5664         EXTRA_SPEC_FUNCTIONS.
5665         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
5666         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
5667         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
5668         -march and -mtune options.
5669
5670 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
5671
5672         * config/m68k/t-rtems: Add m5329 multilib.
5673
5674 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
5675             Jakub Jelinek  <jakub@redhat.com>
5676
5677         PR debug/39524
5678         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
5679         nodes.
5680
5681 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
5682
5683         PR c/39495
5684         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
5685         instead of c_parser_expression_conv, if original_code isn't one of the
5686         4 allowed comparison codes, fail.
5687
5688 2009-03-23  Richard Guenther  <rguenther@suse.de>
5689
5690         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
5691         * tree.h (struct tree_type): Likewise.
5692         * reload.h (struct insn_chain): Likewise.
5693         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
5694         * function.h (struct function): Likewise.
5695         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
5696
5697 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
5698
5699         PR tree-optimization/39516
5700         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
5701
5702 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
5703
5704         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
5705         should be set true if BITS_PER_WORD of target is bigger than 32
5706
5707 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
5708
5709         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
5710         Translate -B-options to -rpath-link.  Correct existing
5711         rpath-link and conditionalize on !nostdlib.
5712
5713 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5714
5715         * doc/extend.texi (Function Attributes, Variable Attributes):
5716         Fix typos.
5717         * doc/invoke.texi (Debugging Options, Optimize Options)
5718         (i386 and x86-64 Options, MCore Options): Likewise.
5719
5720 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
5721
5722         PR debug/37890
5723         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
5724         it for block local namespace aliases.
5725         (gen_decl_die): Pass context_die to gen_namespace_die.
5726
5727 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
5728
5729         PR c/39495
5730         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
5731         minimum or maximum value.
5732
5733 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
5734
5735         * reginfo.c (globalize_reg): Recompute derived reg sets.
5736
5737 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
5738
5739         PR target/39063
5740         * libgcc2.c (mprotect): Do not use signed arguments for
5741         VirtualProtect, use DWORD arguments.  Also fix the 'may
5742         be used uninitialized' warning for the np variable.
5743
5744 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
5745
5746         PR target/39496
5747         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
5748         functions using regparm calling conventions when not optimizing.
5749         (ix86_function_sseregparm): Similarly for sseregparm calling
5750         conventions.
5751
5752 2009-03-19  Li Feng  <nemokingdom@gmail.com>
5753
5754         PR middle-end/39500
5755         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
5756         dependence if the first conflict is after niter iterations.
5757
5758 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
5759
5760         PR middle-end/38609
5761         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
5762         functions with dynamic stack-pointer adjustments.
5763
5764 2009-03-19  Ben Elliston  <bje@au.ibm.com>
5765
5766         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
5767         option; change to -msdata=data.
5768
5769 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5770
5771         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
5772         and -fopenmp.
5773
5774 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
5775
5776         PR target/35180
5777         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
5778
5779 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
5780
5781         * doc/invoke.texi (Code Gen Options): Expand discussion of
5782         -fno-common.
5783
5784 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
5785
5786         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
5787         * matrix-reorg.c (struct matrix_info): Likewise.
5788         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
5789         * rtl.h (struct mem_attrs): Likewise.
5790         * df.h (struct df): Likewise.
5791         * tree-data-ref.h (struct data_dependence_relation): Likewise.
5792         * ira-int.h (struct ira_allocno): Likewise.
5793         * df-scan.c (struct df_collection_rec): Likewise.
5794         * ira.c (struct equivalence): Likewise.
5795         * function.c (struct temp_slot): Likewise.
5796         * cfgloop.h (struct loop): Likewise.
5797
5798         PR debug/39485
5799         * function.c (use_register_for_decl): When not optimizing, disregard
5800         register keyword for variables with types containing methods.
5801
5802 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
5803
5804         PR middle-end/39447
5805         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
5806         (is_simple_operand): Call contains_component_ref_p before calling data
5807         reference analysis that would fail on COMPONENT_REFs.
5808
5809         * tree-vrp.c (search_for_addr_array): Fix formatting.
5810
5811 2009-03-18  Richard Guenther  <rguenther@suse.de>
5812
5813         * tree-vect-transform.c (vect_loop_versioning): Fold the
5814         generated comparisons.
5815         * tree-vectorizer.c (set_prologue_iterations): Likewise.
5816         (slpeel_tree_peel_loop_to_edge): Likewise.
5817
5818 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5819
5820         PR middle-end/37805
5821         * opts.c (print_specific_help): In addition to `undocumented',
5822         accept `separate' and `joined' flags if passed alone.  Describe
5823         output by the first matched one of those.
5824         (common_handle_option): Skip over empty strings.
5825         * gcc.c (display_help): Fix help string for `--help='.
5826         * doc/invoke.texi (Option Summary, Overall Options): With
5827         `--help=', classes and qualifiers can both be repeated, but
5828         only the latter can be negated.  One should not pass only
5829         negated qualifiers.  Fix markup and examples.
5830
5831         Revert
5832         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
5833         PR middle-end/37805
5834         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
5835         and -fhelp=separate.
5836
5837 2009-03-17  Jing Yu  <jingyu@google.com>
5838
5839         PR middle-end/39378
5840         * function.h (struct rtl_data): Move is_thunk from here...
5841         (struct function): ...to here.
5842         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
5843         * varasm.c (assemble_start_function): Change is_thunk from crtl to
5844         cfun.
5845         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
5846         cfun.
5847         (alpha_does_function_need_gp, alpha_start_function): Likewise.
5848         (alpha_output_function_end_prologue): Likewise.
5849         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
5850         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
5851         (rs6000_output_function_epilogue): Likewise.
5852         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
5853
5854 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
5855
5856         PR target/39482
5857         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
5858         from different units in a single alternative.
5859         (*truncdfsf_i387): Ditto.
5860         (*truncxfsf2_mixed): Ditto.
5861         (*truncxfdf2_mixed): Ditto.
5862
5863 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
5864
5865         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
5866         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
5867
5868         PR debug/39474
5869         * tree-ssa-live.c (remove_unused_locals): Don't remove local
5870         unused non-artificial variables when not optimizing.
5871
5872         PR debug/39471
5873         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
5874         DW_TAG_imported_module even if decl is IMPORTED_DECL with
5875         NAMESPACE_DECL in its DECL_INITIAL.
5876
5877         PR middle-end/39443
5878         * optabs.c (set_user_assembler_libfunc): New function.
5879         * expr.h (set_user_assembler_libfunc): New prototype.
5880         * c-common.c: Include libfuncs.h.
5881         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
5882         for memcmp, memset, memcpy, memmove and abort.
5883         * Makefile.in (c-common.o): Depend on libfuncs.h.
5884
5885         PR debug/39412
5886         * dwarf2out.c (gen_inlined_enumeration_type_die,
5887         gen_inlined_structure_type_die, gen_inlined_union_type_die,
5888         gen_tagged_type_instantiation_die): Removed.
5889         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
5890         do nothing.
5891
5892 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
5893
5894         PR testsuite/38526
5895         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
5896         its use.
5897         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
5898         (check-parallel-%): Ditto.
5899         (check-consistency): Ditto.
5900
5901 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
5902
5903         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
5904         local variable rhs by NULL_TREE.
5905
5906 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5907
5908         PR target/39477
5909         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
5910
5911 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5912
5913         PR target/39476
5914         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
5915
5916 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5917
5918         PR target/39473
5919         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
5920         for ms->sysv ABI calls only in 64bit mode.
5921
5922         * config/i386/i386.md (untyped_call): Support 32bit.
5923
5924 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5925
5926         * doc/extend.texi: Replace x86_65 with x86_64.
5927
5928 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
5929
5930         PR tree-optimization/39455
5931         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
5932         mismatches for POINTER_TYPE_P (type).
5933         (number_of_iterations_le): Likewise.
5934
5935 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
5936
5937         * config/picochip/picochip.c: Removed profiling support.
5938         * config/picochip/picochip.md: Removed profiling instruction.
5939         * config/picochip/picochip.h: Removed profiling builtin.
5940
5941 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
5942
5943         * doc/install.texi (--with-host-libstdcxx): Document.
5944
5945 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
5946
5947         PR target/34299
5948         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
5949         generate a warning if the function name does not begin with
5950         "__vector" and the function has either the 'signal' or 'interrupt'
5951         attribute, from here to ...
5952         (avr_declare_function_name): ...here. New function.
5953         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
5954         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
5955
5956 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
5957
5958         PR bootstrap/39454
5959         * cse.c (fold_rtx): Don't modify original const_arg1 when
5960         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
5961         separate variable instead.
5962         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
5963         from out of range shift counts.
5964         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
5965
5966 2009-03-13  Catherine Moore  <clm@codesourcery.com>
5967
5968         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
5969         diagnostic.h with $(DIAGNOSTIC_H).
5970
5971 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
5972
5973         PR target/39431
5974         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
5975         predicate.
5976         * config/i386/sync.md (sync_compare_and_swap<mode>,
5977         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
5978         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
5979         into a register.
5980         (sync_double_compare_and_swapdi_pic,
5981         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
5982         cmpxchg8b_pic_memory_operand instead of just memory_operand.
5983
5984 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5985
5986         PR target/39445
5987         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
5988
5989 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5990
5991         PR target/39327
5992         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5993         (avx_addsubv4df3): Likewise.
5994         (*avx_addsubv4sf3): Likewise.
5995         (sse3_addsubv4sf3): Likewise.
5996
5997 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5998
5999         PR target/38824
6000         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
6001
6002 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6003
6004         PR debug/39432
6005         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
6006         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6007         registers for allocnos created from user-defined variables.
6008
6009 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6010
6011         PR target/39181
6012         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
6013         of non-integer mode as well.
6014
6015 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
6016
6017         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
6018         for functions for which the parameter types are unknown.
6019
6020 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
6021
6022         PR target/39137
6023         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
6024         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
6025         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
6026         * config/i386/i386.c (ix86_local_alignment): For
6027         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
6028         long long variables on the stack to avoid dynamic realignment.
6029         Allow the first argument to be a decl rather than type.
6030         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
6031
6032 2009-03-11  Nick Clifton  <nickc@redhat.com>
6033
6034         PR target/5362
6035         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
6036         options.
6037         Add description to mno-lsim option.
6038         * config/mcore/mcore.h: Remove comment about deprecated m4align
6039         option.
6040         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
6041         * doc/invoke.texi: Add description of mno-lsim and
6042         mstack-increment options.
6043
6044         * config/fr30/fr30.opt: Document the -mno-lsim option.
6045         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
6046         and -mno-lsim options.
6047
6048 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6049
6050         * fold-const.c (fold_comparison): Only call fold_inf_compare
6051         if the mode supports infinities.
6052
6053 2009-03-11  Jason Merrill  <jason@redhat.com>
6054
6055         PR debug/39086
6056         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
6057         end already did.  Notice GIMPLE_CALL modifications of the result.
6058         Don't copy debug information from an ignored decl or a decl from
6059         another function.
6060
6061 2009-03-10  Richard Guenther  <rguenther@suse.de>
6062             Nathan Froyd  <froydnj@codesourcery.com>
6063
6064         PR middle-end/37850
6065         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
6066         (__divMODE3): Likewise.
6067
6068 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
6069
6070         PR tree-optimization/39394
6071         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
6072         DECL_SIZE_UNIT of variable length FIELD_DECLs.
6073
6074 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6075
6076         * recog.c (verfiy_changes): Disallow renaming of hard regs in
6077         inline asms for register asm ("") declarations.
6078
6079 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
6080
6081         * fold-const.c (fold_unary): Fix comment.
6082
6083 2009-03-07  Jan Hubicka  <jh@suse.cz>
6084
6085         PR target/39361
6086         * tree-inline.c (setup_one_parameter): Do replacement of const
6087         argument by constant in SSA form.
6088
6089 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6090
6091         PR middle-end/38028
6092         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
6093         determine alignment passed to assign_stack_local.
6094         (assign_parms_unsplit_complex): Likewise.
6095         * except.c (sjlj_build_landing_pads): Likewise.
6096
6097 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR middle-end/39360
6100         * tree-flow.h (add_referenced_var): Return bool instead of void.
6101         * tree-dfa.c (add_referenced_var): Return result of
6102         referenced_var_check_and_insert call.
6103         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
6104         of referenced_var_check_and_insert.
6105
6106         PR debug/39372
6107         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
6108         (gen_variable_die): Emit DW_AT_location on abstract static variable's
6109         DIE, don't emit it if abstract origin already has it.
6110         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
6111         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
6112
6113 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6114
6115         * genpreds.c (needs_variable): Fix parentheses at variable name
6116         detection.
6117         (write_tm_constrs_h): Indent generated code.
6118
6119 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6120
6121         * doc/extend.texi (Function Attributes): Add documentation
6122         for isr attributes.
6123
6124 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
6125
6126         PR debug/39387
6127         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
6128         take locus from its DECL_SOURCE_LOCATION instead of input_location.
6129
6130 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
6131
6132         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
6133         the loop as bad.
6134
6135 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
6136
6137         PR debug/39379
6138         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
6139         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
6140
6141 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
6142
6143         * config/i386/i386.md (R8_REG, R9_REG): New constants.
6144         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
6145         constants instead of magic numbers.
6146         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
6147         (QI_REG_P): Ditto.
6148         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
6149         (x86_64_ms_abi_int_parameter_registers): Ditto.
6150         (x86_64_int_return_registers): Ditto.
6151         (ix86_maybe_switch_abi): Ditto.
6152         (ix86_expand_call): Ditto for clobbered_registers array.
6153         (ix86_hard_regno_mode_ok): Ditto.
6154         (x86_extended_QIreg_mentioned_p): Ditto.
6155
6156 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
6157
6158         PR tree-optimization/39349
6159         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
6160
6161         * combine.c (gen_lowpart_for_combine): Use omode when generating
6162         clobber.
6163
6164 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
6165
6166         PR rtl-optimization/39235
6167         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
6168
6169 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
6170
6171         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
6172
6173 2009-03-04  Richard Guenther  <rguenther@suse.de>
6174
6175         PR tree-optimization/39362
6176         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
6177         that occur in abnormal PHIs should be varying.
6178
6179 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
6180
6181         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
6182         Extend comments.
6183         (simple_iv):  Take loop as an argument instead of statement.
6184         * tree-scalar-evolution.h (simple_iv): Declaration changed.
6185         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
6186         to simple_iv.
6187         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
6188         Ditto.
6189         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
6190         * matrix-reorg.c (analyze_transpose): Ditto.
6191         * tree-data-ref.c (dr_analyze_innermost): Ditto.
6192         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
6193         * tree-predcom.c (ref_at_iteration): Ditto.
6194         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
6195
6196 2009-03-04  Richard Guenther  <rguenther@suse.de>
6197
6198         PR tree-optimization/39358
6199         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
6200         escaped_id and callused_id.
6201         (solve_graph): Likewise.
6202
6203 2009-03-04  Richard Guenther  <rguenther@suse.de>
6204
6205         PR tree-optimization/39339
6206         * tree-sra.c (try_instantiate_multiple_fields): Make it
6207         no longer ICE on the above.
6208
6209 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
6210
6211         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
6212         that fits within Pmode.
6213
6214 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
6215
6216         PR middle-end/10109
6217         * tm.texi (LIBCALL_VALUE): Update description.
6218
6219 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
6220
6221         PR middle-end/34443
6222         * doc/extend.texi (section): Update description.
6223
6224 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
6225
6226         PR middle-end/39345
6227         * tree-inline.c (remapped_type): New.
6228         (can_be_nonlocal): Call remapped_type instead of remap_type.
6229
6230 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
6231
6232         PR fortran/39354
6233         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
6234         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
6235
6236 2009-03-03  Richard Guenther  <rguenther@suse.de>
6237
6238         PR middle-end/39272
6239         * tree.c (tree_nonartificial_location): New function.
6240         * tree.h (tree_nonartificial_location): Declare.
6241         * builtins.c (expand_builtin_memory_chk): Provide location
6242         of the call location for artificial function pieces.
6243         (maybe_emit_chk_warning): Likewise.
6244         (maybe_emit_sprintf_chk_warning): Likewise.
6245         (maybe_emit_free_warning): Likewise.
6246         * expr.c (expand_expr_real_1): Likewise.
6247
6248 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
6249
6250         PR tree-optimization/39343
6251         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
6252         COMPONENT_REF t has ARRAY_TYPE.
6253
6254 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
6255
6256         PR middle-end/39335
6257         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
6258         when the type precision of the induction variable should be
6259         larger than the type precision of nit.
6260         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
6261         * graphite.c (graphite_loop_normal_form): Same.
6262         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
6263
6264 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
6265
6266         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
6267         (*call_1_rex64_ms_sysv): Use named constants instead of magic
6268         numbers to describe clobbered registers.
6269         (*call_value_0_rex64_ms_sysv): Ditto.
6270         * config/i386/mmx.md (mmx_emms): Ditto.
6271         (mmx_femms): Ditto.
6272
6273 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
6274
6275         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
6276         of ABI_64.
6277
6278 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6279
6280         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
6281         (spu_section_type_flags): New function.
6282
6283 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
6284
6285         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
6286         reg_class_contents of FLOAT_REGS into a temporary.
6287
6288 2009-03-02  Richard Guenther  <rguenther@suse.de>
6289             Ira Rosen  <irar@il.ibm.com>
6290
6291         PR tree-optimization/39318
6292         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
6293         information to the vectorized statement.
6294
6295 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
6296
6297         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
6298         variable.  Use defined names instead of magic constants for REX SSE
6299         registers.
6300
6301 2009-03-01  Richard Guenther  <rguenther@suse.de>
6302
6303         PR tree-optimization/39331
6304         * omp-low.c (lower_send_shared_vars): Do not receive new
6305         values for the reference of DECL_BY_REFERENCE parms or results.
6306
6307 2009-03-01  Jan Hubicka  <jh@suse.cz>
6308
6309         PR debug/39267
6310         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
6311         BLOCK_NONLOCALIZED_VAR): New macros.
6312         (tree_block): Add nonlocalized_vars.
6313         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
6314         gen_decl_die): Add origin argument.  Allow generation of die with
6315         origin at hand only.
6316         (gen_member_die, gen_type_die_with_usage, force_decl_die,
6317         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
6318         of gen_*.
6319         (gen_block_die): Fix checking for unused blocks.
6320         (process_scope_var): Break out from .... ; work with origins only.
6321         (decls_for_scope) ... here; process nonlocalized list.
6322         (dwarf2out_ignore_block): Look for nonlocalized vars.
6323         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
6324         vars.
6325         (dump_scope_block): Dump them.
6326         * tree-inline.c (remap_decls): Handle nonlocalized vars.
6327         (remap_block): Likewise.
6328         (can_be_nonlocal): New predicate.
6329         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
6330
6331 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6332
6333         * configure: Regenerate.
6334
6335 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6336
6337         * optc-gen.awk: No need to duplicate option flags twice.
6338         Reuse help texts for duplicate options which do not have any.
6339
6340         * gcc.c (display_help): Document --version.
6341
6342         * gcc.c (main): If print_help_list and verbose_flag, ensure
6343         driver output comes before subprocess output.
6344
6345         * optc-gen.awk: Assign all remaining fields to help string,
6346         space-separated, for multi-line help in *.opt.
6347
6348         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
6349         -Wno-pedantic-ms-format is for MinGW targets only.
6350
6351         * doc/options.texi (Option file format): Fix bad indentation,
6352         restoring dropped sentence.
6353
6354 2009-02-28  Jan Hubicka  <jh@suse.cz>
6355
6356         * tree-inline.c (tree_function_versioning): Output debug info.
6357
6358 2009-02-28  Jan Hubicka  <jh@suse.cz>
6359
6360         PR debug/39267
6361         * tree-inline.c (setup_one_parameter): Do not copy propagate
6362         arguments when not optimizing.
6363
6364 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
6365
6366         PR target/39327
6367         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
6368         (avx_addsubv4df3): Likewise.
6369         (*avx_addsubv4sf3): Likewise.
6370         (sse3_addsubv4sf3): Likewise.
6371         (*avx_addsubv2df3): Likewise.
6372         (sse3_addsubv2df3): Likewise.
6373         (avx_unpckhps256): Correct item selectors.
6374         (avx_unpcklps256): Likewise.
6375         (avx_unpckhpd256): Likewise.
6376         (avx_unpcklpd256): Likewise.
6377
6378 2009-02-28  Jan Hubicka  <jh@suse.cz>
6379
6380         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
6381         static vars.
6382         (copy_arguments_for_versioning): If var is declared don't declare it.
6383         (tree_function_versioning): First setup substitutions and then copy
6384         args.
6385
6386 2009-02-27  Jan Hubicka  <jh@suse.cz>
6387
6388         PR debug/39267
6389         * cgraph.h (varpool_output_debug_info): Remove.
6390         * cgraphunit.c (varpool_output_debug_info): Remove.
6391         * dwarf2out.c (deferred_locations_struct): New struct
6392         (deferred_locations): New type.
6393         (deferred_locations_list): New static var.
6394         (deffer_location): New function.
6395         (gen_variable_die): Use it.
6396         (decls_for_scope): Output info on local static vars.
6397         (dwarf2out_finish): Process deferred locations.
6398         * varpool.c (varpool_output_debug_info): Remove.
6399
6400 2009-02-27  Jan Hubicka  <jh@suse.cz>
6401
6402         PR debug/39267
6403         * tree.h (TREE_PROTECTED): Fix comment.
6404         (BLOCK_HANDLER_BLOCK): Remove.
6405         (struct tree_block): Remove handler_block add body_block.
6406         (inlined_function_outer_scope_p): New.
6407         (is_body_block): Remove.
6408         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
6409         * dwarf2out.c (is_inlined_entry_point): Remove.
6410         (add_high_low_attributes): Use inlined_function_outer_scope_p.
6411         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
6412         code.
6413         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
6414         * gimplify.c (gimplify_expr): Gimplify body blocks.
6415         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
6416         block with multiple subblocks.
6417         (dump_scope_block): Prettier output; dump more flags and info.
6418         (dump_scope_blocks): New.
6419         (remove_unused_locals): Use dump_scope_blocks.
6420         * tree-flow.h (dump_scope_blocks): Declare.
6421         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
6422         * stmt.c (is_body_block): Remove.
6423         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
6424         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
6425
6426 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
6427
6428         PR middle-end/39308
6429         * graphite.c (graphite_loop_normal_form): Do not call
6430         number_of_iterations_exit from a gcc_assert.
6431
6432 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6433
6434         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
6435         jumps if COND is NULL.
6436         (find_cond_jump): New function.
6437         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
6438         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
6439
6440 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
6441
6442         * config/alpha/alpha.h (alpha_expand_mov): Return false if
6443         force_const_mem returns NULL_RTX.
6444
6445 2009-02-26  Jan Hubicka  <jh@suse.cz>
6446
6447         PR debug/39267
6448         * cgraph.h (varpool_output_debug_info): Remove.
6449         * cgraphunit.c (varpool_output_debug_info): Remove.
6450         * dwarf2out.c (deferred_locations_struct): New struct
6451         (deferred_locations): New type.
6452         (deferred_locations_list): New static var.
6453         (deffer_location): New function.
6454         (gen_variable_die): Use it.
6455         (decls_for_scope): Output info on local static vars.
6456         (dwarf2out_finish): Process deferred locations.
6457         * varpool.c (varpool_output_debug_info): Remove.
6458
6459 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6460
6461         PR rtl-optimization/39241
6462         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
6463         to subreg_offset_representable_p.
6464
6465 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6466
6467         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
6468         execute function prototype.  Get f and nregs from max_reg_num
6469         and get_insns.  Remove the first backward pass as it's dead,
6470         guard the forward pass by flag_expensive_optimizations.
6471         (rest_of_handle_regmove): Delete.
6472         (pass_regmove): Replace it with regmove_optimize.
6473
6474 2009-02-25  Martin Jambor  <mjambor@suse.cz>
6475
6476         PR tree-optimization/39259
6477         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6478         calls_alloca function flags.
6479         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
6480         calls are detected.
6481
6482 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6483
6484         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
6485         flags_set_1_rtx, flags_set_1_set): Delete.
6486         (regmove_optimize): Do not call mark_flags_life_zones.
6487
6488 2009-02-24  Julian Brown  <julian@codesourcery.com>
6489
6490         PR target/35965
6491         * config/arm/arm.c (require_pic_register): Only set
6492         cfun->machine->pic_reg once per function.
6493
6494 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
6495
6496         * doc/invoke.texi (Link Options): Document an easier way to pass
6497         options that take arguments to the GNU linker using -Xlinker and -Wl.
6498
6499 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
6500
6501         PR target/33785
6502         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
6503
6504 2009-02-24  Richard Guenther  <rguenther@suse.de>
6505
6506         PR debug/39285
6507         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
6508
6509 2009-02-24  Richard Guenther  <rguenther@suse.de>
6510             Zdenek Dvorak  <ook@ucw.cz>
6511
6512         PR tree-optimization/39233
6513         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
6514         from converting them to a generic type.
6515
6516 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
6517
6518         PR tree-optimization/39260
6519         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
6520         contains a condition with a real type.
6521         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
6522
6523 2009-02-23  Jason Merrill  <jason@redhat.com>
6524
6525         PR c++/38880
6526         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
6527         narrowing_initializer_constant_valid_p.
6528         (narrowing_initializer_constant_valid_p): Don't return
6529         null_pointer_node for adding a pointer to itself.
6530
6531 2009-02-23  Jan Hubicka  <jh@suse.cz>
6532
6533         PR c/12245
6534         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
6535         resizing.
6536
6537 2009-02-23  Jan Hubicka  <jh@suse.cz>
6538
6539         PR tree-optimization/37709
6540         * tree.c (block_ultimate_origin): Move here from dwarf2out.
6541         * tree.h (block_ultimate_origin): Declare.
6542         * dwarf2out.c (block_ultimate_origin): Move to tree.c
6543         * tree-ssa-live.c (remove_unused_scope_block_p):
6544         Eliminate blocks containig no instructions nor live variables nor
6545         nested blocks.
6546         (dump_scope_block): New function.
6547         (remove_unused_locals): Enable removal of dead blocks by default;
6548         enable dumping at TDF_DETAILS.
6549
6550 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6551
6552         * config/i386/i386.c (classify_argument): Don't allow COImode
6553         and OImode.
6554         (function_arg_advance_32): Don't allow OImode.
6555         (function_arg_32): Likewise.
6556         (function_value_32): Likewise.
6557         (return_in_memory_32): Likewise.
6558         (function_arg_64): Remove OImode comment.
6559
6560 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6561
6562         PR target/39261
6563         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6564         ix86_expand_vector_set for V4DImode in 64bit mode only.
6565         (ix86_expand_vector_init_one_var): Likewise.
6566
6567 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
6568
6569         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
6570
6571 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6572
6573         PR bootstrap/39257
6574         * loop-iv.c: Revert last change.
6575         * emit-rtl.c: Likewise.
6576
6577 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6578
6579         PR target/39256
6580         * config/i386/i386.c (type_natural_mode): Remove an extra
6581         space in the warning message.
6582         (function_value_32): Handle 32-byte vector modes.
6583         (return_in_memory_32): Likewise.
6584
6585 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6586
6587         * loop-iv.c (truncate_value): New function.
6588         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
6589         of lowpart_subreg.
6590         (lowpart_subreg): Move to...
6591         * emit-rtl.c: ...here.
6592
6593 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
6594
6595         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
6596         accidental and undocumented change at revision 140860.
6597
6598 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
6599
6600         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
6601         take gimple_seq * arguments.
6602         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
6603         types_compatible_p langhook.
6604
6605 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
6606             Joseph Myers  <joseph@codesourcery.com>
6607
6608         * config/arm/arm.c (arm_builtin_va_list): New function.
6609         (arm_expand_builtin_va_start): Likewise.
6610         (arm_gimplify_va_arg_expr): Likewise.
6611         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
6612         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
6613         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
6614         (va_list_type): New variable.
6615         (arm_mangle_type): Mangle va_list_type appropriately.
6616
6617 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6618
6619         PR middle-end/39157
6620         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
6621         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
6622         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
6623         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
6624         parameter to 1000 for -O1 by default.
6625         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
6626         parameter.
6627         * loop-invariant.c: Include params.h.
6628         (move_loop_invariants): Don't call move_single_loop_invariants on
6629         very large loops.
6630
6631 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
6632
6633         * calls.c (emit_library_call_value_1): Use slot_offset instead of
6634         offset when calculating bounds for indexing stack_usage_map.  Fixes
6635         a buffer overflow with certain target setups.
6636
6637 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6638
6639         PR target/39240
6640         * calls.c (expand_call): Clear try_tail_call if caller and callee
6641         disagree in promotion of function return value.
6642
6643 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
6644
6645         PR target/39175
6646         * c-common.c (c_determine_visibility): If visibility changed and
6647         DECL_RTL has been already set, call make_decl_rtl to update symbol
6648         flags.
6649
6650 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6651
6652         PR c++/39188
6653         * varasm.c (assemble_variable): Don't check DECL_NAME when
6654         globalizing a variable.
6655
6656 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
6657
6658         PR c/38483
6659         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
6660         expression before any __builtin_trap call.
6661         * c-typeck.c (build_function_call): Convert and check function
6662         arguments before generating a call to a trap.  Evaluate the
6663         function arguments before the trap.
6664
6665 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
6666
6667         PR target/39228
6668         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
6669         (UNSPEC_FXAM_MEM): New unspec.
6670         (fxam<mode>2_i387_with_temp): New insn and split pattern.
6671         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
6672         memory using fxam<mode>2_i387_with_temp to remove excess precision.
6673
6674 2009-02-19  Richard Guenther  <rguenther@suse.de>
6675
6676         PR tree-optimization/39207
6677         PR tree-optimization/39074
6678         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
6679         storedanything_tree): New.
6680         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
6681         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
6682         (build_succ_graph): Add edges from STOREDANYTHING to all
6683         non-direct nodes.
6684         (init_base_vars): Initialize STOREDANYTHING.
6685         (compute_points_to_sets): Free substitution info after
6686         building the succ graph.
6687         (ipa_pta_execute): Likewise.
6688
6689         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
6690         field.
6691         (do_ds_constraint): Do not add to special var or non-pointer
6692         field solutions.
6693         (type_could_have_pointers): Split out from ...
6694         (could_have_pointers): ... here.  For arrays use the element type.
6695         (create_variable_info_for): Initialize may_have_pointers.
6696         (new_var_info): Likewise.
6697         (handle_lhs_call): Make the HEAP variable unknown-sized.
6698         (intra_create_variable_infos): Use a type with pointers for
6699         PARM_NOALIAS, make it unknown-sized.
6700
6701 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6702
6703         PR target/39224
6704         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
6705
6706 2009-02-18  Jason Merrill  <jason@redhat.com>
6707
6708         PR target/39179
6709         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
6710         value if DECL_EXTERNAL.
6711         * tree-sra.c (sra_walk_gimple_assign): Likewise.
6712         * target.h (gcc_target::binds_local_p): Clarify "module".
6713         * tree.h (TREE_PUBLIC): Clarify "module".
6714
6715 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
6716
6717         PR target/38891
6718         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
6719         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
6720
6721 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
6722
6723         PR target/39082
6724         * c.opt (Wabi): Support C and ObjC.
6725         (Wpsabi): New.
6726
6727         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
6728
6729         * config/i386/i386.c (classify_argument): Warn once about the ABI
6730         change when passing union with long double.
6731
6732         * doc/invoke.texi: Update -Wabi for warning psABI changes.
6733
6734 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
6735
6736         PR c/35447
6737         * c-parser.c (c_parser_compound_statement): Always enter and leave
6738         a scope.
6739
6740 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6741
6742         PR target/34587
6743         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
6744
6745 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
6746
6747         PR tree-optimization/36922
6748         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
6749         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
6750         Likewise.
6751
6752 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6753
6754         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
6755         to 0 for EABI64.
6756
6757 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6758
6759         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
6760
6761 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6762
6763         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
6764         tree sharing.
6765
6766 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
6767             Richard Sandiford  <rdsandiford@googlemail.com>
6768
6769         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
6770         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
6771         (loongson_biadd): ...this.
6772
6773 2009-02-17  Richard Guenther  <rguenther@suse.de>
6774
6775         PR tree-optimization/39202
6776         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
6777         a var make sure to follow existing collapses.
6778
6779 2009-02-17  Richard Guenther  <rguenther@suse.de>
6780
6781         PR middle-end/39214
6782         * langhooks.c (lhd_print_error_function): Check for NULL block.
6783
6784 2009-02-17  Richard Guenther  <rguenther@suse.de>
6785
6786         PR tree-optimization/39204
6787         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
6788         of the PHI arg.
6789
6790 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
6791
6792         * config/soft-fp/double.h: Update from glibc CVS.
6793
6794 2009-02-17  Richard Guenther  <rguenther@suse.de>
6795
6796         PR tree-optimization/39207
6797         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
6798         strict-aliasing warnings for pointers pointing to NULL.
6799
6800 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
6801
6802         PR c/35446
6803         * c-parser.c (c_parser_braced_init): Call pop_init_level when
6804         skipping until next close brace.
6805
6806 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
6807
6808         PR target/37049
6809         * config/i386/i386.c (ix86_expand_push): Set memory alignment
6810         to function argument boundary.
6811
6812 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
6813
6814         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
6815         in the lea_add. Reload eventually constraints it properly.
6816         * config/picochip/constraints.md : Remove the target constraint
6817         "b", since it is not needed anymore.
6818
6819 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
6820
6821         * gthr-dce.h: Uglify function parameter and local variable names.
6822         * gthr-gnat.h: Likewise.
6823         * gthr-mipssde.h: Likewise.
6824         * gthr-nks.h: Likewise.
6825         * gthr-posix95.h: Likewise.
6826         * gthr-posix.h: Likewise.
6827         * gthr-rtems.h: Likewise.
6828         * gthr-single.h: Likewise.
6829         * gthr-solaris.h: Likewise.
6830         * gthr-tpf.h: Likewise.
6831         * gthr-vxworks.h: Likewise.
6832         * gthr-win32.h: Likewise.
6833
6834 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6835
6836         PR target/39196
6837         * config/i386/i386.md: Restrict the new peephole2 to move
6838         between MMX/SSE registers.
6839
6840 2009-02-15  Richard Guenther  <rguenther@suse.de>
6841
6842         Revert
6843         2009-02-13  Richard Guenther  <rguenther@suse.de>
6844
6845         * configure.ac: Enable LFS.
6846         * configure: Re-generate.
6847         * config.in: Likewise.
6848
6849 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6850
6851         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
6852         spu_srqwbyte, spu_srqwbytebc): Define.
6853         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
6854         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
6855         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
6856         "shrqby_<mode>"): New insn-and-split patterns.
6857         * config/spu/spu.c (expand_builtin_args): Determine and return
6858         number of operands using spu_builtin_description data.
6859         (spu_expand_builtin_1): Use it.
6860
6861 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
6862
6863         PR target/38056
6864         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
6865         TARGET_CONST_GP.
6866
6867 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6868
6869         PR target/39149
6870         * config/i386/i386.c (override_options): Correct warning
6871         messages for -malign-loops, -malign-jumps and -malign-functions.
6872
6873 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6874
6875         PR target/39152
6876         * config/i386/i386.md: Restrict the new peephole2 to move
6877         between the general purpose registers.
6878
6879 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6880
6881         PR target/39162
6882         * config/i386/i386.c (type_natural_mode): Add a new argument.
6883         Return the original mode and warn ABI change if vector size is 32byte.
6884         (function_arg_advance): Updated.
6885         (function_arg): Likewise.
6886         (ix86_function_value): Likewise.
6887         (ix86_return_in_memory): Likewise.
6888         (ix86_sol10_return_in_memory): Likewise.
6889         (ix86_gimplify_va_arg): Likewise.
6890         (function_arg_32): Don't warn ABX ABI change here.
6891         (function_arg_64): Likewise.
6892
6893 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
6894
6895         * loop-iv.c (implies_p): In the final case, test that operands 0
6896         of the two comparisons match.
6897
6898         * config/bfin/bfin.c (find_prev_insn_start): New function.
6899         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
6900         (find_next_insn_start): Move.
6901
6902 2009-02-13  Richard Guenther  <rguenther@suse.de>
6903
6904         * configure.ac: Enable LFS.
6905         * configure: Re-generate.
6906         * config.in: Likewise.
6907
6908 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
6909
6910         PR c/35444
6911         * c-parser.c (c_parser_parms_list_declarator): Discard pending
6912         sizes on syntax error after some arguments have been parsed.
6913
6914 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
6915
6916         * doc/invoke.texi (-fira): Remove.
6917
6918 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6919
6920         * caller-save.c: Replace regclass.c with reginfo.c in comments.
6921         * recog.c: Likewise.
6922         * rtl.h: Likewise.
6923
6924 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
6925
6926         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
6927         (umul_ppmm): Likewise.
6928         (count_leading_zeros): Likewise.
6929         (count_trailing_zeros): Likewise.
6930         (UMUL_TIME): Likewise.
6931
6932 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6933
6934         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
6935         soft-fp/t-softfp to tmake_file.
6936
6937         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
6938         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
6939         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
6940         IA64_BUILTIN_INFQ]: New.
6941         (ia64_init_builtins): Initialize __builtin_infq,
6942         __builtin_fabsq and __builtin_copysignq if not HPUX.
6943         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
6944         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
6945
6946         * config/ia64/lib1funcs.asm (__divtf3): Define only if
6947         SHARED is defined.
6948         (__fixtfti): Likewise.
6949         (__fixunstfti): Likewise.
6950         (__floattitf): Likewise.
6951
6952         * config/ia64/libgcc-glibc.ver: New.
6953         * config/ia64/t-fprules-softfp: Likewise.
6954         * config/ia64/sfp-machine.h: Likewise.
6955
6956         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
6957         (LIBGCC2_TF_CEXT): Likewise.
6958         (TF_SIZE): Likewise.
6959         (TARGET_INIT_LIBFUNCS): Likewise.
6960
6961         * config/ia64/t-glibc (SHLINB_MAPFILES):
6962         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
6963
6964 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6965
6966         * config/i386/i386.c (construct_container): Rewrite processing
6967         BLKmode with X86_64_SSE_CLASS.
6968
6969 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
6970
6971         PR target/39152
6972         * config/i386/i386.md: Replace simplify_replace_rtx with
6973         replace_rtx in the new peephole2.
6974
6975 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6976
6977         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
6978         loop unrolling do not happen at -O2.
6979
6980 2009-02-12  Michael Matz  <matz@suse.de>
6981
6982         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
6983
6984 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
6985
6986         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
6987         for -g3.
6988
6989 2009-02-12  Ben Elliston  <bje@au.ibm.com>
6990
6991         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
6992         patterns when updating the back chain.  Missed in the 2009-02-10
6993         change.
6994
6995 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
6996
6997         * doc/extend.texi (Decimal Floating Types): Update identifier of
6998         draft TR and list of missing support.
6999
7000 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
7001
7002         PR middle-end/39154
7003         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
7004         bit to variable length decl's flags, add it also to its
7005         pointer replacement variable.
7006
7007 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
7008             Jakub Jelinek  <jakub@redhat.com>
7009
7010         PR target/39118
7011         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
7012         (memory_blockage): New expander.
7013         (*memory_blockage): New insn pattern.
7014         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
7015         instead of general blockage at the end of function prologue when
7016         frame pointer is used to access red zone area.  Do not emit blockage
7017         when profiling, it is emitted in generic code.
7018         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
7019         function epilogue when frame pointer is used to access red zone area.
7020
7021 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
7022
7023         PR target/38824
7024         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
7025         by arithmetic with memory operands.
7026         * config/i386/predicates.md (commutative_operator): New.
7027
7028 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
7029
7030         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
7031         bulleted lists.
7032
7033 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7034
7035         * alias.h (record_alias_subset): Declare.
7036         * alias.c (record_alias_subset): Make global.
7037
7038 2009-02-10  Nick Clifton  <nickc@redhat.com>
7039
7040         * tree-parloops.c: Change license to GPLv3.
7041         * ipa-struct-reorg.c: Change license to GPLv3.
7042         * ipa-struct-reorg.h: Change license to GPLv3.
7043
7044 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
7045
7046         PR c/39084
7047         * c-decl.c (start_struct): Return NULL on error.
7048
7049 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
7050
7051         PR middle-end/39124
7052         * cfgloopmanip.c (remove_path): Call remove_bbs after
7053         cancel_loop_tree, not before it.
7054
7055         PR target/39139
7056         * function.h (struct function): Add has_local_explicit_reg_vars bit.
7057         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
7058         VAR_DECLs were seen.
7059         * tree-ssa-live.c (remove_unused_locals): Recompute
7060         cfun->has_local_explicit_reg_vars.
7061         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
7062         copies or clearings if cfun->has_local_explicit_reg_vars.
7063
7064 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
7065
7066         PR target/39118
7067         * config/i386/i386.c (expand_prologue): Emit blockage at the end
7068         of function prologue when frame pointer is used to access
7069         red zone area.
7070
7071 2009-02-10  Richard Guenther  <rguenther@suse.de>
7072
7073         PR middle-end/39127
7074         * gimplify.c (gimple_regimplify_operands): Always look if
7075         we need to create a temporary.
7076
7077 2009-02-10  Richard Guenther  <rguenther@suse.de>
7078
7079         PR tree-optimization/39132
7080         * tree-loop-distribution.c (todo): New global var.
7081         (generate_memset_zero): Trigger TODO_rebuild_alias.
7082         (tree_loop_distribution): Return todo.
7083
7084 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
7085
7086         PR target/39119
7087         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
7088         (x86_64_reg_class_name): Removed.
7089         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
7090         first one isn't X86_64_SSE_CLASS or any other ones aren't
7091         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
7092         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
7093         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
7094         and 3 X86_64_SSEUP_CLASS.
7095         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
7096         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
7097
7098 2009-02-10  Ben Elliston  <bje@au.ibm.com>
7099
7100         * config/rs6000/rs6000.md (allocate_stack): Always use an update
7101         form instruction to update the stack back chain word, even if the
7102         user has disabled the generation of update instructions.
7103         (movdi_<mode>_update_stack): New.
7104         (movsi_update_stack): Likewise.
7105         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
7106         always use an update form instruction to update the stack back
7107         chain word.
7108
7109 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
7110
7111         PR middle-end/38953
7112         * graphite.c (if_region_set_false_region): After moving a region in
7113         the false branch of a condition, remove the empty dummy basic block.
7114         (gloog): Remove wrong fix for PR38953.
7115
7116 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7117
7118         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
7119         generation due to implicit sign extension.
7120
7121 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
7122
7123         PR middle-end/38981
7124         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
7125         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
7126
7127 2009-02-09  Richard Guenther  <rguenther@suse.de>
7128
7129         PR middle-end/35202
7130         * convert.c (convert_to_real): Disable (float)fn((double)x)
7131         to fnf(x) conversion if errno differences may occur and
7132         -fmath-errno is set.
7133
7134 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
7135
7136         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
7137         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7138         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7139
7140 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
7141
7142         PR c/35434
7143         * c-common.c (handle_alias_attribute): Disallow attribute for
7144         anything not a FUNCTION_DECL or VAR_DECL.
7145
7146 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
7147
7148         PR c/39035
7149         * real.c (do_compare): Special-case compare of zero against
7150         decimal float value.
7151
7152 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
7153
7154         PR c/36432
7155         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
7156         as indicating flexible array members unless the field itself is
7157         being declarared as the incomplete array.
7158
7159 2009-02-06  Jan Hubicka  <jh@suse.cz>
7160
7161         PR tree-optimization/38844
7162         * ipa-inline.c (try_inline): Stop inlining recursion when edge
7163         is already inlined.
7164
7165 2009-02-06  Richard Guenther  <rguenther@suse.de>
7166
7167         PR middle-end/38977
7168         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
7169         fork because we may expand it as __gcov_fork.
7170
7171 2009-02-06  Nick Clifton  <nickc@redhat.com>
7172
7173         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
7174
7175 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
7176
7177         PR tree-optimization/35659
7178         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
7179         vn_phi_eq): Shortcut if hashcode does not match.
7180         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
7181         NULL operands.
7182         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
7183         and avoid iterative_hash_expr.
7184         (FOR_EACH_VALUE_ID_IN_SET): New.
7185         (value_id_compare): Remove.
7186         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
7187         sort expressions by value id.
7188
7189 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7190
7191         PR target/38991
7192         * config/sh/predicates.md (general_movsrc_operand): Don't check
7193         the subreg of system registers here.
7194
7195 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
7196
7197         PR c++/39106
7198         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
7199         on the copied decl.
7200
7201 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
7202
7203         PR rtl-optimization/39110
7204         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
7205         addresses, not aligned ones.
7206
7207 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
7208             Richard Guenther  <rguenther@suse.de>
7209
7210         PR tree-optimization/39100
7211         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
7212         comment says and add edges.
7213
7214 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
7215
7216         PR c/35435
7217         * c-common.c (handle_tls_model_attribute): Ignore attribute for
7218         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
7219
7220 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
7221
7222         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
7223         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
7224         register_bb_in_sese, new_sese, free_sese): Moved.
7225         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
7226         outermost_loop_in_scop, build_scop_iteration_domain,
7227         expand_scalar_variables_ssa_name, get_vdef_before_scop,
7228         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
7229         Use loop_in_sese_p instead of loop_in_scop_p.
7230         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
7231         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
7232         (scopdet_basic_block_info): Fix bug in scop detection.
7233         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
7234         eq_loop_to_cloog_loop): Remove.
7235         (nb_loops_around_loop_in_scop, nb_loop
7236         ref_nb_loops): Moved here...
7237         * graphite.h (ref_nb_loops): ... from here.
7238         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
7239         (loop_domain_dim, loop_iteration_vector_dim): Remove.
7240         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
7241         * testsuite/gcc.dg/graphite/scop-19.c: New
7242
7243 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
7244             Hans-Peter Nilsson  <hp@axis.com>
7245
7246         PR rtl-optimization/37889
7247         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
7248         Move offset handling from PLUS to before the switch.  Use new
7249         arguments when considering SYMBOL_REFs too.
7250         (rtx_addr_can_trap_p): Pass dummy offset and size.
7251         (enum may_trap_p_flags): Remove.
7252         (may_trap_p_1): Pass size from MEM_SIZE.
7253
7254         PR rtl-optimization/38921
7255         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
7256         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
7257         * rtlanal.c (may_trap_after_code_motion_p): Delete.
7258         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
7259
7260 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
7261
7262         AVX Programming Reference (January, 2009)
7263         * config/i386/sse.md (*vpclmulqdq): New.
7264
7265 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
7266
7267         PR tree-optimization/38977
7268         PR gcov-profile/38292
7269         * calls.c (special_function_p): Disregard __builtin_ prefix.
7270
7271 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
7272
7273         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
7274         non-indexable addresses even before reload.
7275
7276 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
7277
7278         PR c/29129
7279         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
7280         as having variable size.  Do not give an error for unnamed
7281         parameters with [*] declarators.  Give a warning for type names
7282         with [*] declarators and mark them as variable size.
7283         * c-parser.c (c_parser_sizeof_expression): Do not give an error
7284         for sizeof applied to [*] type names.
7285
7286 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7287
7288         PR C++/36607
7289         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
7290
7291 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
7292
7293         * gcc.c (process_command): Update copyright notice dates.
7294         * gcov.c (print_version): Likewise.
7295         * gcov-dump.c (print_version): Likewise.
7296         * mips-tfile.c (main): Likewise.
7297         * mips-tdump.c (main): Likewise.
7298
7299 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
7300
7301         PR c/35433
7302         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
7303         for composite type involving a zero-length array type.
7304
7305 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
7306
7307         PR target/35318
7308         * function.c (match_asm_constraints_1): Skip over
7309         initial optional % in the constraint.
7310
7311         PR inline-asm/39059
7312         * c-parser.c (c_parser_postfix_expression): If fixed point is not
7313         supported, don't accept FIXED_CSTs.
7314         * c-decl.c (finish_declspecs): Error if fixed point is not supported
7315         and _Sat is used without _Fract/_Accum.  Set specs->type to
7316         integer_type_node for cts_fract/cts_accum if fixed point is not
7317         supported.
7318
7319 2009-02-02  Catherine Moore  <clm@codesourcery.com>
7320
7321         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
7322
7323 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7324
7325         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
7326         (ABI_HAS_64BIT_SYMBOLS): Use it.
7327         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
7328
7329 2009-02-02  Paul Brook  <paul@codesourcery.com>
7330
7331         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
7332
7333 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
7334
7335         PR inline-asm/39058
7336         * recog.h (asm_operand_ok): Add constraints argument.
7337         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
7338         recurse on matching constraint.
7339         (check_asm_operands): Pass constraints as 3rd argument to
7340         asm_operand_ok.  Don't look up matching constraint here.
7341         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
7342         to asm_operand_ok.
7343
7344 2009-02-02  Ben Elliston  <bje@au.ibm.com>
7345
7346         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
7347         TARGET_NARROW_VOLATILE_BITFIELD macro names.
7348
7349 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7350
7351         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
7352         information.  Remove some obsolete information.  Reorganize.
7353
7354         * config/pa/fptr.c: Revert license to GPL 2.
7355         * config/pa/milli64.S: Likewise.
7356
7357 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
7358
7359         PR target/38904
7360         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
7361         LIBRARY name in, instead of hard-coding it.
7362         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
7363         extra target make frag to tmake_files according to EH model.
7364         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
7365         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
7366         frags that define makefile variable EH_MODEL appropriately.
7367         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
7368         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
7369         to "-sjlj" according to type of EH configured.
7370         (LIBGCC_SONAME):  Concatenate it to shared library base name.
7371         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
7372         to "_sjlj" according to type of EH configured.
7373         (LIBGCC_SONAME):  Concatenate it to shared library base name.
7374         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
7375         (SHLIB_LINK):  Add missing semicolon to if-else construct.
7376         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
7377         string value of "pe_dll" command-line option.
7378         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
7379         (SHLIB_SONAME):  Use it when overriding t-cygming default.
7380         (SHLIB_IMPLIB):  Override t-cygming default.
7381         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
7382         string value of "pe_dll" command-line option.
7383
7384 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
7385
7386         PR target/38952
7387         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
7388         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
7389
7390 2009-01-31  Richard Guenther  <rguenther@suse.de>
7391
7392         PR tree-optimization/38937
7393         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
7394         computing the transitive closure.
7395
7396 2009-01-30  Richard Guenther  <rguenther@suse.de>
7397
7398         PR tree-optimization/39041
7399         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
7400         Propagate variable indices only if the types match for this stmt.
7401
7402 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR target/39013
7405         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
7406         inline but never defined.
7407
7408 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
7409
7410         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
7411         (*insv_h_di_reg_extimm): New insn.
7412         (*insv_l<mode>_reg_extimm): New insn.
7413
7414 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7415
7416         * config/picochip/picochip.c (flag_conserve_stack): set
7417         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
7418         fconserve-stack. Reduce call-overhead used by inliner.
7419
7420 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7421
7422         PR/38157
7423         * common.opt (flag_conserve_stack): Initialised to zero.
7424
7425 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
7426
7427         PR/39002
7428         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
7429         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
7430         method.
7431
7432 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
7433
7434         * ira-color.c (allocno_reload_assign): Update comments.
7435         * regmove.c (regmove_optimize): Likewise.
7436
7437         * ra.h: Removed.
7438
7439 2009-01-29  Robert Millan  <rmh@aybabtu.com>
7440
7441         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
7442         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
7443         `MD_UNWIND_SUPPORT'.
7444         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
7445
7446 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
7447
7448         PR tree-optimization/39007
7449         * tree-loop-distribution.c (generate_builtin): Use
7450         recompute_dominator to compute the immediate dominator of the
7451         basic block just after the loop.
7452
7453 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7454
7455         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
7456         (ASM_OUTPUT_DWARF_PCREL): Define.
7457
7458 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
7459
7460         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
7461         * doc/passes.texi: Remove entries about regclass, local-alloc, and
7462         global.  Modify entries about regmove and IRA.
7463
7464         * ra-conflict.c: Remove the file.
7465
7466         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
7467
7468         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
7469         (pass_regclass_init): Rename to pass_reginfo_init.
7470
7471         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
7472
7473         * toplev.h (flag_ira): Remove.
7474
7475         * caller-save.c (setup_save_areas): Remove flag_ira.
7476
7477         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
7478
7479         * global.c: Remove the file.
7480
7481         * opts.c (decode_options): Remove flag_ira.
7482
7483         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
7484
7485         * regmove.c: Modify file description.
7486         (find_use_as_address, try_auto_increment): Define them only if
7487         AUTO_INC_DEC is defined.
7488         (replacement_quality, replace_in_call_usage, fixup_match_1,
7489         stable_and_no_regs_but_for_p): Remove.
7490         (reg_set_in_bb): Make it static.
7491         (regmove_optimize): Remove flag_ira and code which worked for
7492         !flag_ira.
7493
7494         * local-alloc.c: Remove the file.
7495
7496         * common.opt (fira): Remove.
7497
7498         * ira.c: Include except.h.
7499         (eliminable_regset): Move from global.c.
7500         (mark_elimination): Ditto.  Remove flag_ira.
7501         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
7502         equiv_mem_modified, validate_equiv_mem_from_store,
7503         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
7504         contains_replace_regs, memref_referenced_p, memref_used_between_p,
7505         no_equiv, recorded_label_ref): Move from local-alloc.c.
7506         (update_equiv_regs): Ditto.  Make it static.
7507         (print_insn_chain, print_insn_chains): Move it from global.c.
7508         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
7509         (build_insn_chain): Ditto.  Make it static.
7510         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
7511         Rename to init_live_subregs.
7512         (gate_ira): Remove flag_ira.
7513
7514         * regclass.c: Rename reginfo.c.  Change file description.
7515         (FORBIDDEN_INC_DEC_CLASSES): Remove.
7516         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
7517         (init_reg_sets_1): Remove code for evaluation of
7518         reg_class_superclasses and losing_caller_save_reg_set.
7519         (init_regs): Remove init_reg_autoinc.
7520         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
7521         ok_for_base_p_nonstrict): Remove.
7522         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
7523         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
7524         corresponding entries.
7525         (dump_regclass, record_operand_costs, scan_one_insn,
7526         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
7527         record_address_regs, auto_inc_dec_reg_p): Remove.
7528         (gt-regclass.h): Rename to gt-reginfo.h.
7529
7530         * rtl.h (dump_global_regs, retry_global_alloc,
7531         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
7532
7533         * Makefile.in (RA_H): Remove.
7534         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
7535         Rename regclass.o to reginfo.o.
7536         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
7537         gt-reginfo.h.
7538         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
7539         (GTFILES): Rename regclass.c to reginfo.c.
7540
7541         * passes.c (init_optimization_passes): Remove pass_local_alloc and
7542         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
7543
7544         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7545         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
7546         Remove flag_ira.
7547         (finish_spills): Ditto.  Remove code for !flag_ira.
7548
7549 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
7550
7551         PR middle-end/35854
7552         * doc/invoke.texi (rtl debug options): Complete rewrite.
7553         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
7554         to auto_inc_dec".
7555         * mode-switching.c (pass_mode_switching): Rename pass from
7556         "mode-sw" to "mode_sw".
7557         * except.c (pass_convert_to_eh_ranges): Rename pass from
7558         "eh-ranges" to "eh_ranges".
7559         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
7560         to "subreg1".
7561
7562
7563 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
7564             Alexander Monakov  <amonakov@ispras.ru>
7565
7566         PR middle-end/38857
7567         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
7568         register.
7569         (move_exprs_to_boundary): Change return type and pass through
7570         should_move from move_op.  Relax assert.  Update usage ...
7571         (schedule_expr_on_boundary): ... here.  Use should_move instead of
7572         cant_move.
7573         (move_op_orig_expr_found): Indicate that insn was disconnected from
7574         stream.
7575         (code_motion_process_successors): Do not call after_merge_succs
7576         callback if original expression was not found when traversing any of
7577         the branches.
7578         (code_motion_path_driver): Change return type.  Update prototype.
7579         (move_op): Update comment.  Add a new parameter (should_move).  Update
7580         prototype.  Set *should_move based on indication provided by
7581         move_op_orig_expr_found.
7582
7583 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
7584
7585         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
7586         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
7587         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
7588         * config/rs6000/rs6000.c (rs6000_override_options): Default
7589         avoid-indexed-addresses on for Power6, off for everything else.
7590         (avoiding_indexed_address_p): New function.
7591         (rs6000_legitimize_address): Use it.
7592         (rs6000_legitimate_address): Likewise.
7593         * config/rs6000/rs6000.md (movXX_updateX): Likewise
7594
7595 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
7596
7597         PR tree-optimization/38997
7598         * tree-loop-distribution.c (generate_memset_zero): Use
7599         POINTER_PLUS_EXPR for a pointer addition.
7600
7601 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
7602
7603         * config/s390/s390.md (bswap<mode>2): New pattern added.
7604
7605 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7606
7607         * config/s390/s390.md (*tls_load_31): Added type attribute.
7608
7609 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7610
7611         * config/s390/s390.md: Fix a few comments.
7612
7613 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7614
7615         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
7616         (*tm<mode>_full): Fixed z10prop attribute.
7617         (*tst<mode>_extimm): Fixed z10prop attribute.
7618         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
7619         (*tstqiCCT_cconly): Fixed z10prop attribute.
7620         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
7621         (*movsi_larl): Fixed z10prop attribute.
7622         (*movsi_zarch): Fixed z10prop attribute.
7623         (*movsi_eas): Fixed z10prop attribute.
7624         (*movhi): Fixed z10prop attribute.
7625         (*movqi): Fixed z10prop attribute.
7626         (*movstrictqi): Fixed z10prop attribute.
7627         (*mov<mode>): Fixed z10prop attribute.
7628         (*movcc): Fixed z10prop attribute.
7629         (*sethighpartdi_64): Fixed z10prop attribute.
7630         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
7631         (*negdi2_sign_cc): Fixed z10prop attribute.
7632         (*negdi2_sign): Fixed z10prop attribute.
7633         (*absdi2_sign_cc): Fixed z10prop attribute.
7634         (*absdi2_sign): Fixed z10prop attribute.
7635         (*negabsdi2_sign_cc): Fixed z10prop attribute.
7636         (*negabsdi2_sign): Fixed z10prop attribute.
7637         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
7638         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
7639         (doloop_si64): Fixed z10prop attribute.
7640         (doloop_si31): Fixed z10prop attribute.
7641         (doloop_long): Fixed z10prop attribute.
7642         (indirect_jump): Fixed z10prop attribute.
7643         (nop): Fixed z10prop attribute.
7644         (main_base_64): Fixed z10prop attribute.
7645         (reload_base_64): Fixed z10prop attribute.
7646
7647 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
7648
7649         PR rtl-optimization/38740
7650         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
7651         if !optimize.
7652         * config/mips/mips.c (mips_reorg): Likewise.
7653
7654 2009-01-28  Richard Guenther  <rguenther@suse.de>
7655
7656         PR tree-optimization/38926
7657         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
7658         with the correct value id to a value.
7659         (do_regular_insertion): Use the value number of edoubleprime
7660         for the value number of the expr.
7661
7662         Revert
7663         2008-08-21  Richard Guenther  <rguenther@suse.de>
7664
7665         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7666         a PHI ask VN if it is already available.
7667         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7668         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7669
7670 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
7671
7672         PR middle-end/38934
7673         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
7674         set to varying whenever max has TREE_OVERFLOW set, similarly
7675         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
7676
7677 2009-01-28  Richard Guenther  <rguenther@suse.de>
7678
7679         PR middle-end/38908
7680         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
7681         uninitialized aggregate uses in call arguments.
7682
7683 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
7684
7685         PR tree-optimization/38984
7686         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
7687         the nothing_id variable if -fno-delete-null-pointer-checks.
7688
7689 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
7690
7691         PR target/38988
7692         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
7693         (set_got_offset_rex64): Ditto.
7694
7695 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
7696
7697         PR target/38941
7698         * doc/extend.texi: Improve local variable with asm reg.
7699
7700 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
7701
7702         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
7703         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
7704         was not supplied then set warn_packed_bitfield_compat to the
7705         default value of 1.
7706         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
7707         against 1.
7708
7709 2009-01-27  Richard Guenther  <rguenther@suse.de>
7710
7711         PR tree-optimization/38503
7712         * cfgexpand.c (expand_gimple_basic_block): Ignore
7713         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
7714         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
7715         variables that cannot have TBAA applied.
7716         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
7717         statements.
7718
7719 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
7720
7721         PR middle-end/38969
7722         * calls.c (initialize_argument_information): Do not wrap complex
7723         arguments in SAVE_EXPR.
7724
7725 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
7726
7727         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
7728         (INSTALL_LIBGCC): Revert typo commit.
7729
7730 2009-01-26  Richard Guenther  <rguenther@suse.de>
7731
7732         PR tree-optimization/38745
7733         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
7734         from special handling.
7735
7736 2009-01-26  Richard Guenther  <rguenther@suse.de>
7737
7738         PR tree-optimization/38745
7739         * tree-ssa.c (execute_update_addresses_taken): Do not include
7740         variables that cannot possibly be a register in not_reg_needs.
7741         Do not clear TREE_ADDRESSABLE on vars that may not become
7742         registers.
7743         * tree-ssa.c (update_alias_info_1): Include those in the set
7744         of addressable vars.
7745
7746 2009-01-26  Richard Guenther  <rguenther@suse.de>
7747
7748         PR middle-end/38851
7749         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
7750         * tree-ssa-dse.c: Include langhooks.h
7751         (execute_simple_dse): Remove stores with zero size.
7752
7753 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
7754
7755         PR c/38957
7756         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
7757         as PLUS_EXPR.
7758
7759 2009-01-24  Julian Brown  <julian@codesourcery.com>
7760
7761         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
7762         config/arm/linux-atomic.c.
7763         * config/arm/linux-atomic.c: New.
7764
7765 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
7766
7767         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
7768         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
7769         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
7770
7771 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7772
7773         PR c/38938
7774         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
7775         properly.
7776
7777 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
7778
7779         PR tree-optimization/38953
7780         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
7781         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
7782         (gloog): Split the exit of the scop when the scop exit is a loop exit.
7783         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
7784         changed the CFG.
7785
7786 2009-01-24  Paul Brook  <paul@codesourcery.com>
7787
7788         * config/arm/neon.md (neon_type): Move to arm.md.
7789         (neon_mov<VSTRUCT>): Add neon_type attribute.
7790         * config/arm/arm.md (neon_type): Move to here.
7791         (conds): Add "unconditioal" and use as default for NEON insns.
7792
7793 2009-01-24  Ben Elliston  <bje@au.ibm.com>
7794
7795         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
7796         void *' warning from -Wc++-compat.
7797         * Makefile.in (dominance.o-warn): Remove.
7798
7799 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
7800
7801         PR tree-optimization/38932
7802         * fold-const.c (fold_unary_ignore_overflow): New.
7803         * tree.h (fold_unary_ignore_overflow): Declare.
7804         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
7805         * tree-ssa-sccvn.c (visit_reference_op_load,
7806         simplify_unary_expression): Likewise.
7807
7808 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
7809
7810         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
7811         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
7812         regardless of their type.
7813         * c-common.c (handle_packed_attribute): Don't ignore packed on
7814         bitfields.
7815         * c.opt (Wpacked-bitfield-compat): New warning option.
7816         * stor-layout.c (place_field): Warn if offset of a field changed.
7817         * doc/extend.texi (packed): Mention the ABI change.
7818         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
7819         (Warning Options): Add it to the list.
7820
7821 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
7822
7823         * c-opts.c (c_common_post_options): Fix a typo in comments.
7824
7825 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
7826
7827         PR middle-end/38615
7828         * gimplify.c (gimplify_init_constructor): Fix promotion of const
7829         variables to static.
7830         * doc/invoke.texi (-fmerge-all-constants): Update description.
7831
7832 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
7833
7834         PR target/38931
7835         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
7836         (*movdi_1_rex64): Use type "mmx" for alternative 5.
7837
7838 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
7839
7840         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
7841         a word boundary.
7842         (LOCAL_ALIGNMENT): Similarly.
7843
7844 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
7845             Joseph Myers  <joseph@codesourcery.com>
7846
7847         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
7848         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
7849         * config/arm/arm-tune.md: Regenerate.
7850         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
7851         -march=iwmmxt2.
7852
7853 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
7854
7855         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
7856         version number to five.
7857
7858 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
7859
7860         PR c++/38930
7861         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
7862         * c-common.c (set_underlying_type): Likewise.
7863         (is_typedef_decl ): Likewise
7864         * tree.h: Likewise
7865         (set_underlying_type): Likewise.
7866         (is_typedef_type): Likewise.
7867
7868 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
7869
7870         PR middle-end/38587
7871         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
7872         crossing setjmps.
7873
7874 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7875
7876         PR bootstrap/37660
7877         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
7878         (LIBGCC_SPEC):  Don't define.
7879         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
7880
7881 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
7882
7883         PR rtl-optimization/38879
7884         * alias.c (base_alias_check): Unaligned access via AND address can
7885         alias all surrounding object types except those with sizes equal
7886         or wider than the size of unaligned access.
7887
7888 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
7889
7890         PR c++/26693
7891         * c-decl.c (clone_underlying_type): Move this ...
7892         * c-common.c (set_underlying_type): ... here.
7893         Also, make sure the function properly sets TYPE_STUB_DECL() on
7894         the newly created typedef variant type.
7895         (is_typedef_decl ): New entry point.
7896         * tree.h: Added a new member member_types_needing_access_check to
7897         struct tree_decl_non_common.
7898         (set_underlying_type): New entry point.
7899         (is_typedef_type): Likewise.
7900
7901 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
7902
7903         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
7904         Check whether two instructions have memory references that
7905         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
7906         are helper functions for traversing.
7907         * alias.h (insn_alias_sets_confilict_p): New prototypes.
7908         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
7909         not to draw dependency edge for instructions with non-conflicting
7910         alias sets.
7911
7912 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
7913
7914         PR other/38758
7915         * longlong.h: Update copyright years.  Use soft-fp license notice.
7916         Sync __clz_tab declaration with glibc.
7917
7918 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
7919
7920         PR target/30687
7921         * doc/extend.texi (syscall_linkage): New.
7922         (version_id): Modify.
7923
7924 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7925             Richard Guenther  <rguenther@suse.de>
7926
7927         PR tree-optimization/38747
7928         PR tree-optimization/38748
7929         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
7930         conversion if the base address is an indirect reference and the
7931         aliasing sets could cause issues.
7932
7933 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
7934
7935         * common.opt (fgraphite, fgraphite-identity): Add comment for
7936         explaining why these options are not documented.
7937
7938 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
7939
7940         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
7941         gimple_call_lhs is NULL.
7942
7943 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
7944
7945         PR target/38868
7946         * emit-rtl.c (adjust_address_1): Make sure memref is never
7947         overwritten.
7948
7949 2009-01-20  Ben Elliston  <bje@au.ibm.com>
7950
7951         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
7952         const qualifier from arg parameter. Remove unnecessary cast to char *.
7953         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
7954         const qualifier from arg 2.
7955
7956 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7957
7958         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
7959
7960 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
7961
7962         PR c/38869
7963         * rtl.h (reinit_regs): New prototype.
7964         * regclass.c: Include ira.h.
7965         (reinit_regs): New.
7966         * Makefile.in (regclass.o): Add ira.h.
7967         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
7968
7969 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
7970
7971         PR target/38736
7972         * c-common.c (handle_aligned_attribute): Use
7973         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
7974         default alignment value.
7975
7976         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
7977
7978         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
7979         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
7980
7981         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
7982         __BIGGEST_ALIGNMENT__.
7983
7984         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
7985
7986 2009-01-18  Richard Guenther  <rguenther@suse.de>
7987
7988         PR tree-optimization/38819
7989         * tree-flow.h (operation_could_trap_helper_p): Declare.
7990         * tree-eh.c (operation_could_trap_helper_p): Export.
7991         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
7992         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
7993         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
7994         are about to insert a possibly trapping instruction and fail
7995         in this case.
7996
7997 2009-01-18  Andreas Schwab  <schwab@suse.de>
7998
7999         * doc/install.texi (Configuration): Remove obsolete paragraph
8000         about use of --with-gnu-ld with --with-gnu-as.
8001
8002 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
8003
8004         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
8005         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
8006         Follow spelling conventions.
8007
8008 2009-01-18  Ben Elliston  <bje@au.ibm.com>
8009
8010         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
8011         C++ warning about implicit conversion from void * to struct
8012         bitmap_head_def *.
8013         (bitmap_obstack_free): Likewise for bitmap_element *.
8014         * Makefile.in (bitmap.o-warn): Remove.
8015
8016 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
8017
8018         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
8019
8020 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
8021             Tobias Grosser  <tobi.grosser@amd.com>
8022
8023         * graphite.c (graphite_trans_scop_block): Do not block single
8024         nested loops.
8025
8026 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
8027
8028         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
8029         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
8030         test with assertion.
8031
8032 2009-01-16  Richard Guenther  <rguenther@suse.de>
8033
8034         PR tree-optimization/38835
8035         PR middle-end/36227
8036         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
8037         and INT + PTR -> (INT)(PTR p+ INT) folding.
8038         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
8039
8040 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
8041
8042         PR target/38554
8043         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
8044         the subreg from a lowpart subreg if it is also casting the value.
8045
8046 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8047             Tobias Grosser  <tobi.grosser@amd.com>
8048
8049         * graphite.c (compare_prefix_loops): New.
8050         (build_scop_canonical_schedules): Rewritten.
8051         (graphite_transform_loops): Move build_scop_canonical_schedules
8052         after build_scop_iteration_domain.
8053
8054 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8055             Tobias Grosser  <tobi.grosser@amd.com>
8056
8057         * graphite.c (add_conditions_to_domain): Add the loops to
8058         the dimension of the iteration domain.  Do copy the domain
8059         only when it exists.
8060         (build_scop_conditions_1): Do not call add_conditions_to_domain.
8061         (add_conditions_to_constraints): New.
8062         (can_generate_code_stmt, can_generate_code): Removed.
8063         (gloog): Do not call can_generate_code.
8064         (graphite_transform_loops): Call add_conditions_to_constraints
8065         after building the iteration domain.
8066
8067 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
8068
8069         PR tree-optimization/38789
8070         * tree-ssa-threadedge.c
8071         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8072         __builtin_constant_p.
8073
8074 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
8075
8076         * dce.c (delete_unmarked_insns): Reversed the order that insns are
8077         examined before deleting them.
8078
8079 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
8080
8081         * function.c (aggregate_value_p): Correctly extract the function
8082         type from CALL_EXPR_FN lookup.
8083
8084 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8085
8086         * config/picochip/picochip.c (picochip_override_options): Revert
8087         CFI asm flag disable commited previously.
8088
8089 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
8090             Tobias Grosser  <tobi.grosser@amd.com>
8091             Jan Sjodin  <jan.sjodin@amd.com>
8092
8093         * graphite.c (scan_tree_for_params): On substractions negate
8094         all the coefficients of the term.
8095         (clast_to_gcc_expression_red): New.  Handle reduction expressions
8096         of more than two operands.
8097         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
8098         (get_vdef_before_scop): Handle also the case of default definitions.
8099
8100 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
8101
8102         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
8103         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
8104         Also use them when walking CALL_INSN_FUNCTION_USAGE.
8105
8106 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
8107             Joey Ye  <joey.ye@intel.com>
8108
8109         PR middle-end/37843
8110         * cfgexpand.c (expand_stack_alignment): Don't update stack
8111         boundary nor check incoming stack boundary here.
8112         (gimple_expand_cfg): Update stack boundary and check incoming
8113         stack boundary here.
8114
8115 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
8116
8117         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
8118
8119 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
8120
8121         PR rtl-optimization/38245
8122         * calls.c (expand_call): Add stack arguments to
8123         CALL_INSN_FUNCTION_USAGE even for pure calls (when
8124         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
8125         in regs and partially in memory or BLKmode arguments.
8126         (emit_library_call_value_1): Add stack arguments to
8127         CALL_INSN_FUNCTION_USAGE even for pure calls (when
8128         ACCUMULATE_OUTGOING_ARGS).
8129         * dce.c: Include tm_p.h.
8130         (find_call_stack_args): New function.
8131         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
8132         argument.
8133         (mark_insn): Call find_call_stack_args for CALL_Ps.
8134         (prescan_insns_for_dce): Walk insns backwards in bb rather than
8135         forwards.  Allocate and free arg_stores bitmap if needed, pass it
8136         down to deletable_insn_p, don't mark stores set in arg_stores
8137         bitmap, clear the bitmap at the beginning of each bb.
8138         * Makefile.in (dce.o): Depend on $(TM_P_H).
8139
8140 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
8141
8142         PR target/22599
8143         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
8144         to make sure the insn is a conditional test (bug 22599).  Reformat a
8145         few long lines.
8146
8147 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
8148
8149         PR middle-end/38431
8150         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
8151         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
8152         (gloog): Do not call cleanup_tree_cfg.
8153         (graphite_transform_loops): Call cleanup_tree_cfg after all
8154         scops have been code generated.
8155
8156 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
8157         * doc/gty.texi (Invoking the garbage collector): Added new node
8158         and section documenting ggc_collect.
8159
8160 2009-01-14  Richard Guenther  <rguenther@suse.de>
8161
8162         PR tree-optimization/38826
8163         PR middle-end/38477
8164         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
8165         initialization notes only if we actually emitted a warning.
8166         (intra_create_variable_infos): Add constraints for a result decl
8167         that is passed by hidden reference.
8168         (build_pred_graph): Mark all related variables non-direct on
8169         address-taking.
8170
8171 2009-01-14  Nick Clifton  <nickc@redhat.com>
8172
8173         * ira-conflicts.c: Include addresses.h for the definition of
8174         base_reg_class.
8175         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
8176         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
8177
8178 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
8179
8180         PR target/38811
8181         * Makefile.in (ira-lives.o): Add except.h.
8182
8183         * ira-lives.c: Include except.h.
8184         (process_bb_node_lives): Process can_throw_internal.
8185
8186 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
8187
8188         PR rtl-optimization/38774
8189         * combine.c (simplify_set): When undoing cc_use change, don't do
8190         PUT_CODE on the newly created comparison, but instead put back the
8191         old comparison.
8192
8193 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
8194
8195         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
8196         values.  Remove duplicate arm8 entry.
8197
8198 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
8199
8200         PR tree-optimization/38786
8201         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
8202         the SSA_NAME case of expand_scalar_variables_expr.
8203         Set the type of an expression to the type of its assign statement.
8204         (expand_scalar_variables_expr): Also gather the scalar computation
8205         used to index the memory access.  Do not pass loop_p.
8206         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
8207         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8208         the gimple_stmt_iterator where it inserts new code.
8209         Do not pass loop_p.
8210         (copy_bb_and_scalar_dependences): Do not pass loop_p.
8211         (translate_clast): Update call to copy_bb_and_scalar_dependences.
8212
8213 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
8214
8215         * graphite.h (debug_value): Removed.
8216         * graphite.c (debug_value): Removed.
8217
8218 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
8219
8220         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
8221         ldrd/strd with two 32-bit instructions.
8222
8223 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
8224
8225         * config/arm/arm.c (struct processors): Pass for speed down into
8226         cost helper functions.
8227         (const_ok_for_op): Handle COMPARE and inequality nodes.
8228         (arm_rtx_costs_1): Rewrite.
8229         (arm_size_rtx_costs): Update prototype.
8230         (arm_rtx_costs): Pass speed down to helper functions.
8231         (arm_slowmul_rtx_costs): Rework cost calculations.
8232         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
8233         (arm_9e_rtx_costs): Likewise.
8234
8235 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
8236
8237         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
8238         relocations of local symbols wider than UNITS_PER_WORD are not valid.
8239         (alpha_legitimize_address): Do not split local symbols wider than
8240         UNITS_PER_WORD into HIGH/LO_SUM parts.
8241
8242 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
8243
8244         PR bootstrap/38580
8245         * gcc.c (process_command): Replace call to execvp with calls
8246         to pex_one and exit.
8247
8248 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
8249
8250         PR target/29141
8251         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
8252         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
8253         variant for devices with 3-byte PC.
8254         (__tablejump_elpm__): New.
8255
8256 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
8257
8258         PR c/32041
8259         * c-parser.c (c_parser_postfix_expression): Allow `->' in
8260         offsetof member-designator, handle it as `[0].'.
8261
8262 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8263
8264         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
8265         function when not using named sections on targets with named sections
8266         if branch distance is less than 262132.
8267
8268 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
8269
8270         * combine.c (combine_instructions):  Recompute
8271         optimize_this_for_speed_p  for each BB in the main combine loop.
8272
8273 2009-01-12  Tomas Bily  <tbily@suse.cz>
8274
8275         PR middlend/38385
8276         * tree-loop-distribution.c (prop_phis): New function.
8277         (generate_builtin): Call prop_phis.
8278         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
8279
8280 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
8281
8282         PR tree-optimization/38807
8283         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
8284         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
8285
8286 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
8287
8288         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
8289         subreg of op0 to the original op0.
8290
8291 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
8292
8293         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
8294
8295 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
8296
8297         PR debug/7055
8298         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
8299         starting with digits.
8300
8301 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
8302
8303         PR target/38695
8304         * config/arm/arm.c (arm_is_long_call_p): Don't call
8305         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
8306
8307 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
8308
8309         * regrename.c (regrename_optimize): Fix dumping.
8310         (find_oldest_value_reg): Preserve REG_POINTER.
8311         (copy_hardreg_forward_1): Likewise.
8312
8313 2009-01-09  Diego Novillo  <dnovillo@google.com>
8314
8315         * gimple.h (struct gimple_statement_base) <uid>: Document
8316         the restrictions on its use.
8317         (gimple_uid): Tidy.
8318         (gimple_set_uid): Tidy.
8319
8320 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8321
8322         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
8323         zero guard even if align_bytes != 0 and count is smaller than
8324         size_needed.
8325
8326 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
8327
8328         PR rtl-optimization/38495
8329         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
8330         (add_range_and_copies_from_move_list): Print all added ranges.
8331         Add ranges to memory optimized destination.
8332
8333 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8334
8335         PR target/38686
8336         PR target/38708
8337         * config/i386/i386.c (override_options): Reject
8338         -mstringop-strategy=rep_8byte with -m32.
8339         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
8340         to 1.  Do count comparison against epilogue_size_needed at compile
8341         time even when count_exp was constant forced into register.  For
8342         size_needed don't jump to epilogue, instead just avoid aligning
8343         and invoke the body algorithm.  If need_zero_guard, add zero guard
8344         even if count is non-zero, but smaller than size_needed + number of
8345         bytes that could be stored for alignment.
8346         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
8347         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
8348         but smaller than size_needed + number of bytes that could be stored
8349         for alignment.  Compare size_needed with epilogue_size_needed instead
8350         of desired_align - align, don't adjust size_needed, pass
8351         epilogue_size_needed to the epilogue expanders.
8352
8353         PR c/35742
8354         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8355
8356 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8357
8358         * pa.c (last_address): Change to unsigned.
8359         (update_total_code_bytes): Change argument to unsigned.  Don't
8360         check if insn addresses are set.
8361         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
8362         addresses are not set.
8363         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
8364
8365 2009-01-09  Nick Clifton  <nickc@redhat.com>
8366
8367         * config/sh/symbian.c: Replace uses of DECL_INLINE with
8368         DECL_DECLARED_INLINE_P.
8369
8370 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8371
8372         PR middle-end/38347
8373         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
8374         GET_MODE (op0) in operand_subword_force calls.
8375
8376         PR middle-end/38771
8377         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
8378         fold_convert arg0 operands to TREE_TYPE (op0) first.
8379
8380 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
8381
8382         * params.def (ira-max-conflict-table-size): Decrease default value
8383         to 1000.
8384
8385 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
8386
8387         PR tree-optimization/37031
8388         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
8389         on parameter_set.
8390         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
8391         allocate it using gc instead of heap, use VEC_quick_push instead of
8392         VEC_safe_push.
8393         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
8394         instead of heap, use VEC_quick_push instead of VEC_safe_push.
8395         * tree-data-ref.h (struct access_matrix): Change matrix to gc
8396         allocated vector from heap allocated.
8397         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
8398         * tree-loop-linear.c (linear_transform_loops): Allocate nest
8399         vector only after perfect_loop_nest_depth call.
8400
8401 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
8402             Jan Sjodin  <jan.sjodin@amd.com>
8403
8404         PR tree-optimization/38559
8405         * graphite.c (debug_value, copy_constraint,
8406         swap_constraint_variables, scale_constraint_variable, ): New.
8407         (get_lower_bound, get_upper_bound): Removed.
8408         (graphite_trans_bb_strip_mine): Clean up this code that works
8409         only for constant number of iterations.  Fully copy upper and
8410         lower bound constraints, not only the constant part of them.
8411         * graphite.h (debug_value): Declared.
8412
8413 2009-01-08  Ira Rosen  <irar@il.ibm.com>
8414
8415         PR tree-optimization/37194
8416         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
8417         Don't add the cost of cost model guard in prologue to scalar
8418         outside cost in case of known number of iterations.
8419
8420 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8421             Alan Modra  <amodra@bigpond.net.au>
8422
8423         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
8424         non-word-aligned REG+CONST addressing.
8425
8426 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8427
8428         PR target/38706
8429         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
8430         free_after_compilation when outputting a thunk.
8431         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
8432         Do not call free_after_compilation here.
8433
8434 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8435
8436         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
8437         (ix86_valid_target_attribute_inner_p): Ditto.
8438
8439 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
8440
8441         PR tree-optimization/38492
8442         PR tree-optimization/38498
8443         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
8444         * tree-chrec.h (scev_is_linear_expression): Declared.
8445         * graphite.c (graphite_cannot_represent_loop_niter): New.
8446         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
8447         (graphite_loop_normal_form): Use gcc_assert.
8448         (scan_tree_for_params): Use CASE_CONVERT.
8449         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
8450         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
8451         Use gcc_assert.  Discard scops that contain unhandled cases.
8452         (build_scop_conditions): Return a boolean status for unhandled cases.
8453         (strip_mine_profitable_p): Print the loop number, not its depth.
8454         (is_interchange_valid): Pass the depth of the loop nest, don't
8455         recompute it wrongly.
8456         (graphite_trans_bb_block): Same.
8457         (graphite_trans_bb_block): Print tentative of loop blocking.
8458         (graphite_trans_scop_block): Do not print that the loop has been
8459         blocked.
8460         (graphite_transform_loops): Do not handle scops that contain condition
8461         scalar phi nodes.
8462
8463 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
8464
8465         AVX Programming Reference (December, 2008)
8466         * config/i386/avxintrin.h (_mm256_stream_si256): New.
8467         (_mm256_stream_pd): Likewise.
8468         (_mm256_stream_ps): Likewise.
8469
8470         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
8471         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
8472         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
8473         (bdesc_special_args): Add __builtin_ia32_movntdq256,
8474         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
8475         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
8476         (ix86_expand_special_args_builtin): Likewise.
8477
8478         * config/i386/sse.md (AVXMODEDI): New.
8479         (avx_movnt<mode>): Likewise.
8480         (avx_movnt<mode>): Likewise.
8481         (<sse>_movnt<mode>): Remove AVX support.
8482         (sse2_movntv2di): Likewise.
8483
8484 2009-01-07  Richard Guenther  <rguenther@suse.de>
8485
8486         PR middle-end/38751
8487         * fold-const.c (extract_muldiv): Remove obsolete comment.
8488         (fold_plusminus_mult_expr): Undo MINUS_EXPR
8489         to PLUS_EXPR canonicalization for the canonicalization.
8490
8491 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
8492
8493         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
8494         hosted cross-compilers generating less efficient code.
8495
8496 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8497
8498         * function.h (rtl_data): Add a dbr_scheduled_p field.
8499         * reorg.c (dbr_schedule): Set it.
8500         (gate_handle_delay_slots): Check it.
8501         * config/mips/mips.c (mips_base_delayed_branch): Delete.
8502         (mips_reorg): Check flag_delayed_branch instead of
8503         mips_base_delayed_branch.
8504         (mips_override_options): Don't set mips_base_delayed_branch
8505         or flag_delayed_branch.
8506
8507 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8508
8509         PR rtl-optimization/38426.
8510         * ira.c (ira): Set current_function_is_leaf earlier.
8511
8512 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
8513
8514         PR rtl-optimization/38722
8515         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
8516         too early, only set a flag and modify after last possible
8517         undo_all point.
8518
8519 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
8520
8521         PR c/34252
8522         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
8523         * real.c (decimal_single_format): Correct values of emin and emax.
8524         (decimal_double_format): Ditto.
8525         (decimal_quad_format): Ditto.
8526         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
8527         computation of DECnn_MIN and DECnn_MAX for corrected values of
8528         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
8529         __DECnn_MIN__, and adjust its computation for the corrected value
8530         of emin.
8531
8532 2009-01-06  Jan Hubicka  <jh@suse.cz>
8533
8534         PR target/38744
8535         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
8536
8537 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
8538
8539         * doc/contrib.texi (Contributors): Slightly adjust the end note.
8540         Add Robert Clark to the list of testers.
8541
8542 2009-01-06  Jan Hubicka  <jh@suse.cz>
8543             Kai Tietz  <kai.tietz@onevision.com>
8544
8545         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
8546         * config/i386/i386.c (ix86_expand_call): Add clobbers.
8547
8548 2009-01-06  Jan Hubicka  <jh@suse.cz>
8549             Kai Tietz  <kai.tietz@onevision.com>
8550
8551         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
8552         for w64 ABI.
8553         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
8554         (ix86_nsaved_regs): Count only general purpose regs.
8555         (ix86_nsaved_sseregs): New.
8556         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
8557         to 16 for w64; compute padding and size of sse reg save area.
8558         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
8559         general purpose regs.
8560         (ix86_emit_save_sse_regs_using_mov): New.
8561         (ix86_expand_prologue): Save SSE regs if needed.
8562         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
8563         (ix86_emit_restore_sse_regs_using_mov): New.
8564         (ix86_expand_epilogue): Save SSE regs if needed.
8565
8566 2009-01-06  Jan Hubicka  <jh@suse.cz>
8567             Kai Tietz  <kai.tietz@onevision.com>
8568
8569         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
8570         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
8571         functions when accumulate outgoing args is off.
8572
8573 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8574
8575         PR bootstrap/38742
8576         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
8577         before using pseudos_have_intersected_live_ranges_p.
8578
8579         * ira-int.h (ira_assert): Always define.
8580
8581 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8582
8583         AVX Programming Reference (December, 2008)
8584         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
8585         (_mm256_permute2_pd): Likewise.
8586         (_mm_permute2_ps): Likewise.
8587         (_mm256_permute2_ps): Likewise.
8588         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
8589         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
8590
8591         * config/i386/i386.c (ix86_builtins): Remove
8592         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8593         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
8594         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
8595         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
8596         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8597         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
8598         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
8599         __builtin_ia32_vpermil2ps256.
8600         (ix86_init_mmx_sse_builtins): Updated.
8601         (ix86_expand_args_builtin): Likewise.
8602
8603 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8604
8605         * pa.c (output_call): Relocate non-jump insns in the delay slot of
8606         long absolute calls when generating PA 2.0 code.
8607
8608 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
8609
8610         PR rtl-optimization/38583
8611         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
8612
8613         * params.def (ira-max-conflict-table-size): New.
8614
8615         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
8616
8617         * ira.h (ira_conflicts_p): New external definition.
8618
8619         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
8620         table.  Report this.  Return result of building.
8621         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
8622         building conflict table.
8623
8624         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
8625         (ira_color): Use ira_conflicts_p.
8626
8627         * global.c: Include ira.h.
8628         (pseudo_for_reload_consideration_p, build_insn_chain): Use
8629         ira_conflicts_p.
8630
8631         * Makefile.in (global.o): Add ira.h.
8632
8633         * ira-build.c (mark_all_loops_for_removal,
8634         propagate_some_info_from_allocno): New.
8635         (remove_unnecessary_allocnos): Call
8636         propagate_some_info_from_allocno.
8637         (remove_low_level_allocnos): New.
8638         (remove_unnecessary_regions): Add parameter.  Call
8639         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
8640         parameter to remove_unnecessary_regions.
8641         (ira_build): Remove all regions but root if the conflict table was
8642         not built.  Update conflict hard regs for allocnos crossing calls.
8643
8644         * ira.c (ira_conflicts_p): New global.
8645         (ira): Define and use ira_conflicts_p.
8646
8647         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
8648         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
8649         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
8650
8651 2009-01-06  Ben Elliston  <bje@au.ibm.com>
8652
8653         * gengtype-lex.l (YY_NO_INPUT): Define.
8654
8655 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8656
8657         PR c/34911
8658         * c-common.c (handle_vector_size_attribute): Also reject
8659         BOOLEAN_TYPE types.
8660
8661 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
8662
8663         PR tree-optimization/38492
8664         * graphite.c (rename_map_elt, debug_rename_elt,
8665         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
8666         rename_map_elt_info, eq_rename_map_elts,
8667         get_new_name_from_old_name, bb_in_sese_p): Moved around.
8668         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
8669         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
8670         (sese_build_livein_liveouts): New.
8671         (new_sese, free_sese): New.
8672         (new_scop): Call new_sese.
8673         (free_scop): Call free_sese.
8674         (rename_variables_from_edge, rename_phis_end_scop): Removed.
8675         (register_old_new_names): Renamed register_old_and_new_names.
8676         (register_scop_liveout_renames, add_loop_exit_phis,
8677         insert_loop_close_phis, struct igp,
8678         default_liveout_before_guard, add_guard_exit_phis,
8679         insert_guard_phis, copy_renames): New.
8680         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
8681         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
8682         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
8683         (scop_adjust_phis_for_liveouts): New.
8684         (gloog): Call scop_adjust_phis_for_liveouts.
8685
8686         * graphite.h (struct sese): Documented.  Added fields liveout,
8687         num_ver and livein.
8688         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
8689         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
8690         (struct scop): Added field liveout_renames.
8691         (SCOP_LIVEOUT_RENAMES): New.
8692
8693 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
8694
8695         PR tree-optimization/38510
8696         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
8697         (translate_clast): Call recompute_all_dominators before
8698         graphite_verify.
8699         (gloog): Call recompute_all_dominators before graphite_verify.
8700
8701 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
8702             Jan Sjodin  <jan.sjodin@amd.com>
8703
8704         PR tree-optimization/38500
8705         * graphite.c (create_sese_edges): Call fix_loop_structure after
8706         splitting blocks.
8707
8708 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
8709
8710         * config.gcc: Add m32r*-*-rtems*.
8711         * config/m32r/rtems.h: New file.
8712
8713 2009-01-05  Ben Elliston  <bje@au.ibm.com>
8714
8715         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
8716         (.po.pox): Likewise.
8717         (po/gcc.pot): Likewise.
8718
8719 2009-01-04  David S. Miller  <davem@davemloft.net>
8720
8721         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
8722         (STARTING_FRAME_OFFSET): Always set to zero.
8723
8724 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
8725
8726         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
8727         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
8728         fixed-point types, and vectors of the same.
8729
8730 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
8731
8732         * config/mips/sync.md (*mb_barrier): Rename to...
8733         (*memory_barrier): ...this.
8734
8735 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
8736
8737         * doc/extend.texi (Function Attributes): Move @cindex after @item
8738         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
8739         and put in alphabetical order. Fix 'target' name and put in order.
8740         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
8741         typos.
8742
8743 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
8744
8745         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
8746         (memory_barrier): Expand as unspec instead of unspec_volatile.
8747         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8748         (*memory_barrier): Define as unspec instead of unspec_volatile.
8749         Use (match_dup 0) as input operand.
8750
8751         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
8752         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
8753         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
8754         scratch register.  Remove operand 1.
8755         (*stbar): Define as unspec instead of unspec_volatile.
8756         Use (match_dup 0) as input operand, remove (const_int 8).
8757         (*membar): Define as unspec instead of unspec_volatile.
8758         Use (match_dup 0) as input operand, remove input operand 2.
8759
8760         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
8761         (memory_barrier): Expand as unspec instead of unspec_volatile.
8762         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8763         (*memory_barrier): Define as unspec instead of unspec_volatile.
8764         Use (match_dup 0) as input operand.
8765
8766         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
8767         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8768         Set volatile flag on operand 0.
8769         (*memory_barrier): New insn pattern.
8770
8771         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
8772         insn operands.
8773         (*memory_barrier): Use (match_dup 0) as input operand.
8774
8775         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
8776         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8777         Set volatile flag on operand 0.
8778         (*mb_internal): New insn pattern.
8779
8780         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
8781
8782 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
8783
8784         PR middle-end/38586
8785         * function.c (struct temp_slot): Move to the section of the file
8786         that deals with temp slots.  Remove field 'address'.
8787         (temp_slot_address_table): New hash table of address -> temp slot.
8788         (struct temp_slot_address_entry): New struct, items for the table.
8789         (temp_slot_address_compute_hash, temp_slot_address_hash,
8790         temp_slot_address_eq, insert_temp_slot_address): Support functions
8791         for the new table.
8792         (find_temp_slot_from_address): Rewrite to use the new hash table.
8793         (remove_unused_temp_slot_addresses): Remove addresses of temp
8794         slots that have been made available.
8795         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
8796         worker function for remove_unused_temp_slot_addresses.
8797         (assign_stack_temp_for_type): Don't clear the temp slot address list.
8798         Add the temp slot address to the address -> temp slot map.
8799         (update_temp_slot_address): Update via insert_temp_slot_address.
8800         (free_temp_slots): Call remove_unused_temp_slot_addresses.
8801         (pop_temp_slots): Likewise.
8802         (init_temp_slots): Allocate the address -> temp slot map, or empty
8803         the map if it is already allocated.
8804         (prepare_function_start): Initialize temp slot processing.
8805
8806 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
8807
8808         PR middle-end/38584
8809         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
8810         Calculate the size of all stack vars assuming no packing of stack
8811         vars will happen, replacing a quadratic algorithm with a linear one.
8812
8813 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
8814
8815         PR target/38707
8816         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
8817         can't be used.
8818
8819 2009-01-03  Diego Novillo  <dnovillo@google.com>
8820
8821         * doc/contrib.texi: Update contributions.
8822
8823 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
8824
8825         PR c++/38705
8826         * builtins.c (fold_builtin_memory_op): Give up if either operand
8827         is volatile.  Set srctype or desttype to non-qualified version
8828         of the other type.
8829
8830         PR c/38700
8831         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
8832         and FUNCTION_DECLs.
8833
8834 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
8835
8836         PR rtl-optimization/35805
8837         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
8838         problem if fast dce is able to remove any instructions.
8839         * dce.c (dce_process_block): Fix dump message.
8840
8841 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
8842
8843         PR 33649
8844         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
8845
8846 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
8847
8848         PR middle-end/38690
8849         * tree-flow.h (op_code_prio, op_prio): New prototypes.
8850         * tree-pretty-print.c (op_code_prio): New function.
8851         (op_prio): No longer static.  Use op_code_prio.
8852         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
8853         Use op_prio and op_code_prio to determine if () should be
8854         printed around operand(s) or not.
8855
8856         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
8857         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
8858         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
8859         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
8860         pp_character instead of pp_string for single letter printing.
8861
8862 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
8863
8864         * doc/extend.texi: Fix '#pragma GCC option' typo.
8865
8866 2009-01-02  Richard Guenther  <rguenther@suse.de>
8867
8868         * doc/install.texi (--enable-checking): Mention different
8869         default for stage1.
8870         (--enable-stage1-checking): Document.
8871
8872 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
8873
8874         PR middle-end/30142
8875         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
8876         case to be an error.
8877
8878 2009-01-02  Ben Elliston  <bje@au.ibm.com>
8879
8880         * config/fp-bit.h (pack_d): Constify argument.
8881         * config/fp-bit.c (makenan): Constify return type. Remove casts.
8882         (isnan): Constify argument.
8883         (isinf): Likewise.
8884         (iszero): Likewise.
8885         (pack_d): Likewise.
8886         (_fpadd_parts): Constify return type.
8887         (_fpmul_parts): Likewise.
8888         (_fpdiv_parts): Likewise.
8889
8890 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR c/36489
8893         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
8894         warn about overwriting initializer with side-effects or
8895         -Woverride-init if !IMPLICIT.
8896         (output_init_element): Likewise.  Pass IMPLICIT down to
8897         add_pending_init.
8898         (process_init_element): Add IMPLICIT argument.  Pass it down
8899         to output_init_element.
8900         (push_init_element, pop_init_level, set_designator): Adjust
8901         process_init_element callers.
8902         (set_nonincremental_init, set_nonincremental_init_from_string):
8903         Adjust add_pending_init callers.
8904         (output_pending_init_elements): Adjust output_init_element callers.
8905         * c-tree.h (process_init_element): Adjust prototype.
8906         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
8907         process_init_element callers.
8908
8909 \f
8910 Copyright (C) 2009 Free Software Foundation, Inc.
8911
8912 Copying and distribution of this file, with or without modification,
8913 are permitted in any medium without royalty provided the copyright
8914 notice and this notice are preserved.