OSDN Git Service

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