OSDN Git Service

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