OSDN Git Service

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