OSDN Git Service

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