OSDN Git Service

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