OSDN Git Service

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