OSDN Git Service

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