OSDN Git Service

2009-04-30 Rafael Avila de Espindola <espindola@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2
3         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4         instead of an int.
5         * bitmap.c (bitmap_descriptor): Likewise.
6         * ggc-common.c (loc_descriptor): Likewise.
7         * varray.c (varray_descriptor): Likewise.
8         * vec.c (vec_descriptor): Likewise.
9
10 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
11
12         * Makefile.in (dce.o): Add $(EXCEPT_H).
13         * dce.c: Include except.h and delete redundant vector definitions.
14         (deletable_insn_p): Return false for non-call insns that can throw
15         if DF is running.
16
17 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
18
19         * gcse.c (ae_gen): Remove.
20         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
21         and make non-static function to make it available in store-motion.c.
22         Update call sites with search-and-replace.
23         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
24         extract_mentioned_regs, extract_mentioned_regs_helper,
25         find_moveable_store, compute_store_table, load_kills_store, find_loads,
26         store_killed_in_insn, store_killed_after, store_killed_before,
27         build_store_vectors, insert_insn_start_basic_block, insert-store,
28         remove_reachable_equiv_notes, replace_store_insn, delete_store,
29         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
30         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
31         * store-motion.c: ...new file.  Also copy data structures from gcse.c
32         and clean up to remove parts not used by store motion.
33         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
34         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
35
36 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37
38         PR target/38571
39         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
40         when optimizing for size.
41
42 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
43
44         * gcse.c (gcse_constant_p): Fix typo in last change.
45
46 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
47
48         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
49
50 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
51
52         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
53
54 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
55
56         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
57         CONST_HIGH_PART result.
58
59 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
60
61         * config/avr/avr.c (initial_elimination_offset): Rename to
62         avr_initial_elimination_offset.
63         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
64         change return type to bool.
65         (avr_can_eliminate): New function.
66         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
67         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
68         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
69         * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
70         avr_initial_elimination_offset.
71         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
72         (avr_initial_elimination_offset): Define.
73
74 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
75             Steven Bosscher  <steven@gcc.gnu.org>
76
77         PR rtl-optimization/39938
78         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
79         * cfgrtl.c: Include insn-attr.h.
80         (rest_of_pass_free_cfg): New function.
81         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
82         * resource.c (init_resource_info): Remove call to df_analyze.
83
84 2009-04-29  Richard Guenther  <rguenther@suse.de>
85
86         PR target/39943
87         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
88         allow conversion to signed integers.
89
90 2009-04-29  Richard Guenther  <rguenther@suse.de>
91
92         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
93         shifts of floating point vectors if the shift amount is
94         a constant multiple of the element size.
95
96 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
97             Michael Matz  <matz@suse.de>
98
99         PR middle-end/39927
100         PR bootstrap/39929
101         * tree-outof-ssa.c (emit_partition_copy): New function.
102         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
103         insert_part_to_rtx_on_edge): Perform the partition base var
104         copy using emit_partition_copy.
105         (insert_value_copy_on_edge): Convert constants to the right mode.
106         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
107         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
108
109 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
110
111         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
112         scan backwards to try to find a constant to initialize it.
113
114         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
115         insn before the loop_end instruction, don't look past labels.
116
117 2009-04-29  Richard Guenther  <rguenther@suse.de>
118
119         PR middle-end/39937
120         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
121         loose type conversions.
122         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
123         stmts only if there are no uses of its definition.
124
125 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
126
127         * config/bfin/bfin.h (splitting_loops): Declare.
128         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
129         Reorder bit definitions to be ascending.
130         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
131         * config/bfin/bfin.c (splitting_loops): New variable.
132         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
133         (struct loop_info): Remove members INIT and LOOP_INIT.
134         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
135         the LSETUP sequence.  Allow LC to be loaded from any register, but also
136         add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
137         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
138         set to 1.
139         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
140         of reload_completed.
141         From Jie Zhang:
142         * config/bfin/bfin.md (movsi_insn): Refine constraints.
143
144 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
145
146         * Makefile.in (PLUGIN_VERSION_H): New.
147         (OBJS-common): Remove plugin-version.o.
148         (plugin.o): Depend on (PLUGIN_VERSION_H).
149         (plugin-version.o): Remove.
150         * configure: Regenerate
151         * configure.ac: Create plugin-version.h.
152         * gcc-plugin.h (plugin_gcc_version): Remove.
153         (plugin_default_version_check): Change signature.
154         * plugin-version.c: Remove.
155         * plugin.c: Include plugin-version.h.
156         (str_plugin_gcc_version_name): Remove.
157         (try_init_one_plugin): Pass gcc version to plugin_init.
158         (plugin_default_version_check): Both gcc and plugin versions are now
159         arguments.
160
161 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
162         
163         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
164         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
165         Remove special case testing for last insn of inner loops. Don't fail if
166         the loop ends with a jump, emit an extra nop instead.
167
168         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
169         DREGS rather than comparing directly.  Remove code that tries to
170         account for latencies.
171
172 2009-04-29  Richard Guenther  <rguenther@suse.de>
173
174         PR tree-optimization/39941
175         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
176         eliminating an indirect call.
177
178 2009-04-29  Richard Guenther  <rguenther@suse.de>
179
180         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
181         parameter.  Allow invariants as base if !require_lvalue.
182         (verify_gimple_assign_single): Adjust.
183
184 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
185
186         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
187         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
188         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
189         ssaddhi3_parts and sssubhi3_parts.
190         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
191         a VEC_SELECT.
192         * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
193         Adjust accordingly.
194
195 2009-04-28  Richard Guenther  <rguenther@suse.de>
196
197         * tree-vect-loop.c (get_initial_def_for_induction): Use
198         correct types for pointer increment.
199
200 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
201
202         * toplev.c (print_version): Update GMP version string calculation.
203
204 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
205
206         PR rtl-optimization/39938
207         * resource.c (init_resource_info): Add call to df_analyze.
208
209 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
210
211         * config/alpha/alpha.md (usegp): Cast the result of
212         alpha_find_lo_sum_using_gp to enum attr_usegp.
213         * config/alpha/alpha.c (override_options): Remove end-of-structure
214         marker element from cpu_table.  Use array size of cpu_table to handle
215         -mcpu and -mtune options.
216         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
217
218 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
219
220         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
221         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
222         tune_32 and tune_64.
223         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
224         support on PowerPC.
225         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
226         * config/rs6000/option-defaults.h: ... here.  New file.
227         (OPT_64, OPT_32): Define.
228         (MASK_64BIT): Define to 0 if not already defined.
229         (OPT_ARCH64, OPT_ARCH32): Define.
230         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
231         and tune_64.
232
233 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
234
235         * config/arm/arm.c (arm_override_options): Emit error on using
236         fpa with AAPCS.
237
238 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
239
240         PR rtl-optimization/39914
241         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
242         registers for allocnos created from user-defined variables only
243         when not optimizing.
244
245 2009-04-28  Richard Guenther  <rguenther@suse.de>
246
247         PR middle-end/39937
248         * fold-const.c (fold_binary): Use distribute_real_division only
249         on float types.
250
251 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
252
253         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
254         add hpux-stdint.h to tm_file.
255         (hppa[12]*-*-hpux11*): Ditto.
256         (ia64*-*-hpux*): Ditto.
257         * config/hpux-stdint.h: New.
258         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
259         __STDC_EXT__ for all compiles.
260         * config/pa/pa-hpux.h: Ditto.
261         * config/pa/pa-hpux10.h: Ditto.
262         * config/pa/pa-hpux11.h: Ditto.
263
264 2009-04-28  Catherine Moore  <clm@codesourcery.com>
265
266         * debug.h (set_name): Add comment.
267
268 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
269
270         PR target/39929
271         * config/darwin.c (machopic_gen_offset): Check
272         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
273         * config/arm/arm.c (require_pic_register): Likewise.
274
275 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
276
277         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
278         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
279         m32c_promote_prototypes): Delete.
280
281 2009-04-28  Michael Matz  <matz@suse.de>
282
283         PR middle-end/39922
284         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
285         constants.
286
287 2009-04-28  Richard Guenther  <rguenther@suse.de>
288
289         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
290
291 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
292
293         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
294         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
295         * config/arm/arm-tune.md: Regenerate.
296
297 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
298
299         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
300         block if there are complex incoming edges.
301         (sel_merge_blocks): Remove useless assert.
302         (sel_redirect_edge_and_branch): Check that edge was redirected.
303         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
304         (sel_find_rgns): Delete declaration.
305         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
306         the region when it is not a preheader.
307
308 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
309
310         PR c/39323
311         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
312
313 2009-04-28  Richard Guenther  <rguenther@suse.de>
314
315         * tree.h (SSA_NAME_VALUE): Remove.
316         (struct tree_ssa_name): Remove value_handle member.
317         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
318         array for jump threading.
319         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
320         SSA_NAME_VALUEs.
321         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
322         * tree-flow.h (threadedge_initialize_values): Declare.
323         (threadedge_finalize_values): Likewise.
324         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
325         (SSA_NAME_VALUE): Define.
326         (threadedge_initialize_values): New function.
327         (threadedge_finalize_values): Likewise.
328         * tree-ssa-dom.c (ssa_name_values): New global variable.
329         (SSA_NAME_VALUE): Define.
330         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
331
332 2009-04-28  Ira Rosen  <irar@il.ibm.com>
333
334         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
335         Use REPORT_VECTORIZED_LOCATIONS instead 
336         REPORT_VECTORIZED_LOOPS.
337         * tree-vectorizer.c (vect_verbosity_level): Make static.
338         (vect_loop_location): Rename to vect_location.
339         (vect_set_verbosity_level): Update comment.
340         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
341         and vect_location.
342         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
343         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
344         instead REPORT_UNVECTORIZED_LOOPS.
345         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
346         vect_loop_def to vect_external_def and vect_internal_def.
347         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
348         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
349         REPORT_UNVECTORIZED_LOCATIONS.
350         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
351         and vect_used_in_loop and to vect_unused_in_scope and 
352         vect_used_in_scope.
353         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
354         (vect_verbosity_level): Remove declaration.
355         (vect_analyze_operations): Likewise.
356         (vect_analyze_stmt): Declare.
357         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
358         REPORT_UNVECTORIZED_LOCATIONS.
359         (vect_get_loop_niters): Fix indentation.
360         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
361         (vect_analyze_loop_operations): New function.
362         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
363         vect_analyze_operations.
364         (vect_is_simple_reduction): Use new names.
365         (vectorizable_live_operation, vect_transform_loop): Likewise.
366         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
367         specify whether the data references can be a part of interleaving chain.
368         (vect_analyze_data_ref_dependence): Use new names.
369         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
370         (vect_create_addr_base_for_vector_ref): Remove redundant code.
371         * tree-vect-patterns.c (widened_name_p): Use new names.
372         (vect_recog_dot_prod_pattern): Likewise.
373         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
374         (process_use, vect_mark_stmts_to_be_vectorized, 
375         vect_model_simple_cost, vect_model_store_cost,
376         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
377         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
378         vectorizable_operation, vectorizable_type_demotion,
379         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
380         vectorizable_condition): Likewise.
381         (vect_analyze_operations): Split into vect_analyze_loop_operations
382         and ...
383         (vect_analyze_stmt): ... new function.
384         (new_stmt_vec_info): Use new names.
385         (vect_is_simple_use): Use new names and fix comment.
386         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
387         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
388
389 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
390
391         PR target/39911
392         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
393         and integer modes for x87 operands.  Do not ICE for unsupported size,
394         generate error instead.  Generate error for unsupported operand types.
395         ['z']: Do not handle HImode memory operands specially.  Warning
396         for floating-point operands.  Fallthru to 'Z' for unsupported operand
397         types.  Do not ICE for unsupported size, generate error instead.
398         (output_387_binary_op): Use %Z to output operands.
399         (output_fp_compare): Ditto.
400         (output_387_reg_move): Ditto.
401
402 2009-04-28  Ben Elliston  <bje@au.ibm.com>
403
404         PR c++/35652
405         Revert:
406
407         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
408
409         * builtins.c (c_strlen): Do not warn here.
410         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
411         * c-common.c (pointer_int_sum): Take an explicit location.
412         Warn about offsets out of bounds.
413         * c-common.h (pointer_int_sum): Adjust declaration.
414
415 2009-04-27  Ian Lance Taylor  <iant@google.com>
416
417         * collect2.c (is_ctor_dtor): Change type of ret field in struct
418         names to symkind.
419         * dce.c (run_fast_df_dce): Change type of old_flags to int.
420         * df-core.c (df_set_flags): Change return type to int.  Change
421         type of old_flags to int.
422         (df_clear_flags): Likewise.
423         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
424         (df_get_conditional_uses): Likewise.
425         * df.h (df_set_flags, df_clear_flags): Update declarations.
426         * dwarf2out.c (struct indirect_string_node): Change type of form
427         field to enum dwarf_form.
428         (AT_string_form): Change return type to enum dwarf_form.
429         * fixed-value.c (fixed_compare): Add cast to enum type.
430         * fwprop.c (update_df): Change 0 to VOIDmode.
431         * gensupport.c: Change 0 to UNKNOWN.
432         * gimple.h (gimple_cond_code): Add cast to enum type.
433         * haifa-sched.c (reemit_notes): Add cast to enum type.
434         * hooks.c (hook_int_void_no_regs): Remove function.
435         * hooks.h (hook_int_void_no_regs): Remove declaration.
436         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
437         * predict.c (combine_predictions_for_insn): Add casts to enum type.
438         * real.c (real_arithmetic): Add cast to enum type.
439         (real_compare): Likewise.
440         * target.h (struct gcc_target): Change return type of
441         branch_target_register_class to enum reg_class.
442         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
443         default_branch_target_register_class.
444         * targhooks.c (default_branch_target_register_class): New function.
445         * targhooks.h (default_branch_target_register_class): Declare.
446         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
447         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
448         cast to int.
449         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
450         ERROR_MARK.
451         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
452         vect_uninitialized_def.  Change 0 to ERROR_MARK.
453         * tree-vect-stmts.c (supportable_widening_operation): Don't
454         initialize icode1 and icode2.
455         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
456         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
457         and to STD_C89.
458         (cmn_err_flag_specs): Change 0 to STD_C89.
459         (cmn_err_char_table): Likewise.
460         * config/arm/arm.c (get_arm_condition_code): Change type of code
461         to enum arm_cond_code.
462         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
463         (IWMMXT_BUILTIN2): Likewise.
464         (neon_builtin_type_bits): Don't define typedef.
465         (neon_builtin_datum): Change type of bits field to int.
466         (arm_expand_neon_args): Add cast to enum type.
467         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
468         TLS_MODEL_NONE.
469         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
470         casts to enum type.
471         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
472         MIPS_FP_COND_f.
473         * config/mips/mips.md (jal_macro): Return enum constant.
474         (single_insn): Likewise.
475         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
476         CODE_FOR_nothing.
477         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
478         casts to enum type.
479         * config/s390/s390.c (s390_tune_flags): Change type to int.
480         (s390_arch_flags): Likewise.
481         (s390_handle_arch_option): Change flags field of struct pta to int.
482         * config/s390/s390.h (s390_tune_flags): Update declaration.
483         (s390_arch_flags): Likewise.
484         * config/sh/sh.c (prepare_move_operands): Compare
485         tls_symbolic_operand result with enum constant.
486         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
487         (sh_expand_prologue): Add cast to enum type.
488         (sh_expand_epilogue): Likewise.
489         (tls_symbolic_operand): Change return type to enum tls_model.
490         (fpscr_set_from_mem): Add cast to enum type.
491         (legitimize_pic_address): Compare tls_symbolic_operand result with
492         enum constant.
493         (sh_target_reg_class): Change return type to enum reg_class.
494         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
495         PROCESSOR_xxx.
496         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
497         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
498         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
499         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
500         (delayed_branch, tls_call_delay): Likewise.
501         (eligible_for_sibcall_delay): Likewise.
502         (eligible_for_return_delay): Likewise. 
503         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
504         (spu_expand_builtin_1): Likewise.
505
506         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
507         for all types of conversions.
508         (output_init_element): Issue -Wc++-compat warning if needed when
509         initializing a bitfield with enum type.
510         * c-parser.c (c_parser_expression): Set original_type to
511         original_type of right hand operand of comman operator.
512
513 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
514
515         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
516         grammar nits.
517         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
518         * doc/cpp.texi (Standard Predefined Macros)
519         (Implementation-defined behavior): Likewise.
520         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
521         * doc/gimple.texi (GIMPLE Exception Handling)
522         (@code{GIMPLE_ASSIGN}): Likewise.
523         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
524         * doc/invoke.texi (Warning Options, Optimize Options)
525         (AVR Options, Darwin Options): Likewise.
526         (Optimize Options): Reformulate -fwhole-program description.
527         * doc/loop.texi (Lambda): Likewise.
528         * doc/md.texi (Output Template, Define Constraints)
529         (Standard Names, Insn Splitting): Likewise.
530         * doc/options.texi (Option properties): Likewise.
531         * doc/passes.texi (Tree-SSA passes): Likewise.
532         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
533         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
534         (File Names and DBX): Likewise.
535         * doc/trouble.texi (Incompatibilities): Likewise.
536
537 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
538
539         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
540         instruction is correct.
541
542 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
543
544         Allow non-constant arguments to conversion intrinsics.
545         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
546         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
547         * spu.c (print_operand): Handle 'v' and 'w'.
548         (exp2_immediate_p, spu_gen_exp2): Define.
549         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
550         spu_convtf_1): Update parameter descriptions.
551         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
552         * constraints.md ('v', 'w'): New.
553         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
554         Remove.
555         (i2f, I2F): New define_mode_attr.
556         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
557         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
558         fixuns_truncv4sfv4si2):  Update to use mode attribute.
559         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
560         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
561         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
562         patterns for combine.
563
564 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
565
566         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
567         (cprop, hoist, pre, store_motion): New debug counters.
568         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
569         is not an RTL pass anymore.
570         (pass_profiling): Remove extern decl for pass removed in 2005.
571         (pass_gcse, pass_jump_bypass): Remove.
572         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
573         to 0 for clean state.
574         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
575         * cse.c (gate_handle_cse_after_global_opts,
576         rest_of_handle_cse_after_global_opts): New functions.
577         (pass_cse_after_global_opts): New pass, does local CSE.
578         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
579         (TV_CPROP): New timevar.
580         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
581         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
582         (gcse_main, recompute_all_luids): Remove.
583         (compute_hash_table_work): Call max_reg_num instead of reading
584         max_gcse_regno.
585         (cprop_jump): Don't set run_jump_opt_after_gcse.
586         (constprop_register): Always allow to alter jumps.
587         (cprop_insn): Likewise.
588         (do_local_cprop): Likewise.
589         (local_cprop_pass): Likewise.  Return non-zero if something changed.
590         (cprop): Remove function, fold interesting bits into one_cprop_pass.
591         (find_implicit_sets): Add note about missed optimization opportunity.
592         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
593         pass_rtl_cprop execute function.
594         Don't bother tracking the pass number, each pass gets its own dumpfile
595         now anyway.
596         Always allow to alter jumpsand bypass jumps.
597         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
598         will just find no suitable set.
599         (pre_edge_insert): Fix dumping, this function is for PRE only.
600         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
601         pass_rtl_pre execute function.
602         (hoist_code): Return non-zero if something changed.  Keep track of
603         substitutions and insertions for statistics gathering similar to PRE.
604         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
605         called from the pass_rtl_hoist execute function.  Show pass statistics.
606         (compute_store_table): Use max_reg_num directly instead of using the
607         formerly global max_gcse_regno.
608         (build_store_vectors): Likewise.
609         (replace_store_insn): Fix dumping.
610         (store_motion): Rename to ...
611         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
612         pass, called from the pass_rtl_store_motion execute function.  Keep
613         track of substitutions and insertions for statistics gathering similar
614         to PRE.
615         (bypass_jumps): Remove, fold interesting bits into ...
616         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
617         from the pass_rtl_cprop execute function.
618         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
619         pass_jump_bypass): Remove.
620         (gate_handle_gcse, rest_of_handle_gcse): Remove.
621         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
622         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
623         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
624         (gate_rtl_store_motion, execute_rtl_store_motion,
625         pass_rtl_store_motion): New.
626         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
627         make it clear that -fcse-skip-blocks is a no-op for backward compat.
628         * passes.c (init_optimization_passes): Remove pass_gcse and
629         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
630         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
631         instead of pass_jump_bypass.
632
633 2009-04-27  Richard Guenther  <rguenther@suse.de>
634
635         PR middle-end/39928
636         * gimplify.c (gimplify_expr): If we are required to create
637         a temporary make sure it ends up as register.
638
639 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
640
641         PR target/39903
642         * config/i386/i386.c (construct_container): Don't call
643         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
644         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
645
646 2009-04-27  Michael Matz  <matz@suse.de>
647
648         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
649         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
650         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
651         (dump_replaceable_exprs): Take a bitmap.
652         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
653         array.
654         (expand_gimple_basic_block): Likewise.
655         * tree-ssa-ter.c (struct temp_expr_table_d): Make
656         replaceable_expressions member a bitmap.
657         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
658         (mark_replaceable): Likewise.
659         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
660         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
661
662 2009-04-27  Richard Guenther  <rguenther@suse.de>
663
664         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
665         (verify_stmts): Dispatch to gimple/type verification code.
666         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
667         issue with call argument types.
668
669 2009-04-27  Michael Matz  <matz@suse.de>
670
671         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
672         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
673         to above.
674
675 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
676             Eric Botcazou  <ebotcazou@adacore.com>
677
678         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
679         a label's basic block.
680         (mark_target_live_regs): Tidy and rework obsolete comments.
681         Change back DF problem to LIVE.  If a label starts a basic block,
682         assume that all registers that used to be live then still are.
683         (init_resource_info): If a label starts a basic block, set its
684         BLOCK_FOR_INSN accordingly.
685         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
686
687 2009-04-27  Richard Guenther  <rguenther@suse.de>
688
689         * tree-flow-inline.h (function_ann): Remove.
690         (get_function_ann): Likewise.
691         * tree-dfa.c (create_function_ann): Remove.
692         * tree-flow.h (struct static_var_ann_d): Remove.
693         (struct function_ann_d): Likewise.
694         (union tree_ann_d): Remove fdecl member.
695         (function_ann_t): Remove.
696         (function_ann, get_function_ann, create_function_ann): Remove
697         declarations.
698
699 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
700
701         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
702
703 2009-04-27  Jan Hubicka  <jh@suse.cz>
704
705         * ipa-pure-const.c (struct funct_state_d): New fields
706         state_previously_known, looping_previously_known; remove
707         state_set_in_source.
708         (analyze_function): Use new fields.
709         (propagate): Avoid assumption that state_set_in_source imply
710         nonlooping.
711
712         * tree-ssa-loop-niter.c (finite_loop_p): New function.
713         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
714         * cfgloop.h (finite_loop_p): Declare.
715
716 2009-04-26  Michael Matz  <matz@suse.de>
717
718         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
719
720 2009-04-26  Michael Matz  <matz@suse.de>
721
722         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
723         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
724         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
725         pass_mark_used_blocks): Remove.
726         * tree-optimize.c (pass_free_datastructures,
727         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
728         * passes.c (init_optimization_passes): Don't call
729         pass_mark_used_blocks, remove dead code.
730
731 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
732
733         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
734         * tree-ssa-live.h (register_ssa_partition): Likewise.
735
736 2009-04-26  Michael Matz  <matz@suse.de>
737
738         Expand from SSA.
739         * builtins.c (fold_builtin_next_arg): Handle SSA names.
740         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
741         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
742         SSA names. 
743         (compare_pairs): Swap cost comparison.
744         (coalesce_ssa_name): Don't use change_partition_var.
745         * tree-nrv.c (struct nrv_data): Add modified member.
746         (finalize_nrv_r): Set it.
747         (tree_nrv): Use it to update statements.
748         (pass_nrv): Require PROP_ssa.
749         * tree-mudflap.c (mf_decl_cache_locals,
750         mf_build_check_statement_for): Use make_rename_temp.
751         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
752         * alias.c (find_base_decl): Handle SSA names.
753         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
754         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
755         * rtl.h (set_reg_attrs_for_parm): Declare.
756         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
757         to "optimized", remove unused locals at finish.
758         (execute_free_datastructures): Make global, call
759         delete_tree_cfg_annotations.
760         (execute_free_cfg_annotations): Don't call
761         delete_tree_cfg_annotations.
762
763         * ssaexpand.h: New file.
764         * expr.c (toplevel): Include ssaexpand.h.
765         (expand_assignment): Handle SSA names the same as register variables.
766         (expand_expr_real_1): Expand SSA names.
767         * cfgexpand.c (toplevel): Include ssaexpand.h.
768         (SA): New global variable.
769         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
770         (SSAVAR): New macro.
771         (set_rtl): New helper function.
772         (add_stack_var): Deal with SSA names, use set_rtl.
773         (expand_one_stack_var_at): Likewise.
774         (expand_one_stack_var): Deal with SSA names.
775         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
776         before unique numbers.
777         (expand_stack_vars): Use set_rtl.
778         (expand_one_var): Accept SSA names, add asserts for them, feed them
779         to above subroutines.
780         (expand_used_vars): Expand all partitions (without default defs),
781         then only the local decls (ignoring those expanded already).
782         (expand_gimple_cond): Remove edges when jumpif() expands an
783         unconditional jump.
784         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
785         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
786         SSA name.
787         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
788         members of SA; deal with PARM_DECL partitions here; expand
789         all PHI nodes, free tree datastructures and SA.  Commit instructions
790         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
791         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
792         info and statements at start, collect garbage at finish.
793         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
794         (VAR_ANN_PARTITION) Remove.
795         (change_partition_var): Don't declare.
796         (partition_to_var): Always return SSA names.
797         (var_to_partition): Only accept SSA names.
798         (register_ssa_partition): Only check argument.
799         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
800         member.
801         (delete_var_map): Don't free it.
802         (var_union): Only accept SSA names, simplify.
803         (partition_view_init): Mark only useful SSA names as used.
804         (partition_view_fini): Only deal with SSA names.
805         (change_partition_var): Remove.
806         (dump_var_map): Use ssa_name instead of partition_to_var member.
807         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
808         basic blocks.
809         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
810         (struct _elim_graph): New member const_dests; nodes member vector of
811         ints.
812         (set_location_for_edge): New static helper.
813         (create_temp): Remove.
814         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
815         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
816         (new_elim_graph): Allocate const_dests member.
817         (clean_elim_graph): Truncate const_dests member.
818         (delete_elim_graph): Free const_dests member.
819         (elim_graph_size): Adapt to new type of nodes member.
820         (elim_graph_add_node): Likewise.
821         (eliminate_name): Likewise.
822         (eliminate_build): Don't take basic block argument, deal only with
823         partition numbers, not variables.
824         (get_temp_reg): New static helper.
825         (elim_create): Use it, deal with RTL temporaries instead of trees.
826         (eliminate_phi): Adjust all calls to new signature.
827         (assign_vars, replace_use_variable, replace_def_variable): Remove.
828         (rewrite_trees): Only do checking.
829         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
830         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
831         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
832         contains_tree_r, MAX_STMTS_IN_LATCH,
833         process_single_block_loop_latch, analyze_edges_for_bb,
834         perform_edge_inserts): Remove.
835         (expand_phi_nodes): New global function.
836         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
837         functions, initialize new parameter, remember partitions having a
838         default def.
839         (finish_out_of_ssa): New global function.
840         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
841         don't reset in_ssa_p here, don't disable TER when mudflap.
842         (pass_del_ssa): Remove.
843         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
844         partition members.
845         (execute_free_datastructures): Declare.
846         * Makefile.in (SSAEXPAND_H): New variable.
847         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
848         * basic-block.h (commit_one_edge_insertion): Declare.
849         * passes.c (init_optimization_passes): Move pass_nrv and
850         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
851         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
852         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
853         (redirect_branch_edge): Deal with super block when expanding, split
854         out jump patching itself into ...
855         (patch_jump_insn): ... here, new static helper.
856
857 2009-04-26  Michael Matz  <matz@suse.de>
858
859         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
860         beyond num_ssa_names.
861         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
862         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
863
864 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
865
866         PR inline-asm/39543
867         * fwprop.c (forward_propagate_asm): New function.
868         (forward_propagate_and_simplify): Propagate also into __asm, if it
869         doesn't increase the number of referenced registers.
870
871         PR c/39889
872         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
873
874 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
875
876         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
877         note_nonlocal_vla_type for nonlocal VLAs.
878         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
879         contains_remapped_vars, remap_vla_decls): New functions.
880         (convert_nonlocal_reference_stmt): If not optimizing, call
881         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
882         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
883         if it wasn't found in var_map.
884         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
885         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
886         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
887         declare_vars.
888         * gimplify.c (nonlocal_vlas): New variable.
889         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
890         referenced VLAs.
891         (gimplify_body): Create and destroy nonlocal_vlas.
892
893         * dwarf2out.c (loc_descr_plus_const): New function.
894         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
895         mem_loc_descriptor, loc_descriptor_from_tree_1,
896         descr_info_loc, gen_variable_die): Use it.
897
898         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
899         !TREE_STATIC VAR_DECLs.
900         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
901         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
902         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
903         DECL_BY_REFERENCE is valid.
904         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
905         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
906         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
907         Copy DECL_BY_REFERENCE.
908         (struct nesting_copy_body_data): New type.
909         (nesting_copy_decl): New function.
910         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
911         if they have variable length.
912
913 2009-04-26  Michael Matz  <matz@suse.de>
914
915         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
916         mark new temporaries for renaming.
917
918 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
919
920         PR c/39581
921         * c-decl.c (global_bindings_p): Return negative value.
922         (c_variable_size): New.  Based on variable_size from
923         stor-layout.c.
924         (grokdeclarator): Call c_variable_size not variable_size.
925
926 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
927
928         * config/i386/i386.c (print_operand) ['z']: Fix typo.
929
930 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
931
932         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
933         Redefine it to just use mingw/include.
934         (ASM_SPEC): Rules for -m32 and -m64.
935         (LINK_SPEC): Use Likewise.
936         (SPEC_32): New define.
937         (SPEC_64): Likewise.
938         (SUB_LINK_SPEC): Likewise.
939         (MULTILIB_DEFAULTS): New define.
940         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
941         Add multilib options.
942         (MULTILIB_DIRNAMES): Likewise.
943         (MULTILIB_OSDIRNAMES): Likewise.
944         (LIBGCC): Likewise.
945         (INSTALL_LIBGCC): Likewise.
946
947 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
948
949         PR c/39556
950         * c-tree.h (enum c_inline_static_type): New.
951         (record_inline_static): Declare.
952         * c-decl.c (struct c_inline_static, c_inline_statics,
953         record_inline_static, check_inline_statics): New.
954         (pop_file_scope): Call check_inline_statics.
955         (start_decl): Call record_inline_static instead of pedwarning
956         directly for static in inline function.
957         * c-typeck.c (build_external_ref): Call record_inline_static
958         instead of pedwarning directly for static referenced in inline
959         function.
960
961 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
962
963         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
964         not new but only being rescanned.
965         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
966         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
967         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
968         record_set_info, compute_set, grealloc): Remove.
969         (recompute_all_luids): New function.
970         (gcse_main): Don't compute sets, and don't do related memory
971         allocations/free-ing.  If something changed before the end of the
972         pass, update LUIDs using recompute_all_luids.
973         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
974         (free_gcse_mem): Don't free it either.
975         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
976         Use the df insn LUIDs.
977         (load_killed_in_block): Likewise.
978         (compute_hash_table_work): Don't compute reg_set_in_block.
979         (compute_transp): Use DF_REG_DEF_CHAINs.
980         (local_cprop_pass): Don't use compute_sets and related functions.
981         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
982         Use get_max_uid() instead of max_cuid.
983         (insert_insn_end_basic_block, pre_insert_copy_insn,
984         update_ld_motion_stores): Don't try to
985         keep reg_set tables up to date.
986         (pre_insert_copies): Use df insn LUIDs.
987         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
988         (reg_set_info): Don't use extra bitmap argument.
989         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
990         information to compute regs_set_in_block.
991         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
992         (bypass_jumps): Don't use compute_sets and friends.
993
994 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
995
996         PR testsuite/39710
997         * opts.c (undocumented_msg): Do not leave blank even with
998         ENABLE_CHECKING.
999
1000 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1001
1002         * c-decl.c (build_enumerator): Allow values folding to integer
1003         constants but not integer constant expressions with a pedwarn if
1004         pedantic.
1005
1006 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1007
1008         PR c/39582
1009         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1010         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1011         type is an integer constant.
1012
1013 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1014
1015         PR target/39897
1016         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1017         HImode operands.
1018
1019 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1020
1021         PR c/39564
1022         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1023         with variably modified return type and no storage class
1024         specifiers, except for the case of nested functions.  Distinguish
1025         extern declarations of functions with variably modified return
1026         types from those of objects with variably modified types.
1027
1028 2009-04-25  Jan Hubicka  <jh@suse.cz>
1029
1030         * tree.c (list_equal_p): New function.
1031         * tree.h (list_equal_p): Declare.
1032         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1033         basic_block_def, basic_block, const_basic_block): New.
1034         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1035         (redirect_eh_edge): New function.
1036         (make_eh_edge_update_phi): EH edges are not abnormal.
1037         * except.c: Include tree-flow.h.
1038         (list_match): New function.
1039         (eh_region_replaceable_by_p): New function.
1040         (replace_region): New function.
1041         (hash_type_list): New function.
1042         (hash_eh_region): New function.
1043         (eh_regions_equal_p): New function.
1044         (merge_peers): New function.
1045         (remove_unreachable_regions): Verify EH tree when checking;
1046         merge peers.
1047         (copy_eh_region_1): New function.
1048         (copy_eh_region): New function.
1049         (push_reachable_handler): New function.
1050         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1051         regions without label but with live RESX.
1052         * except.h (redirect_eh_edge_to_label): New.
1053         * tree-flow.h (redirect_eh_edge): New.
1054         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1055         basic_block_def, basic_block, const_basic_block): Remove.
1056         * Makefile.in (except.o): Add dependency on tree-flow.h
1057         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1058         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1059         Remove.
1060
1061 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1062
1063         PR bootstrap/39645
1064         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1065         on the destination of memcpy.
1066
1067 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1068
1069         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1070         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1071         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1072
1073 2009-04-25  Jan Hubicka  <jh@suse.cz>
1074
1075         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1076         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1077         to be reached by different label than left.
1078         (update_eh_edges): Update comment; remove edge_to_remove if possible
1079         and return true if suceeded.
1080         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1081         (cleanup_eh): Compute sharing map.
1082         * except.c (remove_eh_handler_and_replace): Add argument if we should
1083         update regions.
1084         (remove_unreachable_regions): Update for label sharing.
1085         (label_to_region_map): Likewise.
1086         (get_next_region_sharing_label): New function.
1087         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1088         prev_try pointers.
1089         (remove_eh_handler): Update.
1090         (remove_eh_region_and_replace_by_outer_of): New function.
1091         * except.h (struct eh_region): Add next_region_sharing_label.
1092         (remove_eh_region_and_replace_by_outer_of,
1093         get_next_region_sharing_label): Declare.
1094         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1095
1096 2009-04-25  Jan Hubicka  <jh@suse.cz>
1097
1098         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1099         insert code even if they are not critical.
1100
1101 2009-04-25  Jan Hubicka  <jh@suse.cz>
1102
1103         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1104         (gimple_can_remove_branch_p): EH edges won't remove branch by
1105         redirection.
1106         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1107         updating of non-abnormal EH edges.
1108         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1109         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1110         (split_critical_edges): Split also edges where emitting code on them
1111         will lead to splitting later.
1112
1113 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1114             H.J. Lu  <hongjiu.lu@intel.com>
1115
1116         PR target/39590
1117         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1118         the configured assembler supports fildq and fistpq mnemonics.
1119         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1120         * configure: Regenerated.
1121         * config.in: Ditto.
1122
1123         * config/i386/i386.c (print_operand): Handle 'Z'.
1124         ['z']: Remove handling of special fild/fist suffixes.
1125         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1126         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1127         suffix of fild insn.
1128         (*floatsi<mode>2_vector_mixed): Ditto.
1129         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1130         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1131         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1132         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1133         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1134
1135 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1136  
1137         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1138         the source of a set operation.
1139
1140 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1141
1142         * target.h (struct gcc_target): Add case_values_threshold field.
1143         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1144         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1145         * targhooks.c (default_case_values_threshold): New function.
1146         * targhooks.h (default_case_values_threshold): Declare function.
1147         * stmt.c (expand_case): Use case_values_threshold target hook.
1148         * expr.h (case_values_threshold): Remove declartation.
1149         * expr.c (case_values_threshold): Remove function.
1150         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1151
1152         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1153         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1154         (avr_case_values_threshold): Declare as static.
1155         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1156
1157         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1158         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1159         (mn10300_case_values_threshold): New function.
1160
1161 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1162
1163         * ira.c (setup_cover_and_important_classes): Add enum cast.
1164
1165 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1166
1167         * genpreds.c (write_enum_constraint_num): Output definition of
1168         CONSTRAINT_NUM_DEFINED_P macro.
1169         * ira.c (setup_cover_and_important_classes): Use
1170         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1171         
1172 2009-04-24  DJ Delorie  <dj@redhat.com>
1173
1174         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1175         __SH2A_SINGLE_ONLY__ also.
1176
1177 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1178
1179         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1180         (movdf_internal): Ditto.
1181         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1182         SFmode and DFmode constants.
1183         (ia64_print_operand): Add 'G' format for printing
1184         floating point constants.
1185
1186 2009-04-24  Richard Guenther  <rguenther@suse.de>
1187
1188         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1189         from unsigned additions.
1190
1191 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
1192
1193         * c-typeck.c (set_init_index): Allow array designators that are
1194         not integer constant expressions with a pedwarn if pedantic.
1195
1196 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1197
1198         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1199         zero if no overlap in nonzero bits between the operands.
1200
1201 2009-04-24  Ian Lance Taylor  <iant@google.com>
1202
1203         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1204         (record_dead_and_set_regs): Likewise.
1205         * df.h (struct df_mw_hardreg): Change flags field to int.
1206         (struct df_base_ref): Likewise.
1207         (struct df): Change changeable_flags field to int.
1208         * df-scan.c (df_defs_record): Change clobber_flags to int.
1209         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1210         constants rather than #define macros.
1211         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1212         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1213         (enum dwarf_calling_convention): Likewise.
1214         (enum dwarf_line_number_x_ops): Likewise.
1215         (enum dwarf_call_frame_info): Likewise.
1216         (enum dwarf_source_language): Likewise.
1217         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1218         (add_calling_convention_attribute): Likewise.
1219         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1220         (combine_comparisons): Change compcode to int.  Add cast to enum type.
1221         * genrecog.c (maybe_both_true_2): Change c to int.
1222         (write_switch): Likewise.  Add cast to enum type.
1223         * gimplify.c (gimplify_omp_for): Handle return values from
1224         gimplify_expr using MIN rather than bitwise or.
1225         (gimplify_expr): Add cast to enum type.
1226         * ipa-prop.c (update_jump_functions_after_inlining): Change
1227         IPA_BOTTOM to IPA_JF_UNKNOWN.
1228         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1229         Add casts to enum type.
1230         (setup_cover_and_important_classes): Change cl to int.  Add casts
1231         to enum type.
1232         (setup_class_translate): Change cl and mode to int.
1233         (ira_init_once): Change mode to int.
1234         (free_register_move_costs): Likewise.
1235         (setup_prohibited_mode_move_regs): Add casts to enum type.
1236         * langhooks.c (add_builtin_function_common): Rework assertion that
1237         value fits bitfield.
1238         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1239         * omega.c (omega_do_elimination): Avoid math on enum types.
1240         * optabs.c (expand_vec_shift_expr): Remove casts to int.
1241         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
1242         int local to handle integral_argment value.
1243         * regmove.c (try_auto_increment): Change PUT_MODE to
1244         PUT_REG_NOTE_KIND.
1245         * reload.c (push_secondary_reload): Add casts to enum type.
1246         (secondary_reload_class, find_valid_class): Likewise.
1247         * reload1.c (emit_input_reload_insns): Likewise.
1248         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1249         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1250         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1251         constant.
1252         * tree.c (build_common_builtin_nodes): Add casts to enum type.
1253         * tree-complex.c (complex_lattice_t): Typedef to int rather than
1254         enum type.
1255         (expand_complex_libcall): Add casts to enum type.
1256         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1257         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1258         with ERROR_MARK, not NUM_TREE_CODES.
1259         (vect_create_epilog_for_reduction): Likewise.
1260         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
1261         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
1262         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1263         enum machine_mode.
1264         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1265         vect_unused_in_loop.  Change 0 to loop_vect.
1266         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
1267         * var-tracking.c (get_init_value): Change return type to enum
1268         var_init_status.
1269         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1270         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1271         arm_fp_model.
1272         (arm_override_options): Add casts to enum type.
1273         (arm_emit_tls_decoration): Likewise.
1274         * config/i386/i386.c (ix86_function_specific_restore): Add casts
1275         to enum type.
1276         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1277         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1278         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1279         enum type.
1280         * config/s390/s390.c (code_for_builtin_64): Change to array of
1281         enum insn_code.
1282         (code_for_builtin_31): Likewise.
1283         (s390_expand_builtin): Change code_for_builtin to enum insn_code
1284         const *.
1285         * config/sparc/sparc.c (sparc_override_options): Change value
1286         field in struct code_model to enum cmodel.  In initializer change
1287         0 to NULL and add cast to enum type.
1288
1289         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1290         Change all callers.  Issue a -Wc++-compat warning using
1291         lhs_origtype if necessary.
1292         (convert_for_assignment): Issue -Wc++-compat warnings about
1293         invalid conversions to enum type on assignment.
1294         * c-common.h (build_modify_expr): Update declaration.
1295
1296 2009-04-24  Nick Clifton  <nickc@redhat.com>
1297
1298         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1299         (function_arg_advance): Likewise.
1300         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1301         5th alternative.
1302
1303 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1304
1305         * config/s390/constraints.md ('I', 'J'): Fix condition.
1306
1307 2009-04-24  Diego Novillo  <dnovillo@google.com>
1308
1309         * gengtype-parse.c (parse_error): Add newline after message.
1310
1311 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1312
1313         * config/i386/sse.md (avxmodesuffixs): Removed.
1314         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1315         (*avx_pinsr<ssevecsize>): This.
1316
1317 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1318
1319         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1320         follow chains of regs with a single definition, and allow expressions
1321         that are function_invariant_p.
1322         (simple_rhs_p): Allow expressions that are function_invariant_p.
1323
1324 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
1325
1326         PR middle-end/39867
1327         * fold-const.c (fold_cond_expr_with_comparison): When folding
1328         > and >= to MAX, make sure the MAX uses the same type as the
1329         comparison's operands.
1330
1331 2009-04-24  Nick Clifton  <nickc@redhat.com>
1332
1333         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1334         addressing for DImode accesses.
1335         (frv_print_operand_address): Handle PLUS case.
1336         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
1337
1338 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
1339
1340         PR rtl-optimization/39794
1341         * alias.c (canon_true_dependence): Add x_addr argument.
1342         * rtl.h (canon_true_dependence): Adjust prototype.
1343         * cse.c (check_dependence): Adjust canon_true_dependence callers.
1344         * cselib.c (cselib_invalidate_mem): Likewise.
1345         * gcse.c (compute_transp): Likewise.
1346         * dse.c (scan_reads_nospill): Likewise.
1347         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
1348         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1349         canon_base_addr of the group, plus optional offset.
1350         (struct group_info): Rename canon_base_mem to
1351         canon_base_addr.
1352         (get_group_info): Set canon_base_addr to canon_rtx of base, not
1353         canon_rtx of base_mem.
1354
1355 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
1356
1357         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1358         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1359
1360 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1361
1362         * config/spu/spu-builtins.h: Delete file.
1363
1364         * config/spu/spu.h (enum spu_builtin_type): Move here from
1365         spu-builtins.h.
1366         (struct spu_builtin_description): Likewise.  Add GTY marker.
1367         Do not use enum spu_function_code or enum insn_code.
1368         (spu_builtins): Add extern declaration.
1369
1370         * config/spu/spu.c: Do not include "spu-builtins.h".
1371         (enum spu_function_code, enum spu_builtin_type_index,
1372         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1373         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1374         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1375         unsigned_V2DI_type_node): Move here from spu-builtins.h.
1376         (spu_builtin_types): Make static.  Add GTY marker.
1377         (spu_builtins): Add extern declaration with GTY marker.
1378         Include "gt-spu.h".
1379
1380         * config/spu/spu-c.c: Do not include "spu-builtins.h".
1381         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1382         Check programmatically whether all parameters are scalar.
1383
1384         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1385
1386 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1387
1388         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1389         assignment from the constructor either if the target is volatile.
1390
1391 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
1392
1393         * config/arm/arm.md (insv): Do not share operands[0].
1394
1395 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1396
1397         * config/vxlib-tls.c (active_tls_threads): Delete.
1398         (delete_hook_installed): New.
1399         (tls_delete_hook): Don't delete the delete hook.
1400         (tls_destructor): Delete it here.
1401         (__gthread_set_specific): Adjust installing the delete hook.
1402         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1403         __gthread_leave_tsd_dtor_context.
1404
1405 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
1406
1407         * c-format.c (gcc_tdiag_char_table): Add support for %E.
1408
1409 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
1410
1411         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1412         enum type.
1413         (alpha_rtx_costs): Ditto.
1414         (emit_unlikely_jump): Use add_reg_note.
1415         (emit_frame_store_1): Ditto.
1416         (alpha_expand_prologue): Ditto.
1417         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1418         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1419
1420 2009-04-23  Nick Clifton  <nickc@redhat.com>
1421
1422         * config/v850/v850.md (epilogue): Remove suppressed code.
1423         (return): Rename to return_simple and remove test of frame size.
1424         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1425         to gen_return_simple.
1426
1427 2009-04-22  Jing Yu  <jingyu@google.com>
1428
1429         PR testsuite/39781
1430         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1431
1432 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1433
1434         PR C/31499
1435         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
1436         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
1437         value is a VECTOR_CST, the element type is the element type of the
1438         vector.
1439
1440 2009-04-22  DJ Delorie  <dj@redhat.com>
1441
1442         * config/m32c/m32c.h: Update GTY annotations to new syntax.
1443
1444 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
1445
1446         * alias.c (find_base_term): Move around LO_SUM case, so that
1447         CONST falls through into PLUS/MINUS handling.
1448
1449         PR c/39855
1450         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
1451         into 0, use omit_one_operand.
1452
1453 2009-04-23  Ben Elliston  <bje@au.ibm.com>
1454
1455         * config/rs6000/linux-unwind.h (get_regs): Remove type
1456         puns. Change the type of `pc' to an array of unsigned ints and
1457         update all users.  Constify frame24.
1458
1459 2009-04-22  DJ Delorie  <dj@redhat.com>
1460
1461         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
1462         declarations before code.
1463         (current_function_special_page_vector): Likewise.
1464         (m32c_expand_insv): Silence a warning.
1465
1466 2009-04-21  Taras Glek  <tglek@mozilla.com>
1467
1468         * alias.c: Update GTY annotations to new syntax.
1469         * basic-block.h: Likewise.
1470         * bitmap.h: Likewise.
1471         * c-common.h: Likewise.
1472         * c-decl.c: Likewise.
1473         * c-parser.c: Likewise.
1474         * c-pragma.c: Likewise.
1475         * c-tree.h: Likewise.
1476         * cfgloop.h: Likewise.
1477         * cgraph.h: Likewise.
1478         * config/alpha/alpha.c: Likewise.
1479         * config/arm/arm.h: Likewise.
1480         * config/avr/avr.h: Likewise.
1481         * config/bfin/bfin.c: Likewise.
1482         * config/cris/cris.c: Likewise.
1483         * config/darwin.c: Likewise.
1484         * config/frv/frv.c: Likewise.
1485         * config/i386/i386.c: Likewise.
1486         * config/i386/i386.h: Likewise.
1487         * config/i386/winnt.c: Likewise.
1488         * config/ia64/ia64.h: Likewise.
1489         * config/iq2000/iq2000.c: Likewise.
1490         * config/mips/mips.c: Likewise.
1491         * config/mmix/mmix.h: Likewise.
1492         * config/pa/pa.c: Likewise.
1493         * config/pa/pa.h: Likewise.
1494         * config/rs6000/rs6000.c: Likewise.
1495         * config/s390/s390.c: Likewise.
1496         * config/sparc/sparc.c: Likewise.
1497         * config/xtensa/xtensa.c: Likewise.
1498         * cselib.h: Likewise.
1499         * dbxout.c: Likewise.
1500         * dwarf2out.c: Likewise.
1501         * except.c: Likewise.
1502         * except.h: Likewise.
1503         * fixed-value.h: Likewise.
1504         * function.c: Likewise.
1505         * function.h: Likewise.
1506         * gimple.h: Likewise.
1507         * integrate.c: Likewise.
1508         * optabs.c: Likewise.
1509         * output.h: Likewise.
1510         * real.h: Likewise.
1511         * rtl.h: Likewise.
1512         * stringpool.c: Likewise.
1513         * tree-data-ref.c: Likewise.
1514         * tree-flow.h: Likewise.
1515         * tree-scalar-evolution.c: Likewise.
1516         * tree-ssa-address.c: Likewise.
1517         * tree-ssa-alias.h: Likewise.
1518         * tree-ssa-operands.h: Likewise.
1519         * tree.c: Likewise.
1520         * tree.h: Likewise.
1521         * varasm.c: Likewise.
1522         * varray.h: Likewise.
1523         * vec.h: Likewise.
1524         * coretypes.h: Do not define GTY macro if it is already defined.
1525         * doc/gty.texi: Update GTY documentation to new syntax.
1526         * gengtype-lex.l: Enforce attribute-like syntax for GTY
1527         annotations on structs.
1528         * gengtype-parse.c: Likewise.
1529
1530 2009-04-22  Mark Heffernan  <meheff@google.com>
1531
1532         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
1533
1534 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1535
1536         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
1537         where appropriate.
1538
1539 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1540
1541         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
1542         the same as a PLUS without a shift.  Increase the cost of a
1543         CONST_INT in MULT.
1544
1545 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1546
1547         * Makefile.in: Update dependencies.
1548         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
1549         * errors.h: Remove bogus comment about compatibility.
1550         (warning): Update declaration.
1551         * genautomata.c: Update all calls to warning.
1552         * gimple.c: Do not include errors.h. Include toplev.h.
1553         * tree-ssa-structalias.c: Do not include errors.h.
1554         * omega.c: Likewise.
1555         * tree-ssa-reassoc.c: Likewise.
1556         * config/spu/spu-c.c: Likewise.
1557         * config/spu/t-spu-elf: Update dependencies.
1558
1559 2009-04-22  Richard Guenther  <rguenther@suse.de>
1560
1561         PR tree-optimization/39824
1562         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
1563         make sure the types are compatible.
1564
1565 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1566
1567         PR c++/14875
1568         * c-common.c (c_parse_error): Take a token_flags parameter.
1569         Use token_type for the token type instead.
1570         Pass token_flags to cpp_type2name.
1571         * c-common.h (c_parse_error): Update declaration.
1572         * c-parser.c (c_parser_error): Pass 0 as token flags.
1573
1574 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
1575
1576         PR rtl-optimization/39580
1577         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
1578         
1579 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1580
1581         * function.c (expand_function_end): Do not emit a jump to the "naked"
1582         return label for fall-through returns.
1583         * except.c (sjlj_emit_function_exit): Always place the call to the
1584         unregister function at the location installed by expand_function_end.
1585
1586 2009-04-22  Richard Guenther  <rguenther@suse.de>
1587
1588         PR tree-optimization/39845
1589         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
1590         (gen_inbound_check): Likewise.
1591
1592 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1593
1594         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
1595         padding for PPC.
1596         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
1597         * config/vxlib.c (__gthread_once): Add race guard for PPC.
1598
1599 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1600
1601         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
1602         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
1603         shift counts to avoid out-of-bounds array accesses.
1604
1605 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1606
1607         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
1608         (Pmode): Move above.
1609
1610 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
1611
1612         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
1613         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
1614         GET_CODE macro.  Use IN_RANGE macro where appropriate.
1615         * config/alpha/alpha.h: Ditto.
1616         * config/alpha/alpha.md: Ditto.
1617         * config/alpha/constraints.md: Ditto.
1618         * config/alpha/predicates.md: Ditto.
1619         
1620 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1621
1622         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
1623         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1624         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1625         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1626         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1627         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1628         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1629         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1630         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1631         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1632         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1633         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1634         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1635         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1636         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1637         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1638         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1639         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1640         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1641         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1642         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1643         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1644         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1645         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1646         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1647         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1648         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1649
1650 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1651
1652         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
1653         references from comments.
1654         * cfgbuild.c: (count_basic_blocks): Delete.
1655         (find_basic_blocks_1): Delete.
1656         (find_basic_blocks): Delete.
1657         * except.c (finish_eh_generation): Make static.  Move comment from
1658         except.h here.  Remove find_basic_blocks references from comments.
1659         * except.h (finish_eh_generation): Delete.
1660         * basic-block.h (find_basic_blocks): Delete.
1661         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
1662
1663 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1664
1665         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
1666         (sdbout_parms):  Likewise.
1667
1668 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1669
1670         * config/sh/sh.c (prepare_cbranch_operands): Use
1671         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
1672         (expand_cbranchdi4): Likewise.
1673         (from_compare): Add cast to enum type.
1674         (expand_cbranchsi4): Use add_reg_note.
1675         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
1676         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
1677         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
1678         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1679         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
1680         instead of CODE_FOR_nothing.
1681         (cbranchdi4): Likewise.  Fix the order of arguments for
1682         gen_rtx_fmt_ee.
1683         (push_fpscr): Use add_reg_note.
1684         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
1685         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
1686         
1687 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
1688
1689         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
1690         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1691         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1692         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
1693         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
1694         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
1695         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
1696         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
1697         config/alpha/x-vms, config/arc/t-arc,
1698         config/arm/README-interworking, config/arm/arm-c.c,
1699         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
1700         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
1701         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
1702         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
1703         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
1704         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
1705         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
1706         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
1707         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
1708         config/cris/t-elfmulti, config/crx/t-crx,
1709         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
1710         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
1711         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
1712         config/h8300/t-h8300, config/i386/athlon.md,
1713         config/i386/darwin-libgcc.10.4.ver,
1714         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
1715         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
1716         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
1717         config/i386/t-linux64, config/i386/t-nwld,
1718         config/i386/t-rtems-i386, config/i386/t-sol2-10,
1719         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
1720         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
1721         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
1722         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
1723         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
1724         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
1725         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
1726         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
1727         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
1728         config/m68k/t-uclinux, config/mcore/t-mcore,
1729         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
1730         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
1731         config/mips/crtn.asm, config/mips/irix-crti.asm,
1732         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
1733         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
1734         config/mips/mips-fixed.md, config/mips/sb1.md,
1735         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
1736         config/mips/t-iris6, config/mips/t-isa3264,
1737         config/mips/t-libgcc-mips16, config/mips/t-linux64,
1738         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
1739         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
1740         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
1741         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
1742         config/mn10300/t-linux, config/mn10300/t-mn10300,
1743         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
1744         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
1745         config/picochip/libgccExtras/clzsi2.asm,
1746         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
1747         config/rs6000/darwin-libgcc.10.4.ver,
1748         config/rs6000/darwin-libgcc.10.5.ver,
1749         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
1750         config/rs6000/t-aix43, config/rs6000/t-aix52,
1751         config/rs6000/t-darwin, config/rs6000/t-fprules,
1752         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
1753         config/rs6000/t-lynx, config/rs6000/t-netbsd,
1754         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
1755         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
1756         config/rs6000/t-rtems, config/rs6000/t-spe,
1757         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
1758         config/score/t-score-elf, config/sh/divcost-analysis,
1759         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
1760         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
1761         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
1762         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
1763         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
1764         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
1765         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
1766         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
1767         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
1768         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
1769         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
1770         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
1771         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
1772         limitx.h, version.c, xcoff.h: Add copyright and license notices.
1773         * config/h8300/genmova.sh: Include copyright and license notices
1774         in generated output.
1775         * config/h8300/mova.md: Regenerate.
1776         * doc/install.texi2html: Include word "Copyright" in copyright
1777         notice and use name "Free Software Foundation, Inc.".
1778         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1779         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1780         ChangeLog-2007, ChangeLog-2008: Correct dates.
1781
1782 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
1783
1784         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
1785         NE_EXPR operations as well.
1786         * c-parser.c (c_parser_condition): Do not set location information on
1787         the condition.
1788         (c_parser_conditional_expression): Likewise.
1789         (c_parser_binary_expression): Set location information on operators.
1790         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
1791         TRUTH_NOT_EXPR has been folded.
1792         * fold-const.c (fold_truth_not_expr): Copy location information from
1793         the incoming expression to the outgoing one.
1794         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
1795         recursive calls on the LHS of the operator but pass that of the
1796         operator to recursive calls on the RHS of the operator.  Set it
1797         on the COND_EXPR.
1798         (shortcut_cond_expr): Set the locus of the operator on the second
1799         COND_EXPR and that of the expression on the first in degenerate cases.
1800         Pass the locus of the expression to calls to shortcut_cond_r.
1801         Set the locus of the 'then' block on the associated jump, if any.
1802         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
1803         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
1804         expression to call to gimplify_boolean_expr.
1805
1806 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1807
1808         * config.gcc: Add additional configuration for
1809         i686-w64-mingw* and x86_64-w64-mingw* triplet.
1810         * config/i386/mingw-w64.h: New mingw-w64 specific header.
1811         (CPP_SPEC): Redefine for allowing -municode option.
1812         (STARTFILE_SPEC): Likewise.
1813         * config/i386/t-mingw-w64: New.
1814         * config/i386/mingw-w64.opt: New.
1815         (municode): Add new target option.
1816         * doc/invoke.texi (municode): Add documentation for new option.
1817
1818 2009-04-21  Ian Lance Taylor  <iant@google.com>
1819
1820         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1821         Correct test for number of arguments.
1822         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1823
1824 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
1825
1826         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
1827         argument of emit_library_call.
1828
1829 2009-04-21  Richard Guenther  <rguenther@suse.de>
1830
1831         PR middle-end/39829
1832         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
1833         inside VIEW_CONVERT_EXPRs.
1834
1835 2009-04-21  Martin Jambor  <mjambor@suse.cz>
1836
1837         * tree-switch-conversion.c (build_constructors): Split a long line.
1838         (constructor_contains_same_values_p): New function.
1839         (build_one_array): Create assigns of constants if possible, do not
1840         call mark_sym_for_renaming, call update_stmt.
1841         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
1842         make_rename_temp.  Do not call mark_symbols_for_renaming, call
1843         update_stmt.
1844         (gen_def_assigns): Do not call mark_symbols_for_renaming or
1845         find_new_referenced_vars, call update_stmt.
1846         (gen_inbound_check): Use create_tmp_var and create ssa names manually
1847         instead of calling make_rename_temp.  Do not call
1848         find_new_referenced_vars or mark_symbols_for_renaming, call
1849         update_stmt.
1850
1851 2009-04-21  Richard Guenther  <rguenther@suse.de>
1852
1853         PR tree-optimization/39827
1854         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
1855         (tree_ssa_phiprop): Pass the correct array size.
1856
1857 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
1858
1859         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
1860
1861 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1862
1863         PR 16202
1864         * c-typeck.c (lvalue_p): Move declaration ...
1865         * c-common.h (lvalue_p): ... to here.
1866         * c-common.c (candidate_equal_p): New.
1867         (add_tlist): Use it.
1868         (merge_tlist): Use it.
1869         (warn_for_collisions_1): Likewise.
1870         (warning_candidate_p): Accept more candidates.
1871         (verify_tree): A warning candidate can be an expression. Use
1872         candidate_equal_p.
1873
1874 2009-04-21  Ben Elliston  <bje@au.ibm.com>
1875
1876         PR target/5267
1877         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
1878         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
1879         options.  Remove -mcall-solaris documentation.
1880
1881 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1882
1883         PR c++/13358
1884         * doc/invoke.texi (-Wlong-long): Update description.
1885         * c-lex (interpret_integer): Only warn if there was no previous
1886         overflow and -Wlong-long is enabled.
1887         * c-decl.c (declspecs_add_type): Drop redundant flags.
1888         * c.opt (Wlong-long): Init to -1.
1889         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
1890         and front-end warn_long_long. Wlong-long only depends on other
1891         flags if it is uninitialized.
1892         * c-parser.c (disable_extension_diagnostics): warn_long_long is
1893         the same for CPP and FE.
1894         (restore_extension_diagnostics): Likewise.
1895
1896 2009-04-20  Ian Lance Taylor  <iant@google.com>
1897
1898         Fix enum conversions which are invalid in C++:
1899         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
1900         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
1901         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
1902         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
1903         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
1904         (dbxout_parms): Likewise.
1905         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
1906         (df_clear_flags): Likewise.
1907         * df-problems.c (df_rd_bb_local_compute_process_def): Change
1908         top_flag parameter to int.
1909         (df_chain_create_bb_process_use): Likewise.
1910         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
1911         Remove cast.
1912         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
1913         (df_ref_create_structure, df_def_record_1): Likewise.
1914         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
1915         (df_notes_rescan): Change 0 to VOIDmode in function call.
1916         (df_get_call_refs, df_insn_refs_collect): Likewise.
1917         (df_bb_regs_collect): Likewise.
1918         (df_entry_block_defs_collect): Likewise.
1919         (df_exit_block_uses_collect): Likewise.
1920         * df.h: Update declarations.
1921         * double-int.c (double_int_divmod): Add cast to enum type.
1922         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
1923         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
1924         (based_loc_descr): Likewise.
1925         (loc_descriptor_from_tree_1): Change first_op and second_op to
1926         enum dwarf_location_atom.  Add cast to enum type.
1927         * expmed.c (init_expmed): Change 0 to SET in function call.
1928         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
1929         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
1930         (do_store_flag): Likewise.
1931         * fixed-value.h (struct fixed_value): Change mode to enum
1932         machine_mode.
1933         * function.c (assign_parms): Change 0 to VOIDmode in function call.
1934         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
1935         function call.
1936         (insert_insn_decl, insert_decl, insert_state): Likewise.
1937         (automata_list_finish): Likewise.
1938         * genrecog.c (process_define_predicate): Add cast to enum type.
1939         * gensupport.c (init_predicate_table): Add cast to enum type.
1940         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
1941         function call.
1942         (gimple_build_call_1, gimple_build_label): Likewise.
1943         (gimple_build_goto, gimple_build_asm_1): Likewise.
1944         (gimple_build_switch_1, gimple_build_cdt): Likewise.
1945         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
1946         (enum fallback): Rename from enum fallback_t.
1947         (fallback_t): Typedef as int.
1948         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
1949         GSI_SAME_STMT in function call.
1950         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
1951         enum type.
1952         (setup_reg_class_relations): Likewise.
1953         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
1954         (setup_prohibited_class_mode_regs): Add cast to enum type.
1955         (setup_prohibited_mode_move_regs): Likewise.
1956         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
1957         (record_address_regs): Change i to enum reg_class.
1958         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
1959         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
1960         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
1961         (GET_MODE_2XWIDER_MODE): Likewise.
1962         (GET_CLASS_NARROWEST_MODE): Likewise.
1963         * omp-low.c (expand_omp_for): Add cast to enum type.
1964         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
1965         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
1966         * postreload.c (reload_cse_simplify_operands): Change rclass local
1967         to enum reg_class.
1968         * predict.c (combine_predictions_for_insn): Change best_predictor
1969         and predictor to enum br_predictor.
1970         (combine_predictions_for_bb): Likewise.
1971         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
1972         use SET_PREDICT_EXPR_OUTCOME.
1973         * real.c (real_arithmetic): Change icode to code in function call.
1974         * reginfo.c (init_move_cost): Add casts to enum type.
1975         (init_reg_sets_1, init_fake_stack_mems): Likewise.
1976         * regmove.c (regclass_compatible_p): Change class0 and class1 to
1977         enum reg_class.
1978         * reload.c (find_valid_class): Add casts to enum type.
1979         (push_reload): Change 0 to NO_REGS in function call.
1980         (find_reloads): Change this_alternative to array of enum
1981         reg_class.  Remove some now-unnecessary casts.
1982         (make_memloc): Change 0 to VOIDmode in function call.
1983         * reload1.c (reload): Change 0 to VOIDmode in function call.
1984         (eliminate_regs_1, elimination_effects): Likewise.
1985         (eliminate_regs_in_insn): Likewise.
1986         (emit_input_reload_insns): Add cast to enum type.
1987         (delete_output_reload): Change 0 to VOIDmode in function call.
1988         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
1989         to enum type in function call.
1990         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
1991         (SET_PREDICT_EXPR_OUTCOME): Define.
1992         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
1993         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
1994         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
1995         (dump_function): Likewise.
1996         * tree-dump.h: Update declarations.
1997         * tree-pass.h: Update declarations.
1998         * varasm.c (assemble_integer): Change mclass to enum mode_class.
1999         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2000         enum type.
2001         (arm_rtx_costs_1): Correct parenthesization.
2002         (arm_rtx_costs): Add casts to enum type.
2003         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2004         (vfp_emit_fstmd): Use add_rg_note.
2005         (emit_multi_reg_push, emit_sfm): Likewise.
2006         (thumb_set_frame_pointer): Likewise.
2007         (arm_expand_prologue): Likewise.
2008         (arm_regno_class): Change return type to enum reg_class.
2009         (thumb1_expand_prologue): Use add_reg_note.
2010         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2011         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2012         in function call.
2013         * config/arm/gentune.sh: Add cast to enum type.
2014         * config/arm/arm-tune.md: Rebuild.
2015         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2016         (ix86_split_fp_branch, predict_jump): Likewise.
2017         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2018         insn_code to enum rtx_code.
2019         (ix86_builtin_vectorized_function): Add cast to enum type.
2020         * config/i386/i386.md (truncdfsf2): Change slot to enum
2021         ix86_stack_slot.
2022         (truncxf<mode>2, isinf<mode>2): Likewise.
2023         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2024         enum type.
2025         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2026         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2027         (insert_bundle_state): Change 1 to INSERT in function call.
2028         (ia64_add_bundle_selector_before): Likewise.
2029         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2030         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2031         (restore_stack_nonlocal): Likewise.
2032         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2033         function call.
2034         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2035         function call.
2036         (mips_rtx_costs): Likewise.
2037         (mips_override_options): Add casts to enum type.
2038         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2039         in function call.
2040         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2041         (store_reg, set_reg_plus_d): Likewise.
2042         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2043         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2044         cast to enum type.
2045         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2046         function call.
2047         (emit_unlikely_jump): Use add_reg_note.
2048         (rs6000_emit_allocate_stack): Likewise.
2049         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2050         (output_toc): Change 1 to INSERT in function call.
2051         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2052         (rs6000_initialize_trampoline): Likewise.
2053         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2054         function call.
2055         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2056         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2057         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2058         (save_gprs): Use add_reg_note.
2059         (s390_emit_prologue): Likewise.
2060         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2061         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2062         (sparc_fold_builtin): Add cast to enum type.
2063         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2064         enum insn_code.
2065         (spu_expand_prologue): Use add_reg_note.
2066         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2067
2068 2009-04-20  Ian Lance Taylor  <iant@google.com>
2069
2070         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2071         (c_parser_postfix_expression_after_primary): Get VEC for list of
2072         arguments.  Get original types of arguments.  Call
2073         build_function_call_vec.
2074         (cached_expr_list_1, cached_expr_list_2): New static variables.
2075         (c_parser_expr_list): Change return type to VEC *.  Add
2076         p_orig_types parameter.  Change all callers.
2077         (c_parser_release_expr): New static function.
2078         (c_parser_vec_to_tree_list): New static function.
2079         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2080         call build_function_call_vec.
2081         (build_function_call_vec): New function, based on old
2082         build_function_call.
2083         (convert_arguments): Remove nargs and argarray parameters.  Change
2084         values to a VEC.  Add origtypes parameter.
2085         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2086         (convert_for_assignment): Add origtype parameter.  Change all
2087         callers.  If warn_cxx_compat, check for conversion to an enum
2088         type when calling a function.
2089         (store_init_value): Add origtype parameter.  Change all callers.
2090         (digest_init): Likewise.
2091         (struct init_node): Add origtype field.
2092         (add_pending_init): Add origtype parameter.  Change all callers.
2093         (output_init_element): Likewise.
2094         (output_pending_init_elements): Pass origtype from init_node to
2095         output_init_element.
2096         (process_init_element): Pass origtype from c_expr to
2097         output_init_element.
2098         (c_finish_return): Add origtype parameter.  Change all callers.
2099         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2100         caller.
2101         (sync_resolve_params): Likewise.
2102         (sync_resolve_return): Change params to first_param.  Change caller.
2103         (resolve_overloaded_builtins): Change params to VEC *.  Change
2104         callers.  Save first parameter around call to build_function_call_vec.
2105         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2106         callers.  Call build_function_call_vec rather than
2107         build_function_call for cleanup.
2108         * c-tree.h: Update declarations.
2109         * c-common.h: Update declarations.
2110         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2111         params to first_param.
2112         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2113         params parameter from tree to void *.
2114         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2115         Change arglist parameter to have type void *, and to be a pointer
2116         to a VEC.
2117         * config/rs6000/rs6000-protos.h
2118         (altivec_resolve_overloaded_builtin): Update declaration.
2119         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2120         fnargs parameter to have type void *, and to be a pointer to a
2121         VEC.  Call build_function_call_vec instead of
2122         build_function_call.
2123         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2124
2125 2009-04-20  Joey Ye  <joey.ye@intel.com>
2126             Xuepeng Guo  <xuepeng.guo@intel.com>
2127             H.J. Lu  <hongjiu.lu@intel.com>
2128
2129         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2130
2131         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2132         (IX86_LEA_PRIORITY): Likewise.
2133         (distance_non_agu_define): New function.
2134         (distance_agu_use): Likewise.
2135         (ix86_lea_for_add_ok): Likewise.
2136         (ix86_dep_by_shift_count): Likewise.
2137
2138         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2139         should split for LEA.
2140
2141         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2142         function.
2143         (ix86_dep_by_shift_count): Likewise.
2144
2145 2009-04-20  Richard Guenther  <rguenther@suse.de>
2146
2147         * expr.c (handled_component_p): Move ...
2148         * tree.h (handled_component_p): ... here.
2149         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2150         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2151         and REALPART_EXPR to be in one group.
2152
2153 2009-04-20  Richard Guenther  <rguenther@suse.de>
2154
2155         * basic-block.h (get_all_dominated_blocks): Declare.
2156         * dominance.c (get_all_dominated_blocks): New function.
2157         * tree-cfg.c (get_all_dominated_blocks): Remove.
2158         (remove_edge_and_dominated_blocks): Adjust.
2159         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2160         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2161         instead of recursing.
2162
2163 2009-04-20  Doug Kwan  <dougkwan@google.com>
2164
2165         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2166         (struct cgraph_node_set_def): New type.
2167         (cgraph_node_set) New type. Also declare vector functions.
2168         (struct cgraph_node_set_element_def): New type.
2169         (cgraph_node_set_element): Ditto.
2170         (cgraph_node_set_iterator): New iterator type.
2171         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2172         cgraph_node_set_remove, dump_cgraph_node_set,
2173         debug_cgraph_node_set): New prototypes.
2174         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2175         cgraph_node_set_size): New inlines.
2176         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2177         including cgraph.h.
2178         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2179         argument to function 'write_summary'.
2180         * ipa.c: Include ggc.h.
2181         (hash_cgraph_node_set_element,
2182         eq_cgraph_node_set_element, cgraph_node_set_new,
2183         cgraph_node_set_add, cgraph_node_set_remove,
2184         cgraph_node_set_find, dump_cgraph_node_set,
2185         debug_cgraph_node_set): New functions.
2186         * Makefile.in (ipa.o): Add dependency on GGC_H.
2187
2188 2009-04-20  Ira Rosen  <irar@il.ibm.com>
2189
2190         PR tree-optimization/39675
2191         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
2192         check of the return code of vect_schedule_slp. Check that
2193         stmt_vec_info still exists for the statement, before checking its
2194         vectorization type.
2195
2196 2009-04-20  Michael Matz  <matz@suse.de>
2197
2198         * Makefile.in (generated_files): Take out $(simple_generated_c).
2199
2200 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2201
2202         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
2203         (UINTPTR_TYPE):  Likewise.
2204
2205 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2206
2207         PR c/37481
2208         * c-typeck.c (digest_init): Check for initializing an array with a
2209         string literal.
2210
2211 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2212
2213         PR c/19771
2214         * c-semantics.c (pop_stmt_list): Propagate
2215         STATEMENT_LIST_HAS_LABEL to parent statement list.
2216
2217 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
2218
2219         * config/mips/mips.h (mips_tune_attr): New macro.
2220         * config/mips/mips.md (cpu): Use it.
2221
2222 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2223
2224         PR c/38243
2225         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2226         declaring a tag.
2227
2228 2009-04-19  Diego Novillo  <dnovillo@google.com>
2229
2230         * toplev.c (compile_file): Move call to coverage_finish ...
2231         * cgraphunit.c (ipa_passes): ... here.
2232         Call cgraph_process_new_functions.
2233         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2234         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2235
2236 2009-04-19  Jan Hubicka  <jh@suse.cz>
2237
2238         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2239         cfun.
2240         (dump_cgraph_node): Dump can throw external flag.
2241         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2242
2243 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2244
2245         PR c/32061
2246         PR c++/36954
2247         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2248         * common.opt (Wlogical-op): Move from here...
2249         * c.opt (Wlogical-op): ... to here.
2250         * c-typeck.c (parser_build_binary_op): Update call to
2251         warn_logical_operator.
2252         * c-opts.c (c_common_post_options): Enable warn_logical_op with
2253         extra_warnings.
2254         * c-common.c (warn_logical_op): Update.
2255         * c-common.h (warn_logical_op): Update declaration.
2256
2257 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2258
2259         * tree.c (protected_set_expr_location): Fix formatting.
2260
2261 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2262
2263         PR c/27676
2264         * c-typeck.c (readonly_warning): new.
2265         (build_unary_op, build_modify_expr): Use readonly_warning for
2266         storing into something readonly but not const-qualified.
2267
2268 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2269
2270         PR c/22367
2271         * c-typeck.c (build_unary_op): Check for taking address of
2272         expression of type void.
2273
2274 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2275
2276         PR c/35210
2277         * c-typeck.c (build_function_call): Check for calling a function
2278         with qualified void return types.  Call require_complete_type when
2279         generating a trap.
2280
2281 2009-04-18  Jan Hubicka  <jh@suse.cz>
2282
2283         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2284         Set nothrow flag.
2285         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2286         can_throw_external flag.
2287         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2288         * ipa-pure-const.c (ignore_edge): New function.
2289         (propagate): Compute order for NOTHROW computation; set NOTHROWs
2290         only over can_throw_external edges.
2291         (local_pure_const): Add nothrow flag.
2292         * ipa-utils.c (searchc): Add ignore_edge callback.
2293         (ipa_utils_reduced_inorder): Add ignore_edge callback.
2294         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2295         (set_nothrow_function_flags): Update cgraph.
2296         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2297
2298 2009-04-18  Richard Guenther  <rguenther@suse.de>
2299
2300         PR middle-end/39804
2301         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2302         (fold_stmt): ... this and ...
2303         (fold_stmt_inplace): ... this.
2304         (fold_stmt_1): Fold references in calls and asms.
2305         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2306
2307 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2308
2309         * tree-vrp.c (ssa_name_nonzero_p): Remove.
2310         * tree.h: Remove the prototype for ssa_name_nonzero_p.
2311
2312 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2313
2314         * tree.c (function_args_count): Remove.
2315         * tree.h: Remove the prototype for function_args_count.
2316
2317 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2318
2319         * tree-iterator.c (expr_only): Remove.
2320         * tree.h: Remove the prototype for expr_only.
2321
2322 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2323
2324         * reginfo.c (cannot_change_mode_set_regs): Remove.
2325         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2326
2327 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
2328
2329         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2330         whether operands 0 and 1 overlaps.
2331
2332 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2333
2334         PR middle-end/36902
2335         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2336         pointer. Use warning_at instead of warning.
2337         (search_for_addr_array): Likewise.
2338         (check_array_bounds): Likewise.
2339         (check_all_array_refs): Check that the incoming edge is not in the
2340         list of edges to be removed.
2341         (check_all_array_refs): Avoid the temporal pointer.
2342         (vrp_visit_cond_stmt): Fix typo.
2343         (simplify_switch_using_ranges): Handle the case where the switch
2344         index is an integer constant.
2345
2346 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
2347
2348         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2349
2350 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2351
2352         * doc/extend.texi, doc/invoke.texi: Fix typos.
2353
2354 2009-04-17  Cary Coutant  <ccoutant@google.com>
2355
2356         * tree-flow-inline.h (get_lineno): Fix inverted test.
2357
2358 2009-04-17  Diego Novillo  <dnovillo@google.com>
2359
2360         * tree-ssa-pre.c (create_expression_by_pieces): Remove
2361         assertion for AVAIL_OUT.
2362
2363 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
2364
2365         PR target/38627
2366         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2367         * config/sh/linux-atomic.asm: Likewise.
2368
2369 2009-04-17  Diego Novillo  <dnovillo@google.com>
2370
2371         * except.c (debug_eh_tree): New.
2372         (struct eh_region, struct eh_status): Move ...
2373         * except.h: ... here.
2374         (add_type_for_runtime): Declare extern.
2375         (lookup_type_for_runtime): Likewise.
2376         (debug_eh_tree): Declare.
2377         * Makefile.in (GTFILES): List except.h before except.c
2378
2379 2009-04-17  Diego Novillo  <dnovillo@google.com>
2380
2381         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
2382         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2383         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2384         (find_vars_r): ... here.
2385         * tree-flow.h (find_referenced_vars_in): Declare.
2386         * tree-ssa-pre.c (create_expression_by_pieces): Assert
2387         that AVAIL_OUT exists for BLOCK.
2388         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2389         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2390         (tree-parloops.o): Likewise.
2391
2392 2009-04-17  Simon Baldwin  <simonb@google.com>
2393
2394         * toplev.c (default_tree_printer): Add handling for %E format.
2395
2396 2009-04-17  Diego Novillo  <dnovillo@google.com>
2397
2398         * tree-pretty-print.c (dump_generic_node): Add break after
2399         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
2400         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
2401         FUNCTION_TYPE together.  Call print_struct_decl when printing
2402         structures and TDF_SLIM is not given.
2403         (print_struct_decl): Fix logic for detecting recursion.
2404
2405 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2406
2407         PR 31567
2408         * gcc.c (create_at_file): New.
2409         (compile_input_file_p): New.
2410         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2411         * main.c (main): Update call to toplev_main.
2412         * toplev.c (toplev_main): Change signature. Call expandargv.
2413         * toplev.h (toplev_main): Change signature.
2414
2415 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2416
2417         * dwarf2out.c (field_byte_offset): Use the type size as the field size
2418         if the latter is not constant.
2419
2420 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
2421
2422         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2423
2424 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2425
2426         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
2427         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
2428
2429 2009-04-17  Richard Guenther  <rguenther@suse.de>
2430
2431         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2432         Handle component references view-converting an invariant address.
2433
2434 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
2435
2436         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
2437         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
2438         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
2439         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
2440         Use @deftypevr rather than @deftypevar.
2441
2442 2009-04-17  Richard Guenther  <rguenther@suse.de>
2443
2444         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
2445         (get_prop_source_stmt): Likewise.
2446         (can_propagate_from): Likewise.
2447
2448 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
2449
2450         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
2451         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
2452         (--with-multilib-list): Add default value.
2453         * configure: Regenerate.
2454         * Makefile.in (TM_ENDIAN_CONFIG): Define.
2455         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
2456         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
2457         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
2458         Don't add default cpu to multilib list unnecessarily, but do enable
2459         the relevant compiler option..
2460         Add support for --with-multilib-list=<blank> and
2461         --with-multilib-list=!<somelib> to supress unwanted multilibs.
2462         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
2463         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
2464         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
2465         TM_MULTILIB_CONFIG.
2466         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
2467         (MULTILIB_OSDIRNAMES): New variable.
2468         * config/sh/t-1e: Delete file.
2469         * config/sh/t-mlib-sh1: Delete file.
2470         * config/sh/t-mlib-sh2: Delete file.
2471         * config/sh/t-mlib-sh2a: Delete file.
2472         * config/sh/t-mlib-sh2a-nofpu: Delete file.
2473         * config/sh/t-mlib-sh2a-single: Delete file.
2474         * config/sh/t-mlib-sh2a-single-only: Delete file.
2475         * config/sh/t-mlib-sh2e: Delete file.
2476         * config/sh/t-mlib-sh3e: Delete file.
2477         * config/sh/t-mlib-sh4: Delete file.
2478         * config/sh/t-mlib-sh4-nofpu: Delete file.
2479         * config/sh/t-mlib-sh4-single: Delete file.
2480         * config/sh/t-mlib-sh4-single-only: Delete file.
2481         * config/sh/t-mlib-sh4a: Delete file.
2482         * config/sh/t-mlib-sh4a-nofpu: Delete file.
2483         * config/sh/t-mlib-sh4a-single: Delete file.
2484         * config/sh/t-mlib-sh4a-single-only: Delete file.
2485         * config/sh/t-mlib-sh4al: Delete file.
2486         * config/sh/t-mlib-sh5-32media: Delete file.
2487         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
2488         * config/sh/t-mlib-sh5-64media: Delete file.
2489         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
2490         * config/sh/t-mlib-sh5-compact: Delete file.
2491         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
2492         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
2493         * doc/install.texi (Options specification): Add
2494         --with-multilib-list and --with-endian.
2495
2496 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2497
2498         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
2499         REVISION_c.
2500         (OBJS-common): Add plugin-version.o.
2501         (plugin-version.o): New.
2502         * gcc-plugin.h (plugin_gcc_version): New.
2503         (plugin_default_version_check): New.
2504         (plugin_init_func, plugin_init): Add version argument.
2505         * plugin-version.c: New.
2506         * plugin.c (str_plugin_gcc_version_name): New.
2507         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
2508         pass it to the init function.
2509         (plugin_default_version_check): New.
2510
2511 2009-04-17  Richard Guenther  <rguenther@suse.de>
2512
2513         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
2514         for decl-vs-decl disambiguation.
2515
2516 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2517
2518         * config/s390/s390.h (s390_tune_attr): New macro definition.
2519         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
2520
2521 2009-04-17  Richard Guenther  <rguenther@suse.de>
2522
2523         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
2524         (fold_stmt_r): Likewise.
2525         (maybe_fold_reference): New function.
2526         (fold_gimple_assign): Handle cases fold_stmt_r did.
2527         (fold_stmt): Do not use fold_stmt_r.
2528         (fold_stmt_inplace): Likewise.
2529
2530 2009-04-17  Richard Guenther  <rguenther@suse.de>
2531
2532         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
2533         (record_equivalences_from_stmt): Remove useless checks and
2534         simplifications.
2535         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
2536         the type is already suitable.
2537
2538 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
2539
2540         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
2541
2542 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
2543
2544         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
2545         (CMPtype): Define as __gcc_CMPtype.
2546
2547 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
2548
2549         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
2550         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
2551
2552 2009-04-17  Richard Guenther  <rguenther@suse.de>
2553
2554         PR tree-optimization/39746
2555         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
2556         special-casing for builtins and static variable use/def.
2557         (call_may_clobber_ref_p_1): Likewise.
2558
2559 2009-04-16  Ian Lance Taylor  <iant@google.com>
2560
2561         * df.h: Include "timevar.h".
2562         (struct df_problem): Change tv_id field to timevar_id_t.
2563         * tree-pass.h: Include "timevar.h".
2564         (struct opt_pass): Change tv_id field to timevar_id_t.
2565         * timevar.h (timevar_id_t): Define TV_NONE.
2566         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
2567         TV_NONE rather than tv_id != 0.
2568         (execute_one_pass): Likewise.
2569         * Makefile.in (DF_H): Add $(TIMEVAR_H).
2570         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
2571         dependencies to $(TREE_PASS_H).
2572         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
2573         to TV_NONE.
2574         (pass_branch_target_load_optimize2): Likewise.
2575         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
2576         (pass_outof_cfg_layout_mode): Likewise.
2577         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
2578         (pass_rebuild_cgraph_edges): Likewise.
2579         (pass_remove_cgraph_callee_edges): Likewise.
2580         * df-core.c (pass_df_initialize_opt): Likewise.
2581         (pass_df_initialize_no_opt): Likewise.
2582         (pass_df_finish): Likewise.
2583         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
2584         * except.c (pass_set_nothrow_function_flags): Likewise.
2585         (pass_convert_to_eh_region_ranges): Likewise.
2586         * final.c (pass_compute_alignments): Likewise.
2587         * function.c (pass_instantiate_virtual_regs): Likewise.
2588         (pass_init_function): Likewise.
2589         (pass_leaf_regs): Likewise.
2590         (pass_match_asm_constraints): Likewise.
2591         * gimple-low.c (pass_lower_cf): Likewise.
2592         (pass_mark_used_blocks): Likewise.
2593         * init-regs.c (pass_initialize_regs): Likewise.
2594         * integrate.c (pass_initial_value_sets): Likewise.
2595         * ira.c (pass_ira): Likewise.
2596         * jump.c (pass_cleanup_barriers): Likewise.
2597         * omp-low.c (pass_expand_omp): Likewise.
2598         (pass_lower_omp): Likewise.
2599         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
2600         * recog.c (pass_split_all_insns): Likewise.
2601         (pass_split_after_reload): Likewise.
2602         (pass_split_before_regstack): Likewise.
2603         (pass_split_before_sched2): Likewise.
2604         (pass_split_for_shorten_branches): Likewise.
2605         * reginfo.c (pass_reginfo_init): Likewise.
2606         (pass_subregs_of_mode_init): Likewise.
2607         (pass_subregs_of_mode_finish): Likewise.
2608         * passes.c (pass_postreload): Likewise.
2609         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2610         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
2611         (pass_warn_function_return): Likewise.
2612         (pass_warn_function_noreturn): Likewise.
2613         * tree-complex.c (pass_lower_complex): Likewise.
2614         (pass_lower_complex_O0): Likewise.
2615         * tree-if-conv.c (pass_if_conversion): Likewise.
2616         * tree-into-ssa.c (pass_build_ssa): Likewise.
2617         * tree-mudflap.c (pass_mudflap_1): Likewise.
2618         (pass_mudflap_2): Likewise.
2619         * tree-nomudflap.c (pass_mudflap_1): Likewise.
2620         (pass_mudflap_2): Likewise.
2621         * tree-nrv.c (pass_return_slot): Likewise.
2622         * tree-object-size.c (pass_object_sizes): Likewise.
2623         * tree-optimize.c (pass_all_optimizations): Likewise.
2624         (pass_early_local_passes): Likewise.
2625         (pass_all_early_optimizations): Likewise.
2626         (pass_cleanup_cfg): Likewise.
2627         (pass_cleanup_cfg_post_optimizing): Likewise.
2628         (pass_free_datastructures): Likewise.
2629         (pass_free_cfg_annotations): Likewise.
2630         (pass_fixup_cfg): Likewise.
2631         (pass_init_datastructures): Likewise.
2632         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
2633         (pass_late_warn_uninitialized): Likewise.
2634         (pass_update_address_taken): Likewise.
2635         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
2636         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
2637         (pass_cse_sincos): Likewise.
2638         (pass_convert_to_rsqrt): Likewise.
2639         * tree-ssa-structalias.c (pass_build_alias): Likewise.
2640         * tree-stdarg.c (pass_stdarg): Likewise.
2641         * tree-tailcall.c (pass_tail_recursion): Likewise.
2642         (pass_tail_calls): Likewise.
2643         * tree-vect-generic.c (pass_lower_vector): Likewise.
2644         (pass_lower_vector_ssa): Likewise.
2645         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
2646
2647 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
2648
2649         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
2650         XLR entry.
2651         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
2652         Handle -march=xlr.
2653         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
2654         logical and signext.
2655
2656 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2657
2658         PR target/39767
2659         * config/sh/predicates.md (arith_operand): Check if the operand
2660         of TRUNCATE is a REG.
2661
2662 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2663
2664         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2665         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2666
2667 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2668
2669         * tree-iterator.c (tsi_split_statement_list_after,
2670         tsi_split_statement_list_before): Remove.
2671         * tree-iterator.h: Remove the prototypes for
2672         tsi_split_statement_list_after and tsi_split_statement_list_before.
2673
2674 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2675
2676         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
2677         * tree-ssa-propagate.h: Remove the prototype for
2678         stmt_makes_single_load.
2679
2680 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2681
2682         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
2683         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
2684
2685 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2686
2687         * tree-iterator.c (EXPR_LAST_BODY): Remove.
2688
2689 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2690
2691         * except.c (eh_region_outer_p): Remove.
2692         * except.h: Remove the prototype for eh_region_outer_p.
2693
2694 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2695
2696         * function.c (current_function_assembler_name): Remove.
2697         * function.h: Remove the prototype for
2698         current_function_assembler_name.
2699
2700 2009-04-16  Ian Lance Taylor  <iant@google.com>
2701
2702         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
2703         (add_reg_note): Call alloc_reg_note.
2704         * rtl.h (alloc_reg_note): Declare.
2705         * combine.c (try_combine): Use alloc_reg_note.
2706         (recog_for_combine, move_deaths): Likewise.
2707         (distribute_notes): Use alloc_reg_note and add_reg_note.
2708         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
2709         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
2710         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
2711
2712 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
2713
2714         PR rtl-optimization/39762
2715         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
2716         ira_may_move_out_cost): Add comments about way of their usage.
2717         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2718
2719         * ira-conflicts.c (process_regs_for_copy): Use function
2720         ira_get_register_move_cost instead of global
2721         ira_register_move_cost.
2722
2723         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
2724         color_pass, move_spill_restore, update_curr_costs): Ditto.
2725
2726         * ira-lives.c (process_single_reg_class_operands): Ditto.
2727
2728         * ira-emit.c (emit_move_list): Ditto.
2729
2730         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
2731         (record_reg_classes): Ditto.  Use functions
2732         ira_get_register_move_cost and ira_get_may_move_cost instead of
2733         global vars ira_register_move_cost, ira_may_move_out_cost and
2734         ira_may_move_in_cost.
2735         (record_address_regs): Don't call ira_init_register_move_cost.
2736         Use function ira_get_may_move_cost instead of global
2737         ira_may_move_in_cost.
2738         (process_bb_node_for_hard_reg_moves): Use function
2739         ira_get_register_move_cost instead of global ira_register_move_cost.
2740         (ira_costs): Don't call ira_init_register_move_cost.
2741
2742 2009-04-16  Richard Guenther  <rguenther@suse.de>
2743
2744         * tree-cfg.c (verify_gimple_assign_binary):
2745         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
2746         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
2747         (create_general_new_stmt): Note that this function is broken.
2748
2749 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2750
2751         * common.opt (fhelp): Add Var(help_flag).
2752         * gcc-plugin.h (plugin_info): Add help.
2753         * plugin.c (plugin_name_args): Add help.
2754         (register_plugin_info): Set plugin->help.
2755         (print_help_one_plugin): New.
2756         (print_plugins_help): New.
2757         * plugin.h (print_plugins_help): New.
2758         * toplev.c (toplev_main): Call print_plugins_help if needed.
2759
2760 2009-04-16  Richard Guenther  <rguenther@suse.de>
2761
2762         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
2763         (gimple_ior_addresses_taken_1): New function.
2764         (gimple_ior_addresses_taken): Likewise.
2765         * gimple.h (struct gimple_statement_with_ops_base): Remove
2766         addresses_taken member.
2767         (gimple_ior_addresses_taken): Declare.
2768         (gimple_addresses_taken, gimple_addresses_taken_ptr,
2769         gimple_set_addresses_taken): Remove.
2770         * ipa-reference.c (mark_address): New function.
2771         (scan_stmt_for_static_refs): Use it for marking addresses taken.
2772         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
2773         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
2774         (gimple_add_to_addresses_taken): Remove.
2775         (get_tmr_operands): Call mark_address_taken.
2776         (get_asm_expr_operands): Likewise.
2777         (get_expr_operands): Likewise.
2778         (build_ssa_operands): Do not clear the addresses_taken bitmap.
2779         (free_stmt_operands): Do not free it.
2780         * tree-ssa.c (delete_tree_ssa): Likewise.
2781         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
2782
2783 2009-04-16  Richard Guenther  <rguenther@suse.de>
2784
2785         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
2786         (walk_stmt_load_store_ops): Likewise.
2787         * gimple.c (get_base_loadstore): New function.
2788         (walk_stmt_load_store_addr_ops): Likewise.
2789         (walk_stmt_load_store_ops): Likewise.
2790         * ipa-pure-const.c (check_op): Simplify.
2791         (check_load, check_store): New functions.
2792         (check_stmt): Use walk_stmt_load_store_ops.
2793         * ipa-reference.c (mark_load): Adjust signature.
2794         (mark_store): Likewise.
2795         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
2796
2797 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2798
2799         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
2800         (plugin_info): New.
2801         * opts.c (common_handle_option): Don't call print_version.
2802         * plugin.c (plugin_name_args): Add version.
2803         (register_plugin_info): New.
2804         (register_callback): Handle PLUGIN_INFO.
2805         (try_init_one_plugin): New.
2806         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
2807         if failed to init.
2808         (finalize_one_plugin): New.
2809         (finalize_plugins): New.
2810         (print_one_plugin): New.
2811         (print_plugins_versions): New.
2812         * plugin.h (print_plugins_versions): New.
2813         (finalize_plugins): New.
2814         * toplev.c (compile_file): Don't call initialize_plugins.
2815         (print_version): Call print_plugins_versions.
2816         (toplev_main): Call initialize_plugins. Print version if needed.
2817         Call finalize_plugins.
2818
2819 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2820
2821         * common.opt (fversion): New.
2822         * gcc.c (print_version): New.
2823         (process_command): Don't print the version. Just set print_version.
2824         (main): Print version. Call subprocesses if print_version and
2825         verbose_flag are set.
2826         * opts.c (common_handle_option): Handle OPT_fversion.
2827
2828 2009-04-16  Richard Guenther  <rguenther@suse.de>
2829             Ira Rosen  <irar@il.ibm.com>
2830
2831         PR tree-optimization/39698
2832         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
2833         type of the reduction variable.  Only generate the def if
2834         it is needed.
2835
2836         * omp-low.c (expand_omp_for_generic): When converting to a pointer
2837         make sure to first convert to an integer of the same precision.
2838         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
2839         the type of the evolution correctly in computing the new
2840         induction variable base.
2841
2842 2009-04-16  Richard Guenther  <rguenther@suse.de>
2843
2844         PR middle-end/39625
2845         * tree-cfg.c (make_blocks): Split statements with to-be
2846         abnormal SSA names on the lhs.
2847
2848 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
2849
2850         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
2851         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
2852         * c-typeck.c (really_start_incremental_init): Likewise.
2853         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
2854         (TARGET_INITIALIZER): Remove it.
2855         * target.h (struct target): Remove vector_opaque_p.
2856         * tree.c (build_opaque_vector_type): New.
2857         * tree.h (TYPE_VECTOR_OPAQUE): New.
2858         (build_opaque_vector_type): Declare.
2859         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
2860         * config/rs6000/rs6000.c (build_opaque_vector_type,
2861         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
2862         (rs6000_init_builtins): Use build_opaque_vector_type for
2863         opaque_V4SI_type_node.
2864
2865 2009-04-15  Catherine Moore  <clm@codesourcery.com>
2866
2867         * debug.h (set_name):  Declare.
2868         * dwarf2out.c (dwarf2out_set_name): Declare.
2869         (dwarf2_debug_hooks): Add set_name.
2870         (find_AT_string): New.
2871         (add_AT_string): Call find_AT_string.
2872         (dwarf2out_set_name): New.
2873         * cp/decl.c (grokdeclarator): Call set_name.
2874         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
2875         * debug.c (do_nothing_debug_hooks):  Likewise.
2876         * dbxout.c (dbx_debug_hooks): Likewise.
2877         * sdbout.c (sdb_debug_hooks): Likewise.
2878
2879 2009-04-15  Michael Eager  <eager@eagercon.com>
2880
2881         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
2882         reg for single-precision FPU.
2883         * config/rs6000/rs6000.md (movsi_internal1): Only for
2884         !TARGET_SINGLE_FPU.
2885         (movsi_internal1_single): New. Add pattern to move SI values to/from
2886         single-precision FP regs.
2887
2888 2009-04-15  Richard Guenther  <rguenther@suse.de>
2889
2890         * omp-low.c (lower_rec_input_clauses): Build correct address
2891         expressions.
2892         (expand_omp_for_generic): Fix multiplication type.
2893         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
2894         (generate_memset_zero): Fix types.
2895         * tree-profile.c (prepare_instrumented_value): Correctly
2896         widen a pointer.
2897
2898 2009-04-15  Ian Lance Taylor  <iant@google.com>
2899
2900         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
2901         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
2902         for -Wall and for -Wc++-compat.
2903         (c_common_post_options): For C++, set warn_enum_compare if not
2904         already set.
2905         * c-tree.h (struct c_expr): Add field original_type.
2906         (build_external_ref): Update declaration.
2907         * c-parser.c (c_parser_braced_init): Set original_type.
2908         (c_parser_initelt): Likewise.
2909         (c_parser_expr_no_commas): Likewise.
2910         (c_parser_conditional_expression): Likewise.
2911         (c_parser_cast_expression): Likewise.
2912         (c_parser_unary_expression): Likewise.  Pull setting of
2913         original_code to top of function.
2914         (c_parser_sizeof_expression): Set original_type.
2915         (c_parser_alignof_expression): Likewise.
2916         (c_parser_postfix_expression): Likewise.  Pull setting of
2917         original_code to top of function.
2918         (c_parser_postfix_expression_after_paren_type): Set original_type.
2919         (c_parser_postfix_expression_after_primary): Likewise.
2920         (c_parser_expression): Likewise.
2921         * c-typeck.c (build_external_ref): Add type parameter.  Change all
2922         callers.
2923         (c_expr_sizeof_expr): Set original_type field.
2924         (parser_build_unary_op): Likewise.
2925         (parser_build_binary_op): Likewise.  Optionally warn about
2926         comparisons of enums of different types.
2927         (digest_init): Set original_type field.
2928         (really_start_incremental_init): Likewise.
2929         (push_init_level, pop_init_level): Likewise.
2930         * doc/invoke.texi (Warning Options): -Wenum-compare now
2931         supported in C.
2932
2933 2009-04-15  Richard Guenther  <rguenther@suse.de>
2934
2935         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
2936         out a necessary conversion.
2937         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
2938         names we didn't value number.
2939         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
2940
2941 2009-04-15  Richard Guenther  <rguenther@suse.de>
2942
2943         PR tree-optimization/39764
2944         * tree-ssa-ccp.c (get_value): Canonicalize value with
2945         canonicalize_float_value.
2946
2947 2009-04-15  Jan Hubicka  <jh@suse.cz>
2948
2949         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
2950         Wrong version of patch.
2951
2952 2009-04-15  Jan Hubicka  <jh@suse.cz>
2953
2954         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
2955
2956 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
2957
2958         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
2959         our distinct integral and vector types.
2960
2961 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
2962
2963         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
2964         * init.c (build_vtbl_address): Remove call to assemble_external.
2965
2966 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
2967
2968         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
2969         output for other floating point modes.
2970
2971 2009-04-14  Diego Novillo  <dnovillo@google.com>
2972
2973         * diagnostic.c (diagnostic_report_diagnostic): Do not
2974         warn about loaded plugins for DK_ERROR and DK_WARNING.
2975         * c-decl.c (declspecs_add_type): Move call to
2976         invoke_plugin_callbacks ...
2977         * c-parser.c (c_parser_declspecs): ... here.
2978         * plugin.c (dump_active_plugins): Tidy output.
2979
2980 2009-04-14  Diego Novillo  <dnovillo@google.com>
2981             Le-Chun Wu  <lcwu@google.com>
2982
2983         * configure.ac: Add --enable-plugin support.
2984         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
2985         * Makefile.in (PLUGIN_H): Define.
2986         Export ENABLE_PLUGIN and GMPINC to site.exp.
2987         Add PLUGINLIBS to link command.
2988         Add/modify dependencies for plugin.o and files including plugin.h.
2989         (plugin.o): New.
2990         * config.in: Regenerate.
2991
2992         * opts.c (common_handle_option): Handle OPT_fplugin_ and
2993         OPT_fplugin_arg_.
2994
2995 2009-04-14  Le-Chun Wu  <lcwu@google.com>
2996
2997         * tree-pass.h (register_one_dump_file): Add a prototype for
2998         register_one_dump_file.
2999         * toplev.c (compile_file): Call initialize_plugins.
3000         (do_compile): Call invoke_plugin_callbacks.
3001         (toplev_main): Call invoke_plugin_callbacks.
3002         * common.opt: Add -fplugin= and -fplugin-arg-.
3003         * gcc-plugin.h: New public header file for plugins to include.
3004         * plugin.c: New source file.
3005         * plugin.h: New internal header file.
3006         * passes.c (register_one_dump_file): Make it external.
3007
3008         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3009
3010 2009-04-14  Diego Novillo  <dnovillo@google.com>
3011
3012         * doc/plugins.texi: New.
3013         * doc/gccint.texi: Add reference to Plugins chapter.
3014         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3015         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3016         loaded plugins, if any.
3017         * timevar.def (TV_PLUGIN_INIT): Define.
3018         (TV_PLUGIN_RUN): Define.
3019         * plugin.c: Include timevar.h
3020         (plugins_active_p): New.
3021         (dump_active_plugins): New.
3022         (debug_active_plugins): New.
3023
3024 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3025
3026         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3027         library paths.
3028         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3029
3030 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3031
3032         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3033         the same as a minus without a shift.
3034
3035 2009-04-14  Nick Clifton  <nickc@redhat.com>
3036
3037         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3038         comparisons with small integers will always produce a short
3039         branch.
3040
3041 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3042
3043         Merge:
3044         2008-12-19  Diego Novillo  <dnovillo@google.com>
3045
3046         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3047
3048 2009-04-14  Richard Guenther  <rguenther@suse.de>
3049
3050         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3051         verification.
3052         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3053         rotates correctly.
3054         (verify_gimple_phi): Print the mismatched argument position.
3055         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3056         Fix types.
3057         (vect_update_init_of_dr): Likewise.
3058         * matrix-reorg.c (transform_access_sites): Do what the
3059         comment suggests.
3060         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3061
3062 2009-04-13  Michael Eager  <eager@eagercon.com>
3063
3064         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3065         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3066         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3067         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3068         remove duplicate config
3069
3070 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3071
3072         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3073         file_name:line_number type locator of the call site.
3074
3075 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3076
3077         * genautomata.c: Put blank after comma.
3078         (automaton_decls): New.
3079         (struct unit_usage): Add comments to member next.
3080         (store_alt_unit_usage): Keep the list ordered.
3081         (unit_present_on_list_p, equal_alternatives_p): New.
3082         (check_regexp_units_distribution): Check units distribution
3083         correctness correctly.
3084         (main): Don't write automata if error is found.  Return correct
3085         exit code.
3086
3087         * config/m68k/cf.md (cfv4_ds): Remove.
3088         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3089         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3090
3091         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3092         power4-load-ext, power4-store, power4-store-update,
3093         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3094         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3095         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3096         power4-sqrt, power4-isync): Modify reservation to make correct
3097         unit distribution to automata.
3098
3099         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3100         power5-store-update, power5-two, power5-three, power5-lmul,
3101         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3102
3103 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3104
3105         * except.c (pass_set_nothrow_function_flags): Set name and add
3106         TODO_dump_func.
3107         (set_nothrow_function_flags): Mention in the dump file when
3108         changing a function to nothrow.
3109
3110 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3111
3112         PR/39066
3113         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3114         instead of unsigned long.
3115
3116 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3117
3118         * config/arm/arm.c (return_used_this_function): Remove.
3119         (arm_output_function_prologue): Remove use of
3120         return_used_this_function.
3121         (output_return_instruction): Replace use of
3122         return_used_this_function
3123         by cfun->machine->return_used_this_function.
3124         (arm_output_epilogue): Likewise.
3125         (arm_output_function_epilogue): Likewise.
3126         (thumb_unexpanded_epilogue): Likewise.
3127         * config/arm/arm.h (struct machine_function):
3128         New member return_used_this_function.
3129
3130 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3131
3132         * doc/install.texi: Correct description of default directory for
3133         --with-gxx-include-dir.
3134
3135 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3136
3137         * fold-const.c (build_range_check): Properly deal with enumeral and
3138         boolean base types.
3139
3140 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3141
3142         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3143         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3144         * params.h (MAX_GCSE_PASSES): Remove.
3145         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3146         in sequence.  Remove ability to run multiple passes.
3147         (bypass_jumps): Report run as third CPROP pass.
3148
3149 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3150
3151         PR middle-end/39651
3152         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3153         when deciding whether the whole SEQUENCE can throw.
3154
3155 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3156
3157         PR target/39740
3158         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3159         offseted label references.
3160
3161 2009-04-11  Jan Hubicka  <jh@suse.cz>
3162
3163         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3164
3165 2009-04-11  Richard Guenther  <rguenther@suse.de>
3166
3167         PR middle-end/39732
3168         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3169         return variables as TREE_ADDRESSABLE.
3170
3171 2009-04-11  Richard Guenther  <rguenther@suse.de>
3172
3173         PR tree-optimization/39713
3174         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3175         reference trees have SSA_NAME operands.
3176
3177 2009-04-11  Richard Guenther  <rguenther@suse.de>
3178
3179         PR c/39712
3180         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3181         address expressions.
3182
3183 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3184
3185         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
3186         match changes in Cygwin 1.7
3187         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3188         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
3189
3190 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3191
3192         PR tree-optimization/39701
3193         * doc/invoke.texi (Optimization Options): Document change in
3194         meaning and initialization of -fdelete-null-pointer-checks.
3195
3196 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3197
3198         PR middle-end/39701
3199         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3200
3201         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3202         here.
3203
3204         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3205
3206 2009-04-10  Chao-ying Fu  <fu@mips.com>
3207
3208         * doc/tm.texi (Instruction Output): Document
3209         TARGET_ASM_FINAL_POSTSCAN_INSN.
3210         * target.h (final_postscan_insn): New field in asm_out.
3211         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3212         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3213         * final.c (final_scan_insn): Call
3214         targetm.asm_out.final_postscan_insn after outputting
3215         an asm macro and a normal instruction.
3216
3217         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3218         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3219         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3220         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3221         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3222
3223 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3224
3225         PR middle-end/39701
3226         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3227         variables as non-NULL even with -fdelete-null-pointer-checks.
3228
3229 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3230
3231         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3232
3233 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
3234
3235         PR target/39678
3236         * config/i386/i386.c (classify_argument): Handle SCmode with
3237         (bit_offset % 64) != 0.
3238
3239 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
3240
3241         * doc/invoke.texi (Optimize Options): Add cross-reference to
3242         -Q --help=optimizers examples.
3243
3244 2009-04-10  Ben Elliston  <bje@au.ibm.com>
3245
3246         PR target/36800
3247         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3248         regalign for the reg == fpr and TDmode case.
3249
3250 2009-04-09  David Ayers  <ayers@fsfe.org>
3251
3252         PR objc/29200
3253         * objc/objc-act.c (warn_with_method): Remove helper function.
3254         (check_duplicates): Call warning and inform directly.
3255         (really_start_method): Likewise.
3256
3257 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
3258
3259         * expmed.c (expand_divmod): Always use a comparison for a division
3260         by a large unsigned integer.
3261
3262         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3263         for things others than variables or functions as nonzero.
3264
3265 2009-04-09  Nick Clifton  <nickc@redhat.com>
3266
3267         * unwind-compat.c: Change copyright header to refer to version
3268         3 of the GNU General Public License with version 3.1 of the
3269         GCC Runtime Library Exception and to point readers at the
3270         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
3271         * config/alpha/crtfastmath.c: Likewise.
3272         * config/alpha/linux-unwind.h: Likewise.
3273         * config/alpha/qrnnd.asm: Likewise.
3274         * config/alpha/vms-crt0-64.c: Likewise.
3275         * config/alpha/vms-crt0.c: Likewise.
3276         * config/alpha/vms-dwarf2.asm: Likewise.
3277         * config/alpha/vms-dwarf2eh.asm: Likewise.
3278         * config/alpha/vms-psxcrt0-64.c: Likewise.
3279         * config/alpha/vms-psxcrt0.c: Likewise.
3280         * config/alpha/vms_tramp.asm: Likewise.
3281         * config/arc/initfini.c: Likewise.
3282         * config/arc/lib1funcs.asm: Likewise.
3283         * config/arm/bpabi-v6m.S: Likewise.
3284         * config/arm/bpabi.S: Likewise.
3285         * config/arm/bpabi.c: Likewise.
3286         * config/arm/crti.asm: Likewise.
3287         * config/arm/crtn.asm: Likewise.
3288         * config/arm/ieee754-df.S: Likewise.
3289         * config/arm/ieee754-sf.S: Likewise.
3290         * config/arm/lib1funcs.asm: Likewise.
3291         * config/arm/libunwind.S: Likewise.
3292         * config/arm/linux-atomic.c: Likewise.
3293         * config/arm/mmintrin.h: Likewise.
3294         * config/arm/pr-support.c: Likewise.
3295         * config/arm/unaligned-funcs.c: Likewise.
3296         * config/arm/unwind-arm.c: Likewise.
3297         * config/arm/unwind-arm.h: Likewise.
3298         * config/avr/libgcc.S: Likewise.
3299         * config/bfin/crti.s: Likewise.
3300         * config/bfin/crtlibid.s: Likewise.
3301         * config/bfin/crtn.s: Likewise.
3302         * config/bfin/lib1funcs.asm: Likewise.
3303         * config/bfin/linux-unwind.h: Likewise.
3304         * config/cris/arit.c: Likewise.
3305         * config/cris/cris_abi_symbol.c: Likewise.
3306         * config/darwin-64.c: Likewise.
3307         * config/darwin-crt2.c: Likewise.
3308         * config/darwin-crt3.c: Likewise.
3309         * config/darwin.h: Likewise.
3310         * config/dbxelf.h: Likewise.
3311         * config/dfp-bit.c: Likewise.
3312         * config/dfp-bit.h: Likewise.
3313         * config/elfos.h: Likewise.
3314         * config/fixed-bit.c: Likewise.
3315         * config/fixed-bit.h: Likewise.
3316         * config/fp-bit.c: Likewise.
3317         * config/fp-bit.h: Likewise.
3318         * config/fr30/crti.asm: Likewise.
3319         * config/fr30/crtn.asm: Likewise.
3320         * config/fr30/lib1funcs.asm: Likewise.
3321         * config/freebsd-spec.h: Likewise.
3322         * config/frv/cmovd.c: Likewise.
3323         * config/frv/cmovh.c: Likewise.
3324         * config/frv/cmovw.c: Likewise.
3325         * config/frv/frvbegin.c: Likewise.
3326         * config/frv/frvend.c: Likewise.
3327         * config/frv/lib1funcs.asm: Likewise.
3328         * config/glibc-stdint.h: Likewise.
3329         * config/h8300/clzhi2.c: Likewise.
3330         * config/h8300/crti.asm: Likewise.
3331         * config/h8300/crtn.asm: Likewise.
3332         * config/h8300/ctzhi2.c: Likewise.
3333         * config/h8300/fixunssfsi.c: Likewise.
3334         * config/h8300/lib1funcs.asm: Likewise.
3335         * config/h8300/parityhi2.c: Likewise.
3336         * config/h8300/popcounthi2.c: Likewise.
3337         * config/i386/ammintrin.h: Likewise.
3338         * config/i386/att.h: Likewise.
3339         * config/i386/avxintrin.h: Likewise.
3340         * config/i386/biarch64.h: Likewise.
3341         * config/i386/bmmintrin.h: Likewise.
3342         * config/i386/cpuid.h: Likewise.
3343         * config/i386/cross-stdarg.h: Likewise.
3344         * config/i386/crtfastmath.c: Likewise.
3345         * config/i386/crtprec.c: Likewise.
3346         * config/i386/cygming-crtbegin.c: Likewise.
3347         * config/i386/cygming-crtend.c: Likewise.
3348         * config/i386/cygwin.asm: Likewise.
3349         * config/i386/emmintrin.h: Likewise.
3350         * config/i386/gmm_malloc.h: Likewise.
3351         * config/i386/gthr-win32.c: Likewise.
3352         * config/i386/i386.h: Likewise.
3353         * config/i386/immintrin.h: Likewise.
3354         * config/i386/linux-unwind.h: Likewise.
3355         * config/i386/linux64.h: Likewise.
3356         * config/i386/mm3dnow.h: Likewise.
3357         * config/i386/mmintrin-common.h: Likewise.
3358         * config/i386/mmintrin.h: Likewise.
3359         * config/i386/nmmintrin.h: Likewise.
3360         * config/i386/pmm_malloc.h: Likewise.
3361         * config/i386/pmmintrin.h: Likewise.
3362         * config/i386/smmintrin.h: Likewise.
3363         * config/i386/sol2-c1.asm: Likewise.
3364         * config/i386/sol2-ci.asm: Likewise.
3365         * config/i386/sol2-cn.asm: Likewise.
3366         * config/i386/sol2-gc1.asm: Likewise.
3367         * config/i386/tmmintrin.h: Likewise.
3368         * config/i386/unix.h: Likewise.
3369         * config/i386/w32-unwind.h: Likewise.
3370         * config/i386/wmmintrin.h: Likewise.
3371         * config/i386/x86-64.h: Likewise.
3372         * config/i386/x86intrin.h: Likewise.
3373