OSDN Git Service

2009-04-24 Ed Schonberg <schonberg@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/sse.md (avxmodesuffixs): Removed.
4         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5         (*avx_pinsr<ssevecsize>): This.
6
7 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8
9         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10         follow chains of regs with a single definition, and allow expressions
11         that are function_invariant_p.
12         (simple_rhs_p): Allow expressions that are function_invariant_p.
13
14 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
15
16         PR middle-end/39867
17         * fold-const.c (fold_cond_expr_with_comparison): When folding
18         > and >= to MAX, make sure the MAX uses the same type as the
19         comparison's operands.
20
21 2009-04-24  Nick Clifton  <nickc@redhat.com>
22
23         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
24         addressing for DImode accesses.
25         (frv_print_operand_address): Handle PLUS case.
26         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as
27         fixed.
28
29 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
30
31         PR rtl-optimization/39794
32         * alias.c (canon_true_dependence): Add x_addr argument.
33         * rtl.h (canon_true_dependence): Adjust prototype.
34         * cse.c (check_dependence): Adjust canon_true_dependence callers.
35         * cselib.c (cselib_invalidate_mem): Likewise.
36         * gcse.c (compute_transp): Likewise.
37         * dse.c (scan_reads_nospill): Likewise.
38         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
39         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
40         canon_base_addr of the group, plus optional offset.
41         (struct group_info): Rename canon_base_mem to
42         canon_base_addr.
43         (get_group_info): Set canon_base_addr to canon_rtx of base, not
44         canon_rtx of base_mem.
45
46 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
47
48         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
49         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
50
51 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
52
53         * config/spu/spu-builtins.h: Delete file.
54
55         * config/spu/spu.h (enum spu_builtin_type): Move here from
56         spu-builtins.h.
57         (struct spu_builtin_description): Likewise.  Add GTY marker.
58         Do not use enum spu_function_code or enum insn_code.
59         (spu_builtins): Add extern declaration.
60
61         * config/spu/spu.c: Do not include "spu-builtins.h".
62         (enum spu_function_code, enum spu_builtin_type_index,
63         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
64         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
65         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
66         unsigned_V2DI_type_node): Move here from spu-builtins.h.
67         (spu_builtin_types): Make static.  Add GTY marker.
68         (spu_builtins): Add extern declaration with GTY marker.
69         Include "gt-spu.h".
70
71         * config/spu/spu-c.c: Do not include "spu-builtins.h".
72         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
73         Check programmatically whether all parameters are scalar.
74
75         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
76
77 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
78
79         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
80         assignment from the constructor either if the target is volatile.
81
82 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
83
84         * config/arm/arm.md (insv): Do not share operands[0].
85
86 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
87
88         * config/vxlib-tls.c (active_tls_threads): Delete.
89         (delete_hook_installed): New.
90         (tls_delete_hook): Don't delete the delete hook.
91         (tls_destructor): Delete it here.
92         (__gthread_set_specific): Adjust installing the delete hook.
93         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
94         __gthread_leave_tsd_dtor_context.
95
96 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
97
98         * c-format.c (gcc_tdiag_char_table): Add support for %E.
99
100 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
101
102         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
103         enum type.
104         (alpha_rtx_costs): Ditto.
105         (emit_unlikely_jump): Use add_reg_note.
106         (emit_frame_store_1): Ditto.
107         (alpha_expand_prologue): Ditto.
108         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
109         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
110
111 2009-04-23  Nick Clifton  <nickc@redhat.com>
112
113         * config/v850/v850.md (epilogue): Remove suppressed code.
114         (return): Rename to return_simple and remove test of frame size.
115         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
116         to gen_return_simple.
117
118 2009-04-22  Jing Yu  <jingyu@google.com>
119
120         PR testsuite/39781
121         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
122
123 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
124
125         PR C/31499
126         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
127         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
128         value is a VECTOR_CST, the element type is the element type of the
129         vector.
130
131 2009-04-22  DJ Delorie  <dj@redhat.com>
132
133         * config/m32c/m32c.h: Update GTY annotations to new syntax.
134
135 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
136
137         * alias.c (find_base_term): Move around LO_SUM case, so that
138         CONST falls through into PLUS/MINUS handling.
139
140         PR c/39855
141         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
142         into 0, use omit_one_operand.
143
144 2009-04-23  Ben Elliston  <bje@au.ibm.com>
145
146         * config/rs6000/linux-unwind.h (get_regs): Remove type
147         puns. Change the type of `pc' to an array of unsigned ints and
148         update all users.  Constify frame24.
149
150 2009-04-22  DJ Delorie  <dj@redhat.com>
151
152         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
153         declarations before code.
154         (current_function_special_page_vector): Likewise.
155         (m32c_expand_insv): Silence a warning.
156
157 2009-04-21  Taras Glek <tglek@mozilla.com>
158
159         * alias.c: Update GTY annotations to new syntax.
160         * basic-block.h: Likewise.
161         * bitmap.h: Likewise.
162         * c-common.h: Likewise.
163         * c-decl.c: Likewise.
164         * c-parser.c: Likewise.
165         * c-pragma.c: Likewise.
166         * c-tree.h: Likewise.
167         * cfgloop.h: Likewise.
168         * cgraph.h: Likewise.
169         * config/alpha/alpha.c: Likewise.
170         * config/arm/arm.h: Likewise.
171         * config/avr/avr.h: Likewise.
172         * config/bfin/bfin.c: Likewise.
173         * config/cris/cris.c: Likewise.
174         * config/darwin.c: Likewise.
175         * config/frv/frv.c: Likewise.
176         * config/i386/i386.c: Likewise.
177         * config/i386/i386.h: Likewise.
178         * config/i386/winnt.c: Likewise.
179         * config/ia64/ia64.h: Likewise.
180         * config/iq2000/iq2000.c: Likewise.
181         * config/mips/mips.c: Likewise.
182         * config/mmix/mmix.h: Likewise.
183         * config/pa/pa.c: Likewise.
184         * config/pa/pa.h: Likewise.
185         * config/rs6000/rs6000.c: Likewise.
186         * config/s390/s390.c: Likewise.
187         * config/sparc/sparc.c: Likewise.
188         * config/xtensa/xtensa.c: Likewise.
189         * cselib.h: Likewise.
190         * dbxout.c: Likewise.
191         * dwarf2out.c: Likewise.
192         * except.c: Likewise.
193         * except.h: Likewise.
194         * fixed-value.h: Likewise.
195         * function.c: Likewise.
196         * function.h: Likewise.
197         * gimple.h: Likewise.
198         * integrate.c: Likewise.
199         * optabs.c: Likewise.
200         * output.h: Likewise.
201         * real.h: Likewise.
202         * rtl.h: Likewise.
203         * stringpool.c: Likewise.
204         * tree-data-ref.c: Likewise.
205         * tree-flow.h: Likewise.
206         * tree-scalar-evolution.c: Likewise.
207         * tree-ssa-address.c: Likewise.
208         * tree-ssa-alias.h: Likewise.
209         * tree-ssa-operands.h: Likewise.
210         * tree.c: Likewise.
211         * tree.h: Likewise.
212         * varasm.c: Likewise.
213         * varray.h: Likewise.
214         * vec.h: Likewise.
215         * coretypes.h: Do not define GTY macro if it is already defined.
216         * doc/gty.texi: Update GTY documentation to new syntax.
217         * gengtype-lex.l: Enforce attribute-like syntax for GTY
218         annotations on structs.
219         * gengtype-parse.c: Likewise.
220
221 2009-04-22  Mark Heffernan  <meheff@google.com>
222
223         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
224
225 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
226
227         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
228         where appropriate.
229
230 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
231
232         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
233         the same as a PLUS without a shift.  Increase the cost of a
234         CONST_INT in MULT.
235
236 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
237
238         * Makefile.in: Update dependencies.
239         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
240         * errors.h: Remove bogus comment about compatibility.
241         (warning): Update declaration.
242         * genautomata.c: Update all calls to warning.
243         * gimple.c: Do not include errors.h. Include toplev.h.
244         * tree-ssa-structalias.c: Do not include errors.h.
245         * omega.c: Likewise.
246         * tree-ssa-reassoc.c: Likewise.
247         * config/spu/spu-c.c: Likewise.
248         * config/spu/t-spu-elf: Update dependencies.
249
250 2009-04-22  Richard Guenther  <rguenther@suse.de>
251
252         PR tree-optimization/39824
253         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
254         make sure the types are compatible.
255
256 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
257
258         PR c++/14875
259         * c-common.c (c_parse_error): Take a token_flags parameter.
260         Use token_type for the token type instead.
261         Pass token_flags to cpp_type2name.
262         * c-common.h (c_parse_error): Update declaration.
263         * c-parser.c (c_parser_error): Pass 0 as token flags.
264
265 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
266
267         PR rtl-optimization/39580
268         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
269         
270 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
271
272         * function.c (expand_function_end): Do not emit a jump to the "naked"
273         return label for fall-through returns.
274         * except.c (sjlj_emit_function_exit): Always place the call to the
275         unregister function at the location installed by expand_function_end.
276
277 2009-04-22  Richard Guenther  <rguenther@suse.de>
278
279         PR tree-optimization/39845
280         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
281         (gen_inbound_check): Likewise.
282
283 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
284
285         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
286         padding for PPC.
287         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
288         * config/vxlib.c (__gthread_once): Add race guard for PPC.
289
290 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
291
292         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
293         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
294         shift counts to avoid out-of-bounds array accesses.
295
296 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
297
298         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
299         (Pmode): Move above.
300
301 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
302
303         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
304         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
305         GET_CODE macro.  Use IN_RANGE macro where appropriate.
306         * config/alpha/alpha.h: Ditto.
307         * config/alpha/alpha.md: Ditto.
308         * config/alpha/constraints.md: Ditto.
309         * config/alpha/predicates.md: Ditto.
310         
311 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
312
313         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
314         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
315         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
316         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
317         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
318         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
319         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
320         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
321         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
322         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
323         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
324         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
325         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
326         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
327         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
328         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
329         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
330         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
331         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
332         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
333         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
334         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
335         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
336         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
337         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
338         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
339         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
340
341 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
342
343         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
344         references from comments.
345         * cfgbuild.c: (count_basic_blocks): Delete.
346         (find_basic_blocks_1): Delete.
347         (find_basic_blocks): Delete.
348         * except.c (finish_eh_generation): Make static.  Move comment from
349         except.h here.  Remove find_basic_blocks references from comments.
350         * except.h (finish_eh_generation): Delete.
351         * basic-block.h (find_basic_blocks): Delete.
352         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
353
354 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
355
356         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
357         (sdbout_parms):  Likewise.
358
359 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
360
361         * config/sh/sh.c (prepare_cbranch_operands): Use
362         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
363         (expand_cbranchdi4): Likewise.
364         (from_compare): Add cast to enum type.
365         (expand_cbranchsi4): Use add_reg_note.
366         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
367         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
368         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
369         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
370         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
371         instead of CODE_FOR_nothing.
372         (cbranchdi4): Likewise.  Fix the order of arguments for
373         gen_rtx_fmt_ee.
374         (push_fpscr): Use add_reg_note.
375         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
376         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
377         
378 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
379
380         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
381         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
382         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
383         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
384         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
385         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
386         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
387         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
388         config/alpha/x-vms, config/arc/t-arc,
389         config/arm/README-interworking, config/arm/arm-c.c,
390         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
391         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
392         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
393         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
394         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
395         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
396         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
397         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
398         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
399         config/cris/t-elfmulti, config/crx/t-crx,
400         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
401         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
402         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
403         config/h8300/t-h8300, config/i386/athlon.md,
404         config/i386/darwin-libgcc.10.4.ver,
405         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
406         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
407         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
408         config/i386/t-linux64, config/i386/t-nwld,
409         config/i386/t-rtems-i386, config/i386/t-sol2-10,
410         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
411         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
412         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
413         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
414         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
415         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
416         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
417         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
418         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
419         config/m68k/t-uclinux, config/mcore/t-mcore,
420         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
421         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
422         config/mips/crtn.asm, config/mips/irix-crti.asm,
423         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
424         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
425         config/mips/mips-fixed.md, config/mips/sb1.md,
426         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
427         config/mips/t-iris6, config/mips/t-isa3264,
428         config/mips/t-libgcc-mips16, config/mips/t-linux64,
429         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
430         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
431         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
432         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
433         config/mn10300/t-linux, config/mn10300/t-mn10300,
434         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
435         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
436         config/picochip/libgccExtras/clzsi2.asm,
437         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
438         config/rs6000/darwin-libgcc.10.4.ver,
439         config/rs6000/darwin-libgcc.10.5.ver,
440         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
441         config/rs6000/t-aix43, config/rs6000/t-aix52,
442         config/rs6000/t-darwin, config/rs6000/t-fprules,
443         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
444         config/rs6000/t-lynx, config/rs6000/t-netbsd,
445         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
446         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
447         config/rs6000/t-rtems, config/rs6000/t-spe,
448         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
449         config/score/t-score-elf, config/sh/divcost-analysis,
450         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
451         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
452         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
453         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
454         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
455         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
456         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
457         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
458         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
459         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
460         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
461         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
462         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
463         limitx.h, version.c, xcoff.h: Add copyright and license notices.
464         * config/h8300/genmova.sh: Include copyright and license notices
465         in generated output.
466         * config/h8300/mova.md: Regenerate.
467         * doc/install.texi2html: Include word "Copyright" in copyright
468         notice and use name "Free Software Foundation, Inc.".
469         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
470         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
471         ChangeLog-2007, ChangeLog-2008: Correct dates.
472
473 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
474
475         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
476         NE_EXPR operations as well.
477         * c-parser.c (c_parser_condition): Do not set location information on
478         the condition.
479         (c_parser_conditional_expression): Likewise.
480         (c_parser_binary_expression): Set location information on operators.
481         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
482         TRUTH_NOT_EXPR has been folded.
483         * fold-const.c (fold_truth_not_expr): Copy location information from
484         the incoming expression to the outgoing one.
485         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
486         recursive calls on the LHS of the operator but pass that of the
487         operator to recursive calls on the RHS of the operator.  Set it
488         on the COND_EXPR.
489         (shortcut_cond_expr): Set the locus of the operator on the second
490         COND_EXPR and that of the expression on the first in degenerate cases.
491         Pass the locus of the expression to calls to shortcut_cond_r.
492         Set the locus of the 'then' block on the associated jump, if any.
493         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
494         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
495         expression to call to gimplify_boolean_expr.
496
497 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
498
499         * config.gcc: Add additional configuration for
500         i686-w64-mingw* and x86_64-w64-mingw* triplet.
501         * config/i386/mingw-w64.h: New mingw-w64 specific header.
502         (CPP_SPEC): Redefine for allowing -municode option.
503         (STARTFILE_SPEC): Likewise.
504         * config/i386/t-mingw-w64: New.
505         * config/i386/mingw-w64.opt: New.
506         (municode): Add new target option.
507         * doc/invoke.texi (municode): Add documentation for new option.
508
509 2009-04-21  Ian Lance Taylor  <iant@google.com>
510
511         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
512         Correct test for number of arguments.
513         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
514
515 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
516
517         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
518         argument of emit_library_call.
519
520 2009-04-21  Richard Guenther  <rguenther@suse.de>
521
522         PR middle-end/39829
523         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
524         inside VIEW_CONVERT_EXPRs.
525
526 2009-04-21  Martin Jambor  <mjambor@suse.cz>
527
528         * tree-switch-conversion.c (build_constructors): Split a long line.
529         (constructor_contains_same_values_p): New function.
530         (build_one_array): Create assigns of constants if possible, do not
531         call mark_sym_for_renaming, call update_stmt.
532         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
533         make_rename_temp.  Do not call mark_symbols_for_renaming, call
534         update_stmt.
535         (gen_def_assigns): Do not call mark_symbols_for_renaming or
536         find_new_referenced_vars, call update_stmt.
537         (gen_inbound_check): Use create_tmp_var and create ssa names manually
538         instead of calling make_rename_temp.  Do not call
539         find_new_referenced_vars or mark_symbols_for_renaming, call
540         update_stmt.
541
542 2009-04-21  Richard Guenther  <rguenther@suse.de>
543
544         PR tree-optimization/39827
545         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
546         (tree_ssa_phiprop): Pass the correct array size.
547
548 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
549
550         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
551
552 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
553
554         PR 16202
555         * c-typeck.c (lvalue_p): Move declaration ...
556         * c-common.h (lvalue_p): ... to here.
557         * c-common.c (candidate_equal_p): New.
558         (add_tlist): Use it.
559         (merge_tlist): Use it.
560         (warn_for_collisions_1): Likewise.
561         (warning_candidate_p): Accept more candidates.
562         (verify_tree): A warning candidate can be an expression. Use
563         candidate_equal_p.
564
565 2009-04-21  Ben Elliston  <bje@au.ibm.com>
566
567         PR target/5267
568         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
569         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
570         options.  Remove -mcall-solaris documentation.
571
572 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
573
574         PR c++/13358
575         * doc/invoke.texi (-Wlong-long): Update description.
576         * c-lex (interpret_integer): Only warn if there was no previous
577         overflow and -Wlong-long is enabled.
578         * c-decl.c (declspecs_add_type): Drop redundant flags.
579         * c.opt (Wlong-long): Init to -1.
580         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
581         and front-end warn_long_long. Wlong-long only depends on other
582         flags if it is uninitialized.
583         * c-parser.c (disable_extension_diagnostics): warn_long_long is
584         the same for CPP and FE.
585         (restore_extension_diagnostics): Likewise.
586
587 2009-04-20  Ian Lance Taylor  <iant@google.com>
588
589         Fix enum conversions which are invalid in C++:
590         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
591         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
592         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
593         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
594         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
595         (dbxout_parms): Likewise.
596         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
597         (df_clear_flags): Likewise.
598         * df-problems.c (df_rd_bb_local_compute_process_def): Change
599         top_flag parameter to int.
600         (df_chain_create_bb_process_use): Likewise.
601         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
602         Remove cast.
603         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
604         (df_ref_create_structure, df_def_record_1): Likewise.
605         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
606         (df_notes_rescan): Change 0 to VOIDmode in function call.
607         (df_get_call_refs, df_insn_refs_collect): Likewise.
608         (df_bb_regs_collect): Likewise.
609         (df_entry_block_defs_collect): Likewise.
610         (df_exit_block_uses_collect): Likewise.
611         * df.h: Update declarations.
612         * double-int.c (double_int_divmod): Add cast to enum type.
613         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
614         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
615         (based_loc_descr): Likewise.
616         (loc_descriptor_from_tree_1): Change first_op and second_op to
617         enum dwarf_location_atom.  Add cast to enum type.
618         * expmed.c (init_expmed): Change 0 to SET in function call.
619         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
620         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
621         (do_store_flag): Likewise.
622         * fixed-value.h (struct fixed_value): Change mode to enum
623         machine_mode.
624         * function.c (assign_parms): Change 0 to VOIDmode in function call.
625         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
626         function call.
627         (insert_insn_decl, insert_decl, insert_state): Likewise.
628         (automata_list_finish): Likewise.
629         * genrecog.c (process_define_predicate): Add cast to enum type.
630         * gensupport.c (init_predicate_table): Add cast to enum type.
631         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
632         function call.
633         (gimple_build_call_1, gimple_build_label): Likewise.
634         (gimple_build_goto, gimple_build_asm_1): Likewise.
635         (gimple_build_switch_1, gimple_build_cdt): Likewise.
636         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
637         (enum fallback): Rename from enum fallback_t.
638         (fallback_t): Typedef as int.
639         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
640         GSI_SAME_STMT in function call.
641         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
642         enum type.
643         (setup_reg_class_relations): Likewise.
644         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
645         (setup_prohibited_class_mode_regs): Add cast to enum type.
646         (setup_prohibited_mode_move_regs): Likewise.
647         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
648         (record_address_regs): Change i to enum reg_class.
649         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
650         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
651         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
652         (GET_MODE_2XWIDER_MODE): Likewise.
653         (GET_CLASS_NARROWEST_MODE): Likewise.
654         * omp-low.c (expand_omp_for): Add cast to enum type.
655         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
656         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
657         * postreload.c (reload_cse_simplify_operands): Change rclass local
658         to enum reg_class.
659         * predict.c (combine_predictions_for_insn): Change best_predictor
660         and predictor to enum br_predictor.
661         (combine_predictions_for_bb): Likewise.
662         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
663         use SET_PREDICT_EXPR_OUTCOME.
664         * real.c (real_arithmetic): Change icode to code in function call.
665         * reginfo.c (init_move_cost): Add casts to enum type.
666         (init_reg_sets_1, init_fake_stack_mems): Likewise.
667         * regmove.c (regclass_compatible_p): Change class0 and class1 to
668         enum reg_class.
669         * reload.c (find_valid_class): Add casts to enum type.
670         (push_reload): Change 0 to NO_REGS in function call.
671         (find_reloads): Change this_alternative to array of enum
672         reg_class.  Remove some now-unnecessary casts.
673         (make_memloc): Change 0 to VOIDmode in function call.
674         * reload1.c (reload): Change 0 to VOIDmode in function call.
675         (eliminate_regs_1, elimination_effects): Likewise.
676         (eliminate_regs_in_insn): Likewise.
677         (emit_input_reload_insns): Add cast to enum type.
678         (delete_output_reload): Change 0 to VOIDmode in function call.
679         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
680         to enum type in function call.
681         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
682         (SET_PREDICT_EXPR_OUTCOME): Define.
683         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
684         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
685         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
686         (dump_function): Likewise.
687         * tree-dump.h: Update declarations.
688         * tree-pass.h: Update declarations.
689         * varasm.c (assemble_integer): Change mclass to enum mode_class.
690         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
691         enum type.
692         (arm_rtx_costs_1): Correct parenthesization.
693         (arm_rtx_costs): Add casts to enum type.
694         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
695         (vfp_emit_fstmd): Use add_rg_note.
696         (emit_multi_reg_push, emit_sfm): Likewise.
697         (thumb_set_frame_pointer): Likewise.
698         (arm_expand_prologue): Likewise.
699         (arm_regno_class): Change return type to enum reg_class.
700         (thumb1_expand_prologue): Use add_reg_note.
701         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
702         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
703         in function call.
704         * config/arm/gentune.sh: Add cast to enum type.
705         * config/arm/arm-tune.md: Rebuild.
706         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
707         (ix86_split_fp_branch, predict_jump): Likewise.
708         (ix86_expand_multi_arg_builtin): Change sub_code from enum
709         insn_code to enum rtx_code.
710         (ix86_builtin_vectorized_function): Add cast to enum type.
711         * config/i386/i386.md (truncdfsf2): Change slot to enum
712         ix86_stack_slot.
713         (truncxf<mode>2, isinf<mode>2): Likewise.
714         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
715         enum type.
716         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
717         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
718         (insert_bundle_state): Change 1 to INSERT in function call.
719         (ia64_add_bundle_selector_before): Likewise.
720         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
721         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
722         (restore_stack_nonlocal): Likewise.
723         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
724         function call.
725         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
726         function call.
727         (mips_rtx_costs): Likewise.
728         (mips_override_options): Add casts to enum type.
729         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
730         in function call.
731         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
732         (store_reg, set_reg_plus_d): Likewise.
733         (hppa_expand_prologue, hppa_profile_hook): Likewise.
734         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
735         cast to enum type.
736         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
737         function call.
738         (emit_unlikely_jump): Use add_reg_note.
739         (rs6000_emit_allocate_stack): Likewise.
740         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
741         (output_toc): Change 1 to INSERT in function call.
742         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
743         (rs6000_initialize_trampoline): Likewise.
744         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
745         function call.
746         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
747         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
748         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
749         (save_gprs): Use add_reg_note.
750         (s390_emit_prologue): Likewise.
751         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
752         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
753         (sparc_fold_builtin): Add cast to enum type.
754         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
755         enum insn_code.
756         (spu_expand_prologue): Use add_reg_note.
757         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
758
759 2009-04-20  Ian Lance Taylor  <iant@google.com>
760
761         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
762         (c_parser_postfix_expression_after_primary): Get VEC for list of
763         arguments.  Get original types of arguments.  Call
764         build_function_call_vec.
765         (cached_expr_list_1, cached_expr_list_2): New static variables.
766         (c_parser_expr_list): Change return type to VEC *.  Add
767         p_orig_types parameter.  Change all callers.
768         (c_parser_release_expr): New static function.
769         (c_parser_vec_to_tree_list): New static function.
770         * c-typeck.c (build_function_call): Rewrite to build a VEC and
771         call build_function_call_vec.
772         (build_function_call_vec): New function, based on old
773         build_function_call.
774         (convert_arguments): Remove nargs and argarray parameters.  Change
775         values to a VEC.  Add origtypes parameter.
776         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
777         (convert_for_assignment): Add origtype parameter.  Change all
778         callers.  If warn_cxx_compat, check for conversion to an enum
779         type when calling a function.
780         (store_init_value): Add origtype parameter.  Change all callers.
781         (digest_init): Likewise.
782         (struct init_node): Add origtype field.
783         (add_pending_init): Add origtype parameter.  Change all callers.
784         (output_init_element): Likewise.
785         (output_pending_init_elements): Pass origtype from init_node to
786         output_init_element.
787         (process_init_element): Pass origtype from c_expr to
788         output_init_element.
789         (c_finish_return): Add origtype parameter.  Change all callers.
790         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
791         caller.
792         (sync_resolve_params): Likewise.
793         (sync_resolve_return): Change params to first_param.  Change caller.
794         (resolve_overloaded_builtins): Change params to VEC *.  Change
795         callers.  Save first parameter around call to build_function_call_vec.
796         * c-decl.c (finish_decl): Add origtype parameter.  Change all
797         callers.  Call build_function_call_vec rather than
798         build_function_call for cleanup.
799         * c-tree.h: Update declarations.
800         * c-common.h: Update declarations.
801         * stub-objc.c (objc_rewrite_function_call): Change parameter from
802         params to first_param.
803         * target.h (struct gcc_target): Change resolve_overloaded_builtin
804         params parameter from tree to void *.
805         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
806         Change arglist parameter to have type void *, and to be a pointer
807         to a VEC.
808         * config/rs6000/rs6000-protos.h
809         (altivec_resolve_overloaded_builtin): Update declaration.
810         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
811         fnargs parameter to have type void *, and to be a pointer to a
812         VEC.  Call build_function_call_vec instead of
813         build_function_call.
814         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
815
816 2009-04-20  Joey Ye  <joey.ye@intel.com>
817             Xuepeng Guo <xuepeng.guo@intel.com>
818             H.J. Lu  <hongjiu.lu@intel.com>
819
820         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
821
822         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
823         (IX86_LEA_PRIORITY): Likewise.
824         (distance_non_agu_define): New function.
825         (distance_agu_use): Likewise.
826         (ix86_lea_for_add_ok): Likewise.
827         (ix86_dep_by_shift_count): Likewise.
828
829         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
830         should split for LEA.
831
832         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
833         function.
834         (ix86_dep_by_shift_count): Likewise.
835
836 2009-04-20  Richard Guenther  <rguenther@suse.de>
837
838         * expr.c (handled_component_p): Move ...
839         * tree.h (handled_component_p): ... here.
840         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
841         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
842         and REALPART_EXPR to be in one group.
843
844 2009-04-20  Richard Guenther  <rguenther@suse.de>
845
846         * basic-block.h (get_all_dominated_blocks): Declare.
847         * dominance.c (get_all_dominated_blocks): New function.
848         * tree-cfg.c (get_all_dominated_blocks): Remove.
849         (remove_edge_and_dominated_blocks): Adjust.
850         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
851         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
852         instead of recursing.
853
854 2009-04-20  Doug Kwan  <dougkwan@google.com>
855
856         * cgraph.h (cgraph_node_ptr): New type for vector functions.
857         (struct cgraph_node_set_def): New type.
858         (cgraph_node_set) New type. Also declare vector functions.
859         (struct cgraph_node_set_element_def): New type.
860         (cgraph_node_set_element): Ditto.
861         (cgraph_node_set_iterator): New iterator type.
862         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
863         cgraph_node_set_remove, dump_cgraph_node_set,
864         debug_cgraph_node_set): New prototypes.
865         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
866         cgraph_node_set_size): New inlines.
867         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
868         including cgraph.h.
869         (struct ipa_opt_pass): Add struct cgraph_node_set_def
870         argument to function 'write_summary'.
871         * ipa.c: Include ggc.h.
872         (hash_cgraph_node_set_element,
873         eq_cgraph_node_set_element, cgraph_node_set_new,
874         cgraph_node_set_add, cgraph_node_set_remove,
875         cgraph_node_set_find, dump_cgraph_node_set,
876         debug_cgraph_node_set): New functions.
877         * Makefile.in (ipa.o): Add dependency on GGC_H.
878
879 2009-04-20  Ira Rosen  <irar@il.ibm.com>
880
881         PR tree-optimization/39675
882         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
883         check of the return code of vect_schedule_slp. Check that
884         stmt_vec_info still exists for the statement, before checking its
885         vectorization type.
886
887 2009-04-20  Michael Matz  <matz@suse.de>
888
889         * Makefile.in (generated_files): Take out $(simple_generated_c).
890
891 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
892
893         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
894         (UINTPTR_TYPE):  Likewise.
895
896 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
897
898         PR c/37481
899         * c-typeck.c (digest_init): Check for initializing an array with a
900         string literal.
901
902 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
903
904         PR c/19771
905         * c-semantics.c (pop_stmt_list): Propagate
906         STATEMENT_LIST_HAS_LABEL to parent statement list.
907
908 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
909
910         * config/mips/mips.h (mips_tune_attr): New macro.
911         * config/mips/mips.md (cpu): Use it.
912
913 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
914
915         PR c/38243
916         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
917         declaring a tag.
918
919 2009-04-19  Diego Novillo  <dnovillo@google.com>
920
921         * toplev.c (compile_file): Move call to coverage_finish ...
922         * cgraphunit.c (ipa_passes): ... here.
923         Call cgraph_process_new_functions.
924         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
925         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
926
927 2009-04-19  Jan Hubicka  <jh@suse.cz>
928
929         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
930         cfun.
931         (dump_cgraph_node): Dump can throw external flag.
932         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
933
934 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
935
936         PR c/32061
937         PR c++/36954
938         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
939         * common.opt (Wlogical-op): Move from here...
940         * c.opt (Wlogical-op): ... to here.
941         * c-typeck.c (parser_build_binary_op): Update call to
942         warn_logical_operator.
943         * c-opts.c (c_common_post_options): Enable warn_logical_op with
944         extra_warnings.
945         * c-common.c (warn_logical_op): Update.
946         * c-common.h (warn_logical_op): Update declaration.
947
948 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
949
950         * tree.c (protected_set_expr_location): Fix formatting.
951
952 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
953
954         PR c/27676
955         * c-typeck.c (readonly_warning): new.
956         (build_unary_op, build_modify_expr): Use readonly_warning for
957         storing into something readonly but not const-qualified.
958
959 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
960
961         PR c/22367
962         * c-typeck.c (build_unary_op): Check for taking address of
963         expression of type void.
964
965 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
966
967         PR c/35210
968         * c-typeck.c (build_function_call): Check for calling a function
969         with qualified void return types.  Call require_complete_type when
970         generating a trap.
971
972 2009-04-18  Jan Hubicka  <jh@suse.cz>
973
974         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
975         Set nothrow flag.
976         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
977         can_throw_external flag.
978         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
979         * ipa-pure-const.c (ignore_edge): New function.
980         (propagate): Compute order for NOTHROW computation; set NOTHROWs
981         only over can_throw_external edges.
982         (local_pure_const): Add nothrow flag.
983         * ipa-utils.c (searchc): Add ignore_edge callback.
984         (ipa_utils_reduced_inorder): Add ignore_edge callback.
985         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
986         (set_nothrow_function_flags): Update cgraph.
987         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
988
989 2009-04-18  Richard Guenther  <rguenther@suse.de>
990
991         PR middle-end/39804
992         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
993         (fold_stmt): ... this and ...
994         (fold_stmt_inplace): ... this.
995         (fold_stmt_1): Fold references in calls and asms.
996         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
997
998 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
999
1000         * tree-vrp.c (ssa_name_nonzero_p): Remove.
1001         * tree.h: Remove the prototype for ssa_name_nonzero_p.
1002
1003 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1004
1005         * tree.c (function_args_count): Remove.
1006         * tree.h: Remove the prototype for function_args_count.
1007
1008 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1009
1010         * tree-iterator.c (expr_only): Remove.
1011         * tree.h: Remove the prototype for expr_only.
1012
1013 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1014
1015         * reginfo.c (cannot_change_mode_set_regs): Remove.
1016         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
1017
1018 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
1019
1020         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
1021         whether operands 0 and 1 overlaps.
1022
1023 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1024
1025         PR middle-end/36902
1026         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
1027         pointer. Use warning_at instead of warning.
1028         (search_for_addr_array): Likewise.
1029         (check_array_bounds): Likewise.
1030         (check_all_array_refs): Check that the incoming edge is not in the
1031         list of edges to be removed.
1032         (check_all_array_refs): Avoid the temporal pointer.
1033         (vrp_visit_cond_stmt): Fix typo.
1034         (simplify_switch_using_ranges): Handle the case where the switch
1035         index is an integer constant.
1036
1037 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
1038
1039         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
1040
1041 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1042
1043         * doc/extend.texi, doc/invoke.texi: Fix typos.
1044
1045 2009-04-17  Cary Coutant  <ccoutant@google.com>
1046
1047         * tree-flow-inline.h (get_lineno): Fix inverted test.
1048
1049 2009-04-17  Diego Novillo  <dnovillo@google.com>
1050
1051         * tree-ssa-pre.c (create_expression_by_pieces): Remove
1052         assertion for AVAIL_OUT.
1053
1054 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
1055
1056         PR target/38627
1057         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
1058         * config/sh/linux-atomic.asm: Likewise.
1059
1060 2009-04-17  Diego Novillo  <dnovillo@google.com>
1061
1062         * except.c (debug_eh_tree): New.
1063         (struct eh_region, struct eh_status): Move ...
1064         * except.h: ... here.
1065         (add_type_for_runtime): Declare extern.
1066         (lookup_type_for_runtime): Likewise.
1067         (debug_eh_tree): Declare.
1068         * Makefile.in (GTFILES): List except.h before except.c
1069
1070 2009-04-17  Diego Novillo  <dnovillo@google.com>
1071
1072         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
1073         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1074         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
1075         (find_vars_r): ... here.
1076         * tree-flow.h (find_referenced_vars_in): Declare.
1077         * tree-ssa-pre.c (create_expression_by_pieces): Assert
1078         that AVAIL_OUT exists for BLOCK.
1079         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
1080         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
1081         (tree-parloops.o): Likewise.
1082
1083 2009-04-17  Simon Baldwin  <simonb@google.com>
1084
1085         * toplev.c (default_tree_printer): Add handling for %E format.
1086
1087 2009-04-17  Diego Novillo  <dnovillo@google.com>
1088
1089         * tree-pretty-print.c (dump_generic_node): Add break after
1090         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
1091         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
1092         FUNCTION_TYPE together.  Call print_struct_decl when printing
1093         structures and TDF_SLIM is not given.
1094         (print_struct_decl): Fix logic for detecting recursion.
1095
1096 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1097
1098         PR 31567
1099         * gcc.c (create_at_file): New.
1100         (compile_input_file_p): New.
1101         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
1102         * main.c (main): Update call to toplev_main.
1103         * toplev.c (toplev_main): Change signature. Call expandargv.
1104         * toplev.h (toplev_main): Change signature.
1105
1106 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1107
1108         * dwarf2out.c (field_byte_offset): Use the type size as the field size
1109         if the latter is not constant.
1110
1111 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
1112
1113         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
1114
1115 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1116
1117         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
1118         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
1119
1120 2009-04-17  Richard Guenther  <rguenther@suse.de>
1121
1122         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1123         Handle component references view-converting an invariant address.
1124
1125 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
1126
1127         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
1128         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
1129         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
1130         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
1131         Use @deftypevr rather than @deftypevar.
1132
1133 2009-04-17  Richard Guenther  <rguenther@suse.de>
1134
1135         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
1136         (get_prop_source_stmt): Likewise.
1137         (can_propagate_from): Likewise.
1138
1139 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
1140
1141         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
1142         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
1143         (--with-multilib-list): Add default value.
1144         * configure: Regenerate.
1145         * Makefile.in (TM_ENDIAN_CONFIG): Define.
1146         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
1147         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
1148         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
1149         Don't add default cpu to multilib list unnecessarily, but do enable
1150         the relevant compiler option..
1151         Add support for --with-multilib-list=<blank> and
1152         --with-multilib-list=!<somelib> to supress unwanted multilibs.
1153         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
1154         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
1155         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
1156         TM_MULTILIB_CONFIG.
1157         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
1158         (MULTILIB_OSDIRNAMES): New variable.
1159         * config/sh/t-1e: Delete file.
1160         * config/sh/t-mlib-sh1: Delete file.
1161         * config/sh/t-mlib-sh2: Delete file.
1162         * config/sh/t-mlib-sh2a: Delete file.
1163         * config/sh/t-mlib-sh2a-nofpu: Delete file.
1164         * config/sh/t-mlib-sh2a-single: Delete file.
1165         * config/sh/t-mlib-sh2a-single-only: Delete file.
1166         * config/sh/t-mlib-sh2e: Delete file.
1167         * config/sh/t-mlib-sh3e: Delete file.
1168         * config/sh/t-mlib-sh4: Delete file.
1169         * config/sh/t-mlib-sh4-nofpu: Delete file.
1170         * config/sh/t-mlib-sh4-single: Delete file.
1171         * config/sh/t-mlib-sh4-single-only: Delete file.
1172         * config/sh/t-mlib-sh4a: Delete file.
1173         * config/sh/t-mlib-sh4a-nofpu: Delete file.
1174         * config/sh/t-mlib-sh4a-single: Delete file.
1175         * config/sh/t-mlib-sh4a-single-only: Delete file.
1176         * config/sh/t-mlib-sh4al: Delete file.
1177         * config/sh/t-mlib-sh5-32media: Delete file.
1178         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
1179         * config/sh/t-mlib-sh5-64media: Delete file.
1180         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
1181         * config/sh/t-mlib-sh5-compact: Delete file.
1182         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
1183         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
1184         * doc/install.texi (Options specification): Add
1185         --with-multilib-list and --with-endian.
1186
1187 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1188
1189         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
1190         REVISION_c.
1191         (OBJS-common): Add plugin-version.o.
1192         (plugin-version.o): New.
1193         * gcc-plugin.h (plugin_gcc_version): New.
1194         (plugin_default_version_check): New.
1195         (plugin_init_func, plugin_init): Add version argument.
1196         * plugin-version.c: New.
1197         * plugin.c (str_plugin_gcc_version_name): New.
1198         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
1199         pass it to the init function.
1200         (plugin_default_version_check): New.
1201
1202 2009-04-17  Richard Guenther  <rguenther@suse.de>
1203
1204         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
1205         for decl-vs-decl disambiguation.
1206
1207 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1208
1209         * config/s390/s390.h (s390_tune_attr): New macro definition.
1210         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
1211
1212 2009-04-17  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
1215         (fold_stmt_r): Likewise.
1216         (maybe_fold_reference): New function.
1217         (fold_gimple_assign): Handle cases fold_stmt_r did.
1218         (fold_stmt): Do not use fold_stmt_r.
1219         (fold_stmt_inplace): Likewise.
1220
1221 2009-04-17  Richard Guenther  <rguenther@suse.de>
1222
1223         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
1224         (record_equivalences_from_stmt): Remove useless checks and
1225         simplifications.
1226         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
1227         the type is already suitable.
1228
1229 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
1230
1231         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
1232
1233 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
1234
1235         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
1236         (CMPtype): Define as __gcc_CMPtype.
1237
1238 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
1239
1240         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
1241         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
1242
1243 2009-04-17  Richard Guenther  <rguenther@suse.de>
1244
1245         PR tree-optimization/39746
1246         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
1247         special-casing for builtins and static variable use/def.
1248         (call_may_clobber_ref_p_1): Likewise.
1249
1250 2009-04-16  Ian Lance Taylor  <iant@google.com>
1251
1252         * df.h: Include "timevar.h".
1253         (struct df_problem): Change tv_id field to timevar_id_t.
1254         * tree-pass.h: Include "timevar.h".
1255         (struct opt_pass): Change tv_id field to timevar_id_t.
1256         * timevar.h (timevar_id_t): Define TV_NONE.
1257         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
1258         TV_NONE rather than tv_id != 0.
1259         (execute_one_pass): Likewise.
1260         * Makefile.in (DF_H): Add $(TIMEVAR_H).
1261         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
1262         dependencies to $(TREE_PASS_H).
1263         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
1264         to TV_NONE.
1265         (pass_branch_target_load_optimize2): Likewise.
1266         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
1267         (pass_outof_cfg_layout_mode): Likewise.
1268         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
1269         (pass_rebuild_cgraph_edges): Likewise.
1270         (pass_remove_cgraph_callee_edges): Likewise.
1271         * df-core.c (pass_df_initialize_opt): Likewise.
1272         (pass_df_initialize_no_opt): Likewise.
1273         (pass_df_finish): Likewise.
1274         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1275         * except.c (pass_set_nothrow_function_flags): Likewise.
1276         (pass_convert_to_eh_region_ranges): Likewise.
1277         * final.c (pass_compute_alignments): Likewise.
1278         * function.c (pass_instantiate_virtual_regs): Likewise.
1279         (pass_init_function): Likewise.
1280         (pass_leaf_regs): Likewise.
1281         (pass_match_asm_constraints): Likewise.
1282         * gimple-low.c (pass_lower_cf): Likewise.
1283         (pass_mark_used_blocks): Likewise.
1284         * init-regs.c (pass_initialize_regs): Likewise.
1285         * integrate.c (pass_initial_value_sets): Likewise.
1286         * ira.c (pass_ira): Likewise.
1287         * jump.c (pass_cleanup_barriers): Likewise.
1288         * omp-low.c (pass_expand_omp): Likewise.
1289         (pass_lower_omp): Likewise.
1290         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
1291         * recog.c (pass_split_all_insns): Likewise.
1292         (pass_split_after_reload): Likewise.
1293         (pass_split_before_regstack): Likewise.
1294         (pass_split_before_sched2): Likewise.
1295         (pass_split_for_shorten_branches): Likewise.
1296         * reginfo.c (pass_reginfo_init): Likewise.
1297         (pass_subregs_of_mode_init): Likewise.
1298         (pass_subregs_of_mode_finish): Likewise.
1299         * passes.c (pass_postreload): Likewise.
1300         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1301         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
1302         (pass_warn_function_return): Likewise.
1303         (pass_warn_function_noreturn): Likewise.
1304         * tree-complex.c (pass_lower_complex): Likewise.
1305         (pass_lower_complex_O0): Likewise.
1306         * tree-if-conv.c (pass_if_conversion): Likewise.
1307         * tree-into-ssa.c (pass_build_ssa): Likewise.
1308         * tree-mudflap.c (pass_mudflap_1): Likewise.
1309         (pass_mudflap_2): Likewise.
1310         * tree-nomudflap.c (pass_mudflap_1): Likewise.
1311         (pass_mudflap_2): Likewise.
1312         * tree-nrv.c (pass_return_slot): Likewise.
1313         * tree-object-size.c (pass_object_sizes): Likewise.
1314         * tree-optimize.c (pass_all_optimizations): Likewise.
1315         (pass_early_local_passes): Likewise.
1316         (pass_all_early_optimizations): Likewise.
1317         (pass_cleanup_cfg): Likewise.
1318         (pass_cleanup_cfg_post_optimizing): Likewise.
1319         (pass_free_datastructures): Likewise.
1320         (pass_free_cfg_annotations): Likewise.
1321         (pass_fixup_cfg): Likewise.
1322         (pass_init_datastructures): Likewise.
1323         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
1324         (pass_late_warn_uninitialized): Likewise.
1325         (pass_update_address_taken): Likewise.
1326         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
1327         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
1328         (pass_cse_sincos): Likewise.
1329         (pass_convert_to_rsqrt): Likewise.
1330         * tree-ssa-structalias.c (pass_build_alias): Likewise.
1331         * tree-stdarg.c (pass_stdarg): Likewise.
1332         * tree-tailcall.c (pass_tail_recursion): Likewise.
1333         (pass_tail_calls): Likewise.
1334         * tree-vect-generic.c (pass_lower_vector): Likewise.
1335         (pass_lower_vector_ssa): Likewise.
1336         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
1337
1338 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
1339
1340         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
1341         XLR entry.
1342         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
1343         Handle -march=xlr.
1344         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
1345         logical and signext.
1346
1347 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1348
1349         PR target/39767
1350         * config/sh/predicates.md (arith_operand): Check if the operand
1351         of TRUNCATE is a REG.
1352
1353 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1354
1355         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
1356         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
1357
1358 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1359
1360         * tree-iterator.c (tsi_split_statement_list_after,
1361         tsi_split_statement_list_before): Remove.
1362         * tree-iterator.h: Remove the prototypes for
1363         tsi_split_statement_list_after and tsi_split_statement_list_before.
1364
1365 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1366
1367         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
1368         * tree-ssa-propagate.h: Remove the prototype for
1369         stmt_makes_single_load.
1370
1371 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1372
1373         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
1374         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
1375
1376 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1377
1378         * tree-iterator.c (EXPR_LAST_BODY): Remove.
1379
1380 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1381
1382         * except.c (eh_region_outer_p): Remove.
1383         * except.h: Remove the prototype for eh_region_outer_p.
1384
1385 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1386
1387         * function.c (current_function_assembler_name): Remove.
1388         * function.h: Remove the prototype for
1389         current_function_assembler_name.
1390
1391 2009-04-16  Ian Lance Taylor  <iant@google.com>
1392
1393         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
1394         (add_reg_note): Call alloc_reg_note.
1395         * rtl.h (alloc_reg_note): Declare.
1396         * combine.c (try_combine): Use alloc_reg_note.
1397         (recog_for_combine, move_deaths): Likewise.
1398         (distribute_notes): Use alloc_reg_note and add_reg_note.
1399         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1400         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1401         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1402
1403 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
1404
1405         PR rtl-optimization/39762
1406         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1407         ira_may_move_out_cost): Add comments about way of their usage.
1408         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
1409
1410         * ira-conflicts.c (process_regs_for_copy): Use function
1411         ira_get_register_move_cost instead of global
1412         ira_register_move_cost.
1413
1414         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1415         color_pass, move_spill_restore, update_curr_costs): Ditto.
1416
1417         * ira-lives.c (process_single_reg_class_operands): Ditto.
1418
1419         * ira-emit.c (emit_move_list): Ditto.
1420
1421         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1422         (record_reg_classes): Ditto.  Use functions
1423         ira_get_register_move_cost and ira_get_may_move_cost instead of
1424         global vars ira_register_move_cost, ira_may_move_out_cost and
1425         ira_may_move_in_cost.
1426         (record_address_regs): Don't call ira_init_register_move_cost.
1427         Use function ira_get_may_move_cost instead of global
1428         ira_may_move_in_cost.
1429         (process_bb_node_for_hard_reg_moves): Use function
1430         ira_get_register_move_cost instead of global ira_register_move_cost.
1431         (ira_costs): Don't call ira_init_register_move_cost.
1432
1433 2009-04-16  Richard Guenther  <rguenther@suse.de>
1434
1435         * tree-cfg.c (verify_gimple_assign_binary):
1436         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1437         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1438         (create_general_new_stmt): Note that this function is broken.
1439
1440 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1441
1442         * common.opt (fhelp): Add Var(help_flag).
1443         * gcc-plugin.h (plugin_info): Add help.
1444         * plugin.c (plugin_name_args): Add help.
1445         (register_plugin_info): Set plugin->help.
1446         (print_help_one_plugin): New.
1447         (print_plugins_help): New.
1448         * plugin.h (print_plugins_help): New.
1449         * toplev.c (toplev_main): Call print_plugins_help if needed.
1450
1451 2009-04-16  Richard Guenther  <rguenther@suse.de>
1452
1453         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1454         (gimple_ior_addresses_taken_1): New function.
1455         (gimple_ior_addresses_taken): Likewise.
1456         * gimple.h (struct gimple_statement_with_ops_base): Remove
1457         addresses_taken member.
1458         (gimple_ior_addresses_taken): Declare.
1459         (gimple_addresses_taken, gimple_addresses_taken_ptr,
1460         gimple_set_addresses_taken): Remove.
1461         * ipa-reference.c (mark_address): New function.
1462         (scan_stmt_for_static_refs): Use it for marking addresses taken.
1463         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1464         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
1465         (gimple_add_to_addresses_taken): Remove.
1466         (get_tmr_operands): Call mark_address_taken.
1467         (get_asm_expr_operands): Likewise.
1468         (get_expr_operands): Likewise.
1469         (build_ssa_operands): Do not clear the addresses_taken bitmap.
1470         (free_stmt_operands): Do not free it.
1471         * tree-ssa.c (delete_tree_ssa): Likewise.
1472         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1473
1474 2009-04-16  Richard Guenther  <rguenther@suse.de>
1475
1476         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1477         (walk_stmt_load_store_ops): Likewise.
1478         * gimple.c (get_base_loadstore): New function.
1479         (walk_stmt_load_store_addr_ops): Likewise.
1480         (walk_stmt_load_store_ops): Likewise.
1481         * ipa-pure-const.c (check_op): Simplify.
1482         (check_load, check_store): New functions.
1483         (check_stmt): Use walk_stmt_load_store_ops.
1484         * ipa-reference.c (mark_load): Adjust signature.
1485         (mark_store): Likewise.
1486         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1487
1488 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1489
1490         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1491         (plugin_info): New.
1492         * opts.c (common_handle_option): Don't call print_version.
1493         * plugin.c (plugin_name_args): Add version.
1494         (register_plugin_info): New.
1495         (register_callback): Handle PLUGIN_INFO.
1496         (try_init_one_plugin): New.
1497         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1498         if failed to init.
1499         (finalize_one_plugin): New.
1500         (finalize_plugins): New.
1501         (print_one_plugin): New.
1502         (print_plugins_versions): New.
1503         * plugin.h (print_plugins_versions): New.
1504         (finalize_plugins): New.
1505         * toplev.c (compile_file): Don't call initialize_plugins.
1506         (print_version): Call print_plugins_versions.
1507         (toplev_main): Call initialize_plugins. Print version if needed.
1508         Call finalize_plugins.
1509
1510 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1511
1512         * common.opt (fversion): New.
1513         * gcc.c (print_version): New.
1514         (process_command): Don't print the version. Just set print_version.
1515         (main): Print version. Call subprocesses if print_version and
1516         verbose_flag are set.
1517         * opts.c (common_handle_option): Handle OPT_fversion.
1518
1519 2009-04-16  Richard Guenther  <rguenther@suse.de>
1520             Ira Rosen  <irar@il.ibm.com>
1521
1522         PR tree-optimization/39698
1523         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1524         type of the reduction variable.  Only generate the def if
1525         it is needed.
1526
1527         * omp-low.c (expand_omp_for_generic): When converting to a pointer
1528         make sure to first convert to an integer of the same precision.
1529         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1530         the type of the evolution correctly in computing the new
1531         induction variable base.
1532
1533 2009-04-16  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/39625
1536         * tree-cfg.c (make_blocks): Split statements with to-be
1537         abnormal SSA names on the lhs.
1538
1539 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
1540
1541         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1542         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1543         * c-typeck.c (really_start_incremental_init): Likewise.
1544         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1545         (TARGET_INITIALIZER): Remove it.
1546         * target.h (struct target): Remove vector_opaque_p.
1547         * tree.c (build_opaque_vector_type): New.
1548         * tree.h (TYPE_VECTOR_OPAQUE): New.
1549         (build_opaque_vector_type): Declare.
1550         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1551         * config/rs6000/rs6000.c (build_opaque_vector_type,
1552         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1553         (rs6000_init_builtins): Use build_opaque_vector_type for
1554         opaque_V4SI_type_node.
1555
1556 2009-04-15  Catherine Moore  <clm@codesourcery.com>
1557
1558         * debug.h (set_name):  Declare.
1559         * dwarf2out.c (dwarf2out_set_name): Declare.
1560         (dwarf2_debug_hooks): Add set_name.
1561         (find_AT_string): New.
1562         (add_AT_string): Call find_AT_string.
1563         (dwarf2out_set_name): New.
1564         * cp/decl.c (grokdeclarator): Call set_name.
1565         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1566         * debug.c (do_nothing_debug_hooks):  Likewise.
1567         * dbxout.c (dbx_debug_hooks): Likewise.
1568         * sdbout.c (sdb_debug_hooks): Likewise.
1569
1570 2009-04-15  Michael Eager <eager@eagercon.com>
1571
1572         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1573         reg for single-precision FPU.
1574         * config/rs6000/rs6000.md (movsi_internal1): Only for
1575         !TARGET_SINGLE_FPU.
1576         (movsi_internal1_single): New. Add pattern to move SI values to/from
1577         single-precision FP regs.
1578
1579 2009-04-15  Richard Guenther  <rguenther@suse.de>
1580
1581         * omp-low.c (lower_rec_input_clauses): Build correct address
1582         expressions.
1583         (expand_omp_for_generic): Fix multiplication type.
1584         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1585         (generate_memset_zero): Fix types.
1586         * tree-profile.c (prepare_instrumented_value): Correctly
1587         widen a pointer.
1588
1589 2009-04-15  Ian Lance Taylor  <iant@google.com>
1590
1591         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1592         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1593         for -Wall and for -Wc++-compat.
1594         (c_common_post_options): For C++, set warn_enum_compare if not
1595         already set.
1596         * c-tree.h (struct c_expr): Add field original_type.
1597         (build_external_ref): Update declaration.
1598         * c-parser.c (c_parser_braced_init): Set original_type.
1599         (c_parser_initelt): Likewise.
1600         (c_parser_expr_no_commas): Likewise.
1601         (c_parser_conditional_expression): Likewise.
1602         (c_parser_cast_expression): Likewise.
1603         (c_parser_unary_expression): Likewise.  Pull setting of
1604         original_code to top of function.
1605         (c_parser_sizeof_expression): Set original_type.
1606         (c_parser_alignof_expression): Likewise.
1607         (c_parser_postfix_expression): Likewise.  Pull setting of
1608         original_code to top of function.
1609         (c_parser_postfix_expression_after_paren_type): Set original_type.
1610         (c_parser_postfix_expression_after_primary): Likewise.
1611         (c_parser_expression): Likewise.
1612         * c-typeck.c (build_external_ref): Add type parameter.  Change all
1613         callers.
1614         (c_expr_sizeof_expr): Set original_type field.
1615         (parser_build_unary_op): Likewise.
1616         (parser_build_binary_op): Likewise.  Optionally warn about
1617         comparisons of enums of different types.
1618         (digest_init): Set original_type field.
1619         (really_start_incremental_init): Likewise.
1620         (push_init_level, pop_init_level): Likewise.
1621         * doc/invoke.texi (Warning Options): -Wenum-compare now
1622         supported in C.
1623
1624 2009-04-15  Richard Guenther  <rguenther@suse.de>
1625
1626         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
1627         out a necessary conversion.
1628         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
1629         names we didn't value number.
1630         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
1631
1632 2009-04-15  Richard Guenther  <rguenther@suse.de>
1633
1634         PR tree-optimization/39764
1635         * tree-ssa-ccp.c (get_value): Canonicalize value with
1636         canonicalize_float_value.
1637
1638 2009-04-15  Jan Hubicka  <jh@suse.cz>
1639
1640         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
1641         Wrong version of patch.
1642
1643 2009-04-15  Jan Hubicka  <jh@suse.cz>
1644
1645         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
1646
1647 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
1648
1649         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
1650         our distinct integral and vector types.
1651
1652 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
1653
1654         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
1655         * init.c (build_vtbl_address): Remove call to assemble_external.
1656
1657 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
1658
1659         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
1660         output for other floating point modes.
1661
1662 2009-04-14  Diego Novillo  <dnovillo@google.com>
1663
1664         * diagnostic.c (diagnostic_report_diagnostic): Do not
1665         warn about loaded plugins for DK_ERROR and DK_WARNING.
1666         * c-decl.c (declspecs_add_type): Move call to
1667         invoke_plugin_callbacks ...
1668         * c-parser.c (c_parser_declspecs): ... here.
1669         * plugin.c (dump_active_plugins): Tidy output.
1670
1671 2009-04-14  Diego Novillo  <dnovillo@google.com>
1672             Le-Chun Wu  <lcwu@google.com>
1673
1674         * configure.ac: Add --enable-plugin support.
1675         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
1676         * Makefile.in (PLUGIN_H): Define.
1677         Export ENABLE_PLUGIN and GMPINC to site.exp.
1678         Add PLUGINLIBS to link command.
1679         Add/modify dependencies for plugin.o and files including plugin.h.
1680         (plugin.o): New.
1681         * config.in: Regenerate.
1682
1683         * opts.c (common_handle_option): Handle OPT_fplugin_ and
1684         OPT_fplugin_arg_.
1685
1686 2009-04-14  Le-Chun Wu  <lcwu@google.com>
1687
1688         * tree-pass.h (register_one_dump_file): Add a prototype for
1689         register_one_dump_file.
1690         * toplev.c (compile_file): Call initialize_plugins.
1691         (do_compile): Call invoke_plugin_callbacks.
1692         (toplev_main): Call invoke_plugin_callbacks.
1693         * common.opt: Add -fplugin= and -fplugin-arg-.
1694         * gcc-plugin.h: New public header file for plugins to include.
1695         * plugin.c: New source file.
1696         * plugin.h: New internal header file.
1697         * passes.c (register_one_dump_file): Make it external.
1698
1699         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
1700
1701 2009-04-14  Diego Novillo  <dnovillo@google.com>
1702
1703         * doc/plugins.texi: New.
1704         * doc/gccint.texi: Add reference to Plugins chapter.
1705         * doc/invoke.texi: Document -fplugin and -fplugin-arg
1706         * diagnostic.c (diagnostic_report_diagnostic): Warn about
1707         loaded plugins, if any.
1708         * timevar.def (TV_PLUGIN_INIT): Define.
1709         (TV_PLUGIN_RUN): Define.
1710         * plugin.c: Include timevar.h
1711         (plugins_active_p): New.
1712         (dump_active_plugins): New.
1713         (debug_active_plugins): New.
1714
1715 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
1716
1717         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
1718         library paths.
1719         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
1720
1721 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
1722
1723         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
1724         the same as a minus without a shift.
1725
1726 2009-04-14  Nick Clifton  <nickc@redhat.com>
1727
1728         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
1729         comparisons with small integers will always produce a short
1730         branch.
1731
1732 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
1733
1734         Merge:
1735         2008-12-19  Diego Novillo  <dnovillo@google.com>
1736
1737         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
1738
1739 2009-04-14  Richard Guenther  <rguenther@suse.de>
1740
1741         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
1742         verification.
1743         (verify_gimple_assign_binary): Likewise.  Handle shifts and
1744         rotates correctly.
1745         (verify_gimple_phi): Print the mismatched argument position.
1746         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1747         Fix types.
1748         (vect_update_init_of_dr): Likewise.
1749         * matrix-reorg.c (transform_access_sites): Do what the
1750         comment suggests.
1751         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
1752
1753 2009-04-13  Michael Eager <eager@eagercon.com>
1754
1755         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
1756         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
1757         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
1758         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
1759         remove duplicate config
1760
1761 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1762
1763         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
1764         file_name:line_number type locator of the call site.
1765
1766 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1767
1768         * genautomata.c: Put blank after comma.
1769         (automaton_decls): New.
1770         (struct unit_usage): Add comments to member next.
1771         (store_alt_unit_usage): Keep the list ordered.
1772         (unit_present_on_list_p, equal_alternatives_p): New.
1773         (check_regexp_units_distribution): Check units distribution
1774         correctness correctly.
1775         (main): Don't write automata if error is found.  Return correct
1776         exit code.
1777
1778         * config/m68k/cf.md (cfv4_ds): Remove.
1779         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
1780         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
1781
1782         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
1783         power4-load-ext, power4-store, power4-store-update,
1784         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
1785         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
1786         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
1787         power4-sqrt, power4-isync): Modify reservation to make correct
1788         unit distribution to automata.
1789
1790         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
1791         power5-store-update, power5-two, power5-three, power5-lmul,
1792         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
1793
1794 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
1795
1796         * except.c (pass_set_nothrow_function_flags): Set name and add
1797         TODO_dump_func.
1798         (set_nothrow_function_flags): Mention in the dump file when
1799         changing a function to nothrow.
1800
1801 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
1802
1803         PR/39066
1804         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
1805         instead of unsigned long.
1806
1807 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1808
1809         * config/arm/arm.c (return_used_this_function): Remove.
1810         (arm_output_function_prologue): Remove use of
1811         return_used_this_function.
1812         (output_return_instruction): Replace use of
1813         return_used_this_function
1814         by cfun->machine->return_used_this_function.
1815         (arm_output_epilogue): Likewise.
1816         (arm_output_function_epilogue): Likewise.
1817         (thumb_unexpanded_epilogue): Likewise.
1818         * config/arm/arm.h (struct machine_function):
1819         New member return_used_this_function.
1820
1821 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
1822
1823         * doc/install.texi: Correct description of default directory for
1824         --with-gxx-include-dir.
1825
1826 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
1827
1828         * fold-const.c (build_range_check): Properly deal with enumeral and
1829         boolean base types.
1830
1831 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
1832
1833         * doc/invoke.texi (max_gcse_passes): Remove documentation.
1834         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
1835         * params.h (MAX_GCSE_PASSES): Remove.
1836         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
1837         in sequence.  Remove ability to run multiple passes.
1838         (bypass_jumps): Report run as third CPROP pass.
1839
1840 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
1841
1842         PR middle-end/39651
1843         * except.c (can_throw_external): Look at each insn in a SEQUENCE
1844         when deciding whether the whole SEQUENCE can throw.
1845
1846 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         PR target/39740
1849         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
1850         offseted label references.
1851
1852 2009-04-11  Jan Hubicka  <jh@suse.cz>
1853
1854         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
1855
1856 2009-04-11  Richard Guenther  <rguenther@suse.de>
1857
1858         PR middle-end/39732
1859         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
1860         return variables as TREE_ADDRESSABLE.
1861
1862 2009-04-11  Richard Guenther  <rguenther@suse.de>
1863
1864         PR tree-optimization/39713
1865         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
1866         reference trees have SSA_NAME operands.
1867
1868 2009-04-11  Richard Guenther  <rguenther@suse.de>
1869
1870         PR c/39712
1871         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
1872         address expressions.
1873
1874 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1875
1876         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
1877         match changes in Cygwin 1.7
1878         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1879         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
1880
1881 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1882
1883         PR tree-optimization/39701
1884         * doc/invoke.texi (Optimization Options): Document change in
1885         meaning and initialization of -fdelete-null-pointer-checks.
1886
1887 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         PR middle-end/39701
1890         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
1891
1892         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
1893         here.
1894
1895         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
1896
1897 2009-04-10  Chao-ying Fu  <fu@mips.com>
1898
1899         * doc/tm.texi (Instruction Output): Document
1900         TARGET_ASM_FINAL_POSTSCAN_INSN.
1901         * target.h (final_postscan_insn): New field in asm_out.
1902         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1903         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
1904         * final.c (final_scan_insn): Call
1905         targetm.asm_out.final_postscan_insn after outputting
1906         an asm macro and a normal instruction.
1907
1908         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
1909         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
1910         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
1911         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
1912         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1913
1914 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1915
1916         PR middle-end/39701
1917         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
1918         variables as non-NULL even with -fdelete-null-pointer-checks.
1919
1920 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1921
1922         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
1923
1924 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1925
1926         PR target/39678
1927         * config/i386/i386.c (classify_argument): Handle SCmode with
1928         (bit_offset % 64) != 0.
1929
1930 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
1931
1932         * doc/invoke.texi (Optimize Options): Add cross-reference to
1933         -Q --help=optimizers examples.
1934
1935 2009-04-10  Ben Elliston  <bje@au.ibm.com>
1936
1937         PR target/36800
1938         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
1939         regalign for the reg == fpr and TDmode case.
1940
1941 2009-04-09  David Ayers  <ayers@fsfe.org>
1942
1943         PR objc/29200
1944         * objc/objc-act.c (warn_with_method): Remove helper function.
1945         (check_duplicates): Call warning and inform directly.
1946         (really_start_method): Likewise.
1947
1948 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1949
1950         * expmed.c (expand_divmod): Always use a comparison for a division
1951         by a large unsigned integer.
1952
1953         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
1954         for things others than variables or functions as nonzero.
1955
1956 2009-04-09  Nick Clifton  <nickc@redhat.com>
1957
1958         * unwind-compat.c: Change copyright header to refer to version
1959         3 of the GNU General Public License with version 3.1 of the
1960         GCC Runtime Library Exception and to point readers at the
1961         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
1962         * config/alpha/crtfastmath.c: Likewise.
1963         * config/alpha/linux-unwind.h: Likewise.
1964         * config/alpha/qrnnd.asm: Likewise.
1965         * config/alpha/vms-crt0-64.c: Likewise.
1966         * config/alpha/vms-crt0.c: Likewise.
1967         * config/alpha/vms-dwarf2.asm: Likewise.
1968         * config/alpha/vms-dwarf2eh.asm: Likewise.
1969         * config/alpha/vms-psxcrt0-64.c: Likewise.
1970         * config/alpha/vms-psxcrt0.c: Likewise.
1971         * config/alpha/vms_tramp.asm: Likewise.
1972         * config/arc/initfini.c: Likewise.
1973         * config/arc/lib1funcs.asm: Likewise.
1974         * config/arm/bpabi-v6m.S: Likewise.
1975         * config/arm/bpabi.S: Likewise.
1976         * config/arm/bpabi.c: Likewise.
1977         * config/arm/crti.asm: Likewise.
1978         * config/arm/crtn.asm: Likewise.
1979         * config/arm/ieee754-df.S: Likewise.
1980         * config/arm/ieee754-sf.S: Likewise.
1981         * config/arm/lib1funcs.asm: Likewise.
1982         * config/arm/libunwind.S: Likewise.
1983         * config/arm/linux-atomic.c: Likewise.
1984         * config/arm/mmintrin.h: Likewise.
1985         * config/arm/pr-support.c: Likewise.
1986         * config/arm/unaligned-funcs.c: Likewise.
1987         * config/arm/unwind-arm.c: Likewise.
1988         * config/arm/unwind-arm.h: Likewise.
1989         * config/avr/libgcc.S: Likewise.
1990         * config/bfin/crti.s: Likewise.
1991         * config/bfin/crtlibid.s: Likewise.
1992         * config/bfin/crtn.s: Likewise.
1993         * config/bfin/lib1funcs.asm: Likewise.
1994         * config/bfin/linux-unwind.h: Likewise.
1995         * config/cris/arit.c: Likewise.
1996         * config/cris/cris_abi_symbol.c: Likewise.
1997         * config/darwin-64.c: Likewise.
1998         * config/darwin-crt2.c: Likewise.
1999         * config/darwin-crt3.c: Likewise.
2000         * config/darwin.h: Likewise.
2001         * config/dbxelf.h: Likewise.
2002         * config/dfp-bit.c: Likewise.
2003         * config/dfp-bit.h: Likewise.
2004         * config/elfos.h: Likewise.
2005         * config/fixed-bit.c: Likewise.
2006         * config/fixed-bit.h: Likewise.
2007         * config/fp-bit.c: Likewise.
2008         * config/fp-bit.h: Likewise.
2009         * config/fr30/crti.asm: Likewise.
2010         * config/fr30/crtn.asm: Likewise.
2011         * config/fr30/lib1funcs.asm: Likewise.
2012         * config/freebsd-spec.h: Likewise.
2013         * config/frv/cmovd.c: Likewise.
2014         * config/frv/cmovh.c: Likewise.
2015         * config/frv/cmovw.c: Likewise.
2016         * config/frv/frvbegin.c: Likewise.
2017         * config/frv/frvend.c: Likewise.
2018         * config/frv/lib1funcs.asm: Likewise.
2019         * config/glibc-stdint.h: Likewise.
2020         * config/h8300/clzhi2.c: Likewise.
2021         * config/h8300/crti.asm: Likewise.
2022         * config/h8300/crtn.asm: Likewise.
2023         * config/h8300/ctzhi2.c: Likewise.
2024         * config/h8300/fixunssfsi.c: Likewise.
2025         * config/h8300/lib1funcs.asm: Likewise.
2026         * config/h8300/parityhi2.c: Likewise.
2027         * config/h8300/popcounthi2.c: Likewise.
2028         * config/i386/ammintrin.h: Likewise.
2029         * config/i386/att.h: Likewise.
2030         * config/i386/avxintrin.h: Likewise.
2031         * config/i386/biarch64.h: Likewise.
2032         * config/i386/bmmintrin.h: Likewise.
2033         * config/i386/cpuid.h: Likewise.
2034         * config/i386/cross-stdarg.h: Likewise.
2035         * config/i386/crtfastmath.c: Likewise.
2036         * config/i386/crtprec.c: Likewise.
2037         * config/i386/cygming-crtbegin.c: Likewise.
2038         * config/i386/cygming-crtend.c: Likewise.
2039         * config/i386/cygwin.asm: Likewise.
2040         * config/i386/emmintrin.h: Likewise.
2041         * config/i386/gmm_malloc.h: Likewise.
2042         * config/i386/gthr-win32.c: Likewise.
2043         * config/i386/i386.h: Likewise.
2044         * config/i386/immintrin.h: Likewise.
2045         * config/i386/linux-unwind.h: Likewise.
2046         * config/i386/linux64.h: Likewise.
2047         * config/i386/mm3dnow.h: Likewise.
2048         * config/i386/mmintrin-common.h: Likewise.
2049         * config/i386/mmintrin.h: Likewise.
2050         * config/i386/nmmintrin.h: Likewise.
2051         * config/i386/pmm_malloc.h: Likewise.
2052         * config/i386/pmmintrin.h: Likewise.
2053         * config/i386/smmintrin.h: Likewise.
2054         * config/i386/sol2-c1.asm: Likewise.
2055         * config/i386/sol2-ci.asm: Likewise.
2056         * config/i386/sol2-cn.asm: Likewise.
2057         * config/i386/sol2-gc1.asm: Likewise.
2058         * config/i386/tmmintrin.h: Likewise.
2059         * config/i386/unix.h: Likewise.
2060         * config/i386/w32-unwind.h: Likewise.
2061         * config/i386/wmmintrin.h: Likewise.
2062         * config/i386/x86-64.h: Likewise.
2063         * config/i386/x86intrin.h: Likewise.
2064         * config/i386/xmmintrin.h: Likewise.
2065         * config/ia64/crtbegin.asm: Likewise.
2066         * config/ia64/crtend.asm: Likewise.
2067         * config/ia64/crtfastmath.c: Likewise.
2068         * config/ia64/crti.asm: Likewise.
2069         * config/ia64/crtn.asm: Likewise.
2070         * config/ia64/fde-glibc.c: Likewise.
2071         * config/ia64/lib1funcs.asm: Likewise.
2072         * config/ia64/linux-unwind.h: Likewise.
2073         * config/ia64/quadlib.c: Likewise.
2074         * config/ia64/unwind-ia64.c: Likewise.
2075         * config/linux.h: Likewise.
2076         * config/m32c/m32c-lib1.S: Likewise.
2077         * config/m32c/m32c-lib2-trapv.c: Likewise.
2078         * config/m32c/m32c-lib2.c: Likewise.
2079         * config/m32r/initfini.c: Likewise.
2080         * config/m68hc11/larith.asm: Likewise.
2081         * config/m68hc11/m68hc11-crt0.S: Likewise.
2082         * config/m68k/cf.md: Likewise.
2083         * config/m68k/crti.s: Likewise.
2084         * config/m68k/crtn.s: Likewise.
2085         * config/m68k/lb1sf68.asm: Likewise.
2086         * config/m68k/linux-unwind.h: Likewise.
2087         * config/mcore/crti.asm: Likewise.
2088         * config/mcore/crtn.asm: Likewise.
2089         * config/mcore/lib1.asm: Likewise.
2090         * config/mips/linux-unwind.h: Likewise.
2091         * config/mips/loongson.h: Likewise.
2092         * config/mips/mips16.S: Likewise.
2093         * config/mmix/crti.asm: Likewise.
2094         * config/mmix/crtn.asm: Likewise.
2095         * config/pa/fptr.c: Likewise.
2096         * config/pa/hpux-unwind.h: Likewise.
2097         * config/pa/lib2funcs.asm: Likewise.
2098         * config/pa/linux-atomic.c: Likewise.
2099         * config/pa/linux-unwind.h: Likewise.
2100         * config/pa/milli64.S: Likewise.
2101         * config/pa/quadlib.c: Likewise.
2102         * config/pa/stublib.c: Likewise.
2103         * config/picochip/libgccExtras/adddi3.asm: Likewise.
2104         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
2105         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
2106         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
2107         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
2108         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
2109         * config/picochip/libgccExtras/divmod15.asm: Likewise.
2110         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
2111         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
2112         * config/picochip/libgccExtras/longjmp.asm: Likewise.
2113         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
2114         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
2115         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
2116         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
2117         * config/picochip/libgccExtras/setjmp.asm: Likewise.
2118         * config/picochip/libgccExtras/subdi3.asm: Likewise.
2119         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
2120         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
2121         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
2122         * config/rs6000/750cl.h: Likewise.
2123         * config/rs6000/altivec.h: Likewise.
2124         * config/rs6000/biarch64.h: Likewise.
2125         * config/rs6000/crtresfpr.asm: Likewise.
2126         * config/rs6000/crtresgpr.asm: Likewise.
2127         * config/rs6000/crtresxfpr.asm: Likewise.
2128         * config/rs6000/crtresxgpr.asm: Likewise.
2129         * config/rs6000/crtsavfpr.asm: Likewise.
2130         * config/rs6000/crtsavgpr.asm: Likewise.
2131         * config/rs6000/darwin-asm.h: Likewise.
2132         * config/rs6000/darwin-fallback.c: Likewise.
2133         * config/rs6000/darwin-fpsave.asm: Likewise.
2134         * config/rs6000/darwin-ldouble.c: Likewise.
2135         * config/rs6000/darwin-tramp.asm: Likewise.
2136         * config/rs6000/darwin-unwind.h: Likewise.
2137         * config/rs6000/darwin-vecsave.asm: Likewise.
2138         * config/rs6000/darwin-world.asm: Likewise.
2139         * config/rs6000/e500crtres32gpr.asm: Likewise.
2140         * config/rs6000/e500crtres64gpr.asm: Likewise.
2141         * config/rs6000/e500crtres64gprctr.asm: Likewise.
2142         * config/rs6000/e500crtrest32gpr.asm: Likewise.
2143         * config/rs6000/e500crtrest64gpr.asm: Likewise.
2144         * config/rs6000/e500crtresx32gpr.asm: Likewise.
2145         * config/rs6000/e500crtresx64gpr.asm: Likewise.
2146         * config/rs6000/e500crtsav32gpr.asm: Likewise.
2147         * config/rs6000/e500crtsav64gpr.asm: Likewise.
2148         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2149         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
2150         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
2151         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
2152         * config/rs6000/eabi-ci.asm: Likewise.
2153         * config/rs6000/eabi-cn.asm: Likewise.
2154         * config/rs6000/eabi.asm: Likewise.
2155         * config/rs6000/linux-unwind.h: Likewise.
2156         * config/rs6000/linux64.h: Likewise.
2157         * config/rs6000/paired.h: Likewise.
2158         * config/rs6000/paired.md: Likewise.
2159         * config/rs6000/ppc64-fp.c: Likewise.
2160         * config/rs6000/ppu_intrinsics.h: Likewise.
2161         * config/rs6000/rs6000.h: Likewise.
2162         * config/rs6000/si2vmx.h: Likewise.
2163         * config/rs6000/sol-ci.asm: Likewise.
2164         * config/rs6000/sol-cn.asm: Likewise.
2165         * config/rs6000/spe.h: Likewise.
2166         * config/rs6000/spu2vmx.h: Likewise.
2167         * config/rs6000/sysv4.h: Likewise.
2168         * config/rs6000/tramp.asm: Likewise.
2169         * config/rs6000/vec_types.h: Likewise.
2170         * config/s390/linux-unwind.h: Likewise.
2171         * config/s390/tpf-unwind.h: Likewise.
2172         * config/score/crti.asm: Likewise.
2173         * config/score/crtn.asm: Likewise.
2174         * config/sh/crt1.asm: Likewise.
2175         * config/sh/crti.asm: Likewise.
2176         * config/sh/crtn.asm: Likewise.
2177         * config/sh/divtab-sh4-300.c: Likewise.
2178         * config/sh/divtab-sh4.c: Likewise.
2179         * config/sh/divtab.c: Likewise.
2180         * config/sh/lib1funcs-4-300.asm: Likewise.
2181         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
2182         * config/sh/lib1funcs.asm: Likewise.
2183         * config/sh/lib1funcs.h: Likewise.
2184         * config/sh/linux-atomic.asm: Likewise.
2185         * config/sh/linux-unwind.h: Likewise.
2186         * config/sh/shmedia.h: Likewise.
2187         * config/sh/sshmedia.h: Likewise.
2188         * config/sh/ushmedia.h: Likewise.
2189         * config/sparc/crtfastmath.c: Likewise.
2190         * config/sparc/linux-unwind.h: Likewise.
2191         * config/sparc/sol2-c1.asm: Likewise.
2192         * config/sparc/sol2-ci.asm: Likewise.
2193         * config/sparc/sol2-cn.asm: Likewise.
2194         * config/spu/divmodti4.c: Likewise.
2195         * config/spu/divv2df3.c: Likewise.
2196         * config/spu/float_disf.c: Likewise.
2197         * config/spu/float_unsdidf.c: Likewise.
2198         * config/spu/float_unsdisf.c: Likewise.
2199         * config/spu/float_unssidf.c: Likewise.
2200         * config/spu/mfc_multi_tag_release.c: Likewise.
2201         * config/spu/mfc_multi_tag_reserve.c: Likewise.
2202         * config/spu/mfc_tag_release.c: Likewise.
2203         * config/spu/mfc_tag_reserve.c: Likewise.
2204         * config/spu/mfc_tag_table.c: Likewise.
2205         * config/spu/multi3.c: Likewise.
2206         * config/spu/spu_internals.h: Likewise.
2207         * config/spu/spu_intrinsics.h: Likewise.
2208         * config/spu/spu_mfcio.h: Likewise.
2209         * config/spu/vec_types.h: Likewise.
2210         * config/spu/vmx2spu.h: Likewise.
2211         * config/stormy16/stormy16-lib2.c: Likewise.
2212         * config/svr4.h: Likewise.
2213         * config/sync.c: Likewise.
2214         * config/v850/lib1funcs.asm: Likewise.
2215         * config/vxlib-tls.c: Likewise.
2216         * config/vxlib.c: Likewise.
2217         * config/vxworks-dummy.h: Likewise.
2218         * config/xtensa/crti.asm: Likewise.
2219         * config/xtensa/crtn.asm: Likewise.
2220         * config/xtensa/ieee754-df.S: Likewise.
2221         * config/xtensa/ieee754-sf.S: Likewise.
2222         * config/xtensa/lib1funcs.asm: Likewise.
2223         * config/xtensa/lib2funcs.S: Likewise.
2224         * config/xtensa/linux-unwind.h: Likewise.
2225         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2226         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
2227         * coretypes.h: Likewise.
2228         * crtstuff.c: Likewise.
2229         * defaults.h: Likewise.
2230         * dwarf2.h: Likewise.
2231         * emutls.c: Likewise.
2232         * gbl-ctors.h: Likewise.
2233         * gcov-io.h: Likewise.
2234         * ginclude/float.h: Likewise.
2235         * ginclude/iso646.h: Likewise.
2236         * ginclude/stdarg.h: Likewise.
2237         * ginclude/stdbool.h: Likewise.
2238         * ginclude/stddef.h: Likewise.
2239         * ginclude/stdfix.h: Likewise.
2240         * ginclude/stdint-gcc.h: Likewise.
2241         * ginclude/tgmath.h: Likewise.
2242         * gthr-aix.h: Likewise.
2243         * gthr-dce.h: Likewise.
2244         * gthr-gnat.c: Likewise.
2245         * gthr-gnat.h: Likewise.
2246         * gthr-lynx.h: Likewise.
2247         * gthr-mipssde.h: Likewise.
2248         * gthr-nks.h: Likewise.
2249         * gthr-posix.c: Likewise.
2250         * gthr-posix.h: Likewise.
2251         * gthr-posix95.h: Likewise.
2252         * gthr-rtems.h: Likewise.
2253         * gthr-single.h: Likewise.
2254         * gthr-solaris.h: Likewise.
2255         * gthr-tpf.h: Likewise.
2256         * gthr-vxworks.h: Likewise.
2257         * gthr-win32.h: Likewise.
2258         * gthr.h: Likewise.
2259         * libgcc2.c: Likewise.
2260         * libgcc2.h: Likewise.
2261         * libgcov.c: Likewise.
2262         * tsystem.h: Likewise.
2263         * typeclass.h: Likewise.
2264         * unwind-c.c: Likewise.
2265         * unwind-compat.h: Likewise.
2266         * unwind-dw2-fde-compat.c: Likewise.
2267         * unwind-dw2-fde-darwin.c: Likewise.
2268         * unwind-dw2-fde-glibc.c: Likewise.
2269         * unwind-dw2-fde.c: Likewise.
2270         * unwind-dw2-fde.h: Likewise.
2271         * unwind-dw2.c: Likewise.
2272         * unwind-dw2.h: Likewise.
2273         * unwind-generic.h: Likewise.
2274         * unwind-pe.h: Likewise.
2275         * unwind-sjlj.c: Likewise.
2276         * unwind.inc: Likewise.
2277         * config/arm/neon-gen.ml: Change generated copyright header to
2278         refer to version 3 of the GNU General Public License with
2279         version 3.1 of the GCC Runtime Library Exception and to point
2280         readers at the COPYING3 and COPYING3.RUNTIME files and the
2281         FSF's license web page.
2282         * config/arm/arm_neon.h: Regenerate.
2283
2284 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2285
2286         * config/cris/cris.md: Change copyright header to refer to version
2287         3 of the GNU General Public License.
2288         * doc/install.texi2html: Change copyright header to refer to version
2289         3 of the GNU General Public License and to point readers at the
2290         COPYING3 file and the FSF's license web page.
2291         * config/vax/linux.h: Likewise.
2292
2293 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2294
2295         * config/i386/i386.md (cmpcc): New.
2296         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
2297         (sync_compare_and_swap_cc*): Delete.
2298
2299         * config/s390/s390.c (s390_compare_emitted): Remove.
2300         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
2301         s390_compare_emitted used to be handled.  Assert that modes match.
2302         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
2303         refer to sync_compare_and_swap_ccsi.
2304         * config/s390/s390.h (s390_compare_emitted): Remove.
2305         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
2306         instead of s390_compare_emitted.
2307         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
2308         instead of s390_compare_emitted.
2309         * config/s390/s390.md (cmpcc): New.
2310         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
2311         CC_REGNUM, do not pretend it's set.
2312         (sync_compare_and_swap_cc*): Delete.
2313         * config/s390/predicates.md (cc_reg_operand): New.
2314
2315         * expr.c (sync_compare_and_swap_cc): Delete.
2316         * optabs.h (sync_compare_and_swap_cc): Delete.
2317         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
2318         is being used with can_compare_p.
2319         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
2320         (find_cc_set): New.
2321         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
2322         look for a MODE_CC set instead.  Use emit_store_flag.
2323         (expand_compare_and_swap_loop): Likewise, with some additional
2324         complication to avoid a force_reg when useless.  Use
2325         emit_cmp_and_jump_insns.
2326         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
2327         * doc/md.texi (sync_compare_and_swap_cc): Merge with
2328         sync_compare_and_swap documentation.
2329
2330 2009-04-09  Jan Hubicka  <jh@suse.cz>
2331
2332         * except.c (find_prev_try): Break out from ....
2333         (duplicate_eh_regions): ... here; properly update prev_try pointers
2334         when duplication part of tree.
2335         (dump_eh_tree): Improve dumping.
2336         (verify_eh_region): New.
2337         (verify_eh_tree): Use it.
2338
2339 2009-04-06  Richard Guenther  <rguenther@suse.de>
2340
2341         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
2342         &ARRAY addresses by adjusting their types and prepending
2343         a conversion.
2344         * tree-cfg.c (verify_gimple_assign_single): Verify that
2345         addresses are correct.
2346
2347 2009-04-09  Richard Guenther  <rguenther@suse.de>
2348
2349         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
2350         indices into an array reference if possible.
2351         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2352         Fold POINTER_PLUS_EXPR statements with invariant address.
2353
2354 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
2355
2356         PR target/39634
2357         * config.gcc (powerpc64-*-linux*): Always build biarch.
2358
2359 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2360
2361         PR c/39613
2362         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
2363         it and pedwarn if this results in an INTEGER_CST.
2364
2365 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2366
2367         * doc/install.texi: Update minimum GMP version.  Remove obsolete
2368         text in MPFR section.
2369
2370 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2371
2372         * dwarf2out.c (class_scope_p): New static inline.
2373         (class_or_namespace_scope_p): Use it.
2374         (gen_variable_die): Use DW_TAG_member tag for static data member
2375         declarations instead of DW_TAG_variable.
2376
2377         PR middle-end/39573
2378         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2379         variables.
2380
2381 2009-04-08  Richard Guenther  <rguenther@suse.de>
2382
2383         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2384         valueize random data.
2385
2386 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
2387
2388         * config.gcc (aix tm_file):  Add aix-stdint.h.
2389         (aix tm clause use_gcc_stdint):  Set to wrap.
2390         * config/rs6000/aix-stdint.h:  New file.
2391
2392 2009-04-08  Richard Guenther  <rguenther@suse.de>
2393
2394         PR middle-end/36291
2395         * tree-dfa.c (add_referenced_var): Do not recurse into
2396         global initializers.
2397         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2398         exposed variables.
2399         (fold_const_aggregate_ref): Likewise.
2400
2401 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2402
2403         * recog.c (ordered_comparison_operator): New.
2404         * gensupport.c (std_preds): Add it.
2405         * doc/md.texi (Machine-Independent Predicates): Document it.
2406
2407 2009-04-08  Jan Hubicka  <jh@suse.cz>
2408
2409         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2410         * function.h (rtl_eh): Remove exception_handler_label_map.
2411         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2412         remove_exception_handler_label, for_each_eh_label_1): Remove.
2413         (rtl_remove_unreachable_regions): Remove.
2414         (convert_from_eh_region_ranges): Do not remove unreachable regions.
2415         (find_exception_handler_labels): Don't build the hashtable.
2416         (maybe_remove_eh_handler): Remove.
2417         (for_each_eh_label): Rewrite to walk the tree.
2418         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2419         * except.h (maybe_remove_eh_handler): Remove.
2420         * passes.c (init_optimization_passes): Schedule second EH cleanup
2421         before out-of-ssa.
2422         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2423         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2424
2425 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2426
2427         * genoutput.c (validate_optab_operands): New.
2428         (gen_insn, gen_expand): Call it.
2429
2430         * genflags.c (gen_insn): Detect misused iterators.
2431         (main): Pass line_no to gen_insn, exit with status 1 on error.
2432
2433         * genextract.c (line_no): Make global.
2434         (VEC_safe_set_locstr): Change assertion to error message.
2435         (main): Exit with status 1 on error.
2436
2437 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
2438
2439         PR c/39614
2440         PR c/39673
2441         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2442         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2443         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2444         * c-convert.c (convert): Do not call fold on results of conversion
2445         functions when the result is a C_MAYBE_CONST_EXPR.
2446         * c-parser.c (c_parser_postfix_expression): Do not fold condition
2447         of __builtin_choose_expr.
2448         * c-typeck.c (remove_c_maybe_const_expr): New.
2449         (build_unary_op, build_conditional_expr, build_compound_expr,
2450         build_binary_op, c_objc_common_truthvalue_conversion): Call
2451         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2452         integer operands.
2453
2454 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
2455
2456         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
2457         CODE to produce a new one. Add a prototype to use fold_convert_const
2458
2459 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2460
2461         PR bootstrap/39660
2462         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2463         mix declarations and code.
2464
2465 2009-04-08  Ben Elliston  <bje@au.ibm.com>
2466
2467         * gcc.c: Replace `CC' with `GCC' throughout.
2468
2469 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2470
2471         * doc/invoke.texi: Document Atom support.
2472
2473 2009-04-07  Jason Merrill  <jason@redhat.com>
2474
2475         PR c++/25185
2476         * c-common.h, c-common.c: Add flag_pretty_templates.
2477         * c-opts.c (c_common_handle_option): Set it.
2478         * c.opt: Add -fno-pretty-templates.
2479         * doc/invoke.texi (C++ Dialect Options): Likewise.
2480
2481 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2484         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2485         (ia64_expand_builtin): Likewise.
2486
2487 2009-04-07  Martin Jambor  <mjambor@suse.cz>
2488
2489         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2490         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2491         ADDR_EXPRS are include too.
2492
2493 2009-04-07  Richard Guenther  <rguenther@suse.de>
2494
2495         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2496         decls are only used if passes as parameters or if they are
2497         local statics and the call is not to a builtin.
2498         (call_may_clobber_ref_p_1): Likewise.
2499
2500 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2501
2502         * expr.c (do_store_flag): Remove last argument.  Simplify code
2503         to avoid duplication of tests already done by can_compare_p.
2504         (expand_expr_real_1): Adjust caller.
2505
2506 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2507
2508         * optabs.c (can_compare_p): Test the predicate of a
2509         cbranch and cstore pattern.
2510
2511 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2512
2513         * expr.c (convert_move): Use emit_store_flag instead of
2514         "emulating" it.
2515
2516 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2517
2518         * config/i386/i386.c (ix86_compare_emitted): Remove.
2519         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2520         ix86_compare_op0 like ix86_compare_emitted used to be handled.
2521         * config/i386/i386.h (ix86_compare_emitted): Remove.
2522         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2523         instead of ix86_compare_emitted.
2524         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
2525
2526 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
2527
2528         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2529         Add t-sysroot-suffix to tmake_file.
2530         * config/print-sysroot-suffix.sh: New file.
2531         * config/t-sysroot-suffix: New file.
2532
2533 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2534
2535         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2536         as the latter produces a warning when the target does not support
2537         infinity.
2538
2539 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2540
2541         * dfp.c: Replace type punning assignments with memcpy throughout.
2542         * Makefile.in (dfp.o-warn): Remove.
2543
2544 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
2545
2546         PR target/39634
2547         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2548         Include soft-fp/t-softfp after rs6000/t-linux64.
2549
2550 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2551
2552         * stor-layout.c (set_sizetype): Use the full precision of their
2553         machine mode for bitsize types.
2554
2555 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2556
2557         * config/i386/i386.md: Revert 2 accidental checkins.
2558
2559 2009-04-06  Joey Ye  <joey.ye@intel.com>
2560             Xuepeng Guo <xuepeng.guo@intel.com>
2561             H.J. Lu  <hongjiu.lu@intel.com>
2562
2563         Atom pipeline model, tuning and insn selection.
2564         * config.gcc (atom): Add atom config options and target.
2565
2566         * config/i386/atom.md: New.
2567
2568         * config/i386/i386.c (atom_cost): New cost.
2569         (m_ATOM): New macro flag.
2570         (initial_ix86_tune_features): Set m_ATOM.
2571         (x86_accumulate_outgoing_args): Likewise.
2572         (x86_arch_always_fancy_math_387): Likewise.
2573         (processor_target): Add Atom cost.
2574         (cpu_names): Add Atom cpu name.
2575         (override_options): Set Atom ISA.
2576         (ix86_issue_rate): New case PROCESSOR_ATOM.
2577         (ix86_adjust_cost): Likewise.
2578
2579         * config/i386/i386.h (TARGET_ATOM): New target macro.
2580         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2581         (TARGET_OPT_AGU): New target option.
2582         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2583         (processor_type): Add PROCESSOR_ATOM.
2584
2585         * config/i386/i386.md (cpu): Add new value "atom".
2586         (use_carry, movu): New attr.
2587         (atom.md): Include atom.md.
2588         (adddi3_carry_rex64): Set attr "use_carry".
2589         (addqi3_carry): Likewise.
2590         (addhi3_carry): Likewise.
2591         (addsi3_carry): Likewise.
2592         (*addsi3_carry_zext): Likewise.
2593         (subdi3_carry_rex64): Likewise.
2594         (subqi3_carry): Likewise.
2595         (subhi3_carry): Likewise.
2596         (subsi3_carry): Likewise.
2597         (x86_movdicc_0_m1_rex64): Likewise.
2598         (*x86_movdicc_0_m1_se): Likewise.
2599         (x86_movsicc_0_m1): Likewise.
2600         (*x86_movsicc_0_m1_se): Likewise.
2601         (*adddi_1_rex64): Emit add insn as much as possible.
2602         (*addsi_1): Likewise.
2603         (return_internal): Set atom_unit.
2604         (return_internal_long): Likewise.
2605         (return_pop_internal): Likewise.
2606         (*rcpsf2_sse): Set atom_sse_attr attr.
2607         (*qrt<mode>2_sse): Likewise.
2608         (*prefetch_sse): Likewise.
2609
2610         * config/i386/i386-c.c (ix86_target_macros_internal): New case
2611         PROCESSOR_ATOM.
2612         (ix86_target_macros_internal): Likewise.
2613
2614         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2615         (*prefetch_sse_rex): Likewise.
2616         (sse_rcpv4sf2): Likewise.
2617         (sse_vmrcpv4sf2): Likewise.
2618         (sse_sqrtv4sf2): Likewise.
2619         (<sse>_vmsqrt<mode>2): Likewise.
2620         (sse_ldmxcsr): Likewise.
2621         (sse_stmxcsr): Likewise.
2622         (*sse_sfence): Likewise.
2623         (sse2_clflush): Likewise.
2624         (*sse2_mfence): Likewise.
2625         (*sse2_lfence): Likewise.
2626         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
2627         (<sse>_movup<ssemodesuffixf2c>): Likewise.
2628         (avx_movdqu<avxmodesuffix>): Likewise.
2629         (avx_lddqu<avxmodesuffix>): Likewise.
2630         (sse2_movntv2di): Change attr "type" to "ssemov".
2631         (sse2_movntsi): Likewise.
2632         (rsqrtv8sf2): Change attr "type" to "sseadd".
2633         (sse3_addsubv2df3): Set attr "atom_unit".
2634         (sse3_h<plusminus_insn>v4sf3): Likewise.
2635         (*sse2_pmaddwd): Likewise.
2636         (*vec_extractv2di_1_rex64): Likewise.
2637         (*vec_extractv2di_1_avx): Likewise.
2638         (sse2_psadbw): Likewise.
2639         (ssse3_phaddwv8hi3): Likewise.
2640         (ssse3_phaddwv4hi3): Likewise.
2641         (ssse3_phadddv4si3): Likewise.
2642         (ssse3_phadddv2si3): Likewise.
2643         (ssse3_phaddswv8hi3): Likewise.
2644         (ssse3_phaddswv4hi3): Likewise.
2645         (ssse3_phsubwv8hi3): Likewise.
2646         (ssse3_phsubwv4hi3): Likewise.
2647         (ssse3_phsubdv4si3): Likewise.
2648         (ssse3_phsubdv2si3): Likewise.
2649         (ssse3_phsubswv8hi3): Likewise.
2650         (ssse3_phsubswv4hi3): Likewise.
2651         (ssse3_pmaddubsw128): Likewise.
2652         (sse3_pmaddubsw: Likewise.
2653         (ssse3_palignrti): Likewise.
2654         (ssse3_palignrdi): Likewise.
2655
2656 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
2657
2658         * doc/install.texi (Specific): Fix two cross-references to MinGW.
2659
2660 2009-04-06  Richard Guenther  <rguenther@suse.de>
2661
2662         PR tree-optimization/28868
2663         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
2664         of which PHI results we inserted.
2665         (insert_into_preds_of_block): Record inserted PHIs.
2666         (eliminate): Eliminate redundant PHI nodes.
2667         (init_pre): Init inserted_phi_names.
2668
2669 2009-04-06  Richard Guenther  <rguenther@suse.de>
2670
2671         PR tree-optimization/39643
2672         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
2673         IMAGPART_EXPRs of complex constants.
2674         (execute_fold_all_builtins): If we folded a call queue
2675         TODO_update_address_taken.
2676
2677 2009-04-06  Jan Hubicka  <jh@suse.cz>
2678
2679         PR middle-end/39659
2680         * except.c (remove_unreachable_regions): Propagate may_contain_throw
2681         flag.
2682
2683 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
2684
2685         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
2686         delay slot.
2687         (ic_invalidate_array): Likewise.
2688
2689 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
2690
2691         * calls.c (emit_library_call_value_1): Fix a problem with parameter
2692         alignment for library calls.
2693
2694 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
2695
2696         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
2697         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
2698         * config/i386/mingw-stdint.h:  New file.
2699
2700 2009-04-05  Richard Guenther  <rguenther@suse.de>
2701
2702         PR tree-optimization/39648
2703         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
2704         our &A vs. &A[0] IL deficiencies.
2705
2706 2009-04-04  Jan Hubicka  <jh@suse.cz>
2707
2708         * except.c (sjlj_find_directly_reachable_regions): Be ready for
2709         removed toplevel regions.
2710         (sjlj_mark_call_sites): Likewise.
2711
2712 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2713
2714         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
2715         (cygwin tm clause use_gcc_stdint):  Set to wrap.
2716         * config/i386/cygwin-stdint.h:  New file.
2717
2718 2009-04-04  Richard Guenther  <rguenther@suse.de>
2719
2720         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2721         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
2722         single-argument PHIs if we are in loop-closed SSA form.
2723         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
2724         for the pre-condition.
2725         (slpeel_tree_peel_loop_to_edge): Likewise.
2726         (vect_build_loop_niters): Take an optional sequence to append stmts.
2727         (vect_generate_tmps_on_preheader): Likewise.
2728         (vect_do_peeling_for_loop_bound): Take extra guards for the
2729         pre-condition.
2730         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
2731         the cost model check.
2732         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
2733         guards if we are going to peel.  Do not apply versioning in that case.
2734         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
2735         (vect_do_peeling_for_loop_bound): Likewise.
2736         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
2737         loop bound only record extra pre-conditions, do not apply loop
2738         versioning.
2739
2740 2009-04-04  Richard Guenther  <rguenther@suse.de>
2741
2742         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
2743         renaming code.
2744
2745 2009-04-04  Jan Hubicka  <jh@suse.cz>
2746
2747         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
2748         last_basic_block for size of bb->index indexed array.
2749         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
2750         compute_out, link_btr_uses, build_btr_def_use_webs,
2751         build_btr_def_use_webs, migrate_btr_defs): Likewise.
2752
2753 2009-04-04  Jan Hubicka  <jh@suse.cz>
2754
2755         * except.c (remove_eh_handler_and_replace): Break out from ...
2756         (remove_eh_handler): ... here.
2757         (bring_to_root): New function.
2758         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
2759         handled ones, bring others to root of tree.
2760
2761 2009-04-04  Jan Hubicka  <jh@suse.cz>
2762
2763         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
2764         (all_phis_safe_to_merge): New function.
2765         (update_info): New structure.
2766         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
2767         (cleanup_empty_eh): Update SSA if possible.
2768
2769 2009-04-04  Richard Guenther  <rguenther@suse.de>
2770
2771         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2772         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
2773         (append_vuse): Likewise.
2774
2775 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
2776
2777         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
2778         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
2779         instead of REG_UNSAVED for DW_CFA_undefined.
2780         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
2781         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
2782         outermost frame.
2783
2784 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
2785
2786         PR target/39501
2787         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
2788         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
2789         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
2790
2791 2009-04-04  Richard Guenther  <rguenther@suse.de>
2792
2793         PR tree-optimization/8781
2794         PR tree-optimization/37892
2795         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
2796         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
2797         (valueize_refs): Call it for *& valueizations.
2798         (shared_reference_ops_from_ref): Rename to ...
2799         (valueize_shared_reference_ops_from_ref): ... this and valueize.
2800         (shared_reference_ops_from_call): Rename to ...
2801         (valueize_shared_reference_ops_from_call): ... this and valueize.
2802         (vn_reference_lookup): Update.
2803         (visit_reference_op_call): Likewise.
2804         * tree-ssa-pre.c (phi_translate_1): Fold *&.
2805         (eliminate): Value-replace the call address in call statements.
2806
2807 2009-04-04  Richard Guenther  <rguenther@suse.de>
2808
2809         PR tree-optimization/39636
2810         * tree-ssa-forwprop.c
2811         (forward_propagate_addr_into_variable_array_index): Check for
2812         GIMPLE_ASSIGN before accessing the rhs code.
2813
2814 2009-04-03  Jason Merrill  <jason@redhat.com>
2815
2816         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
2817
2818 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
2819
2820         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
2821         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
2822         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
2823         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
2824         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
2825         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
2826         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
2827         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
2828         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
2829         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
2830         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
2831         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
2832         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
2833         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
2834         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
2835         Use fr_reg_or_fp01_operand instead of fr_register_operand
2836
2837         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
2838         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
2839         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
2840
2841 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
2842
2843         PR rtl-optimization/39607
2844         PR rtl-optimization/39631
2845
2846         Revert:
2847
2848         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2849         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2850         instead of DF_LR_OUT.
2851         * ira-lives.c (process_bb_node_lives): Ditto.
2852         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2853         instead of DF_LR_{OUT,IN}.
2854         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2855         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2856
2857 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
2858
2859         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
2860         (execute_lower_omp): Always run but take the short way out if -fopenmp
2861         is not given.
2862         (gate_lower_omp): Remove, forcing the pass manager to always run the
2863         pass and always set PROP_gimple_lomp.
2864         (pass_lower_omp): Remove gate function.
2865         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
2866         PROP_trees.  Instead, require it.
2867         * ipa-cp.c (pass_ipa_cp): Likewise.
2868         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
2869         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
2870         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
2871         and PROP_gimple_leh.
2872
2873 2009-04-03  Richard Guenther  <rguenther@suse.de>
2874
2875         PR middle-end/13146
2876         PR tree-optimization/23940
2877         PR tree-optimization/33237
2878         PR middle-end/33974
2879         PR middle-end/34093
2880         PR tree-optimization/36201
2881         PR tree-optimization/36230
2882         PR tree-optimization/38049
2883         PR tree-optimization/38207
2884         PR tree-optimization/38230
2885         PR tree-optimization/38301
2886         PR tree-optimization/38585
2887         PR middle-end/38895
2888         PR tree-optimization/38985
2889         PR tree-optimization/39299
2890         * tree-ssa-structalias.h: Remove.
2891         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
2892         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
2893         (struct vuse_element_d): Remove.
2894         (struct vuse_vec_d): Likewise.
2895         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
2896         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
2897         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
2898         VUSE_ELEMENT_VAR): Likewise.
2899         (struct voptype_d): Likewise.
2900         (NUM_VOP_FREE_BUCKETS): Likewise.
2901         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
2902         (struct stmt_operands_d): Remove.
2903         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
2904         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
2905         VDEF_NUM, VDEF_VECT): Likewise.
2906         (copy_virtual_operands): Remove.
2907         (operand_build_cmp): Likewise.
2908         (create_ssa_artificial_load_stmt): Likewise.
2909         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
2910         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
2911         vuse_index and mayuse_index members.  Pack and move done and iter_type
2912         members to the front.
2913         (SSA_OP_VMAYUSE): Remove.
2914         (SSA_OP_VIRTUAL_USES): Adjust.
2915         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
2916         (unlink_stmt_vdef): Declare.
2917         (add_to_addressable_set): Remove.
2918         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
2919         (vrp_visit_stmt): Likewise.
2920         * doc/tree-ssa.texi (Alias analysis): Update.
2921         * doc/invoke.texi (max-aliased-vops): Remove docs.
2922         (avg-aliased-vops): Likewise.
2923         * tree-into-ssa.c (syms_to_rename): Remove.
2924         (need_to_update_vops_p): Likewise.
2925         (need_to_initialize_update_ssa_p): Rename to ...
2926         (update_ssa_initialized_fn): ... this.  Track function we are
2927         initialized for.
2928         (symbol_marked_for_renaming): Simplify.
2929         (add_new_name_mapping): Do not set need_to_update_vops_p.
2930         (dump_currdefs): Use SYMS_TO_RENAME.
2931         (rewrite_update_stmt): Always walk all uses/defs.
2932         (dump_update_ssa): Adjust.
2933         (init_update_ssa): Take function argument.  Track what we are
2934         initialized for.
2935         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
2936         (create_new_def_for): Initialize for cfun, assert we are initialized
2937         for cfun.
2938         (mark_sym_for_renaming): Simplify.
2939         (mark_set_for_renaming): Do not initialize update-ssa.
2940         (need_ssa_update_p): Simplify.  Take function argument.
2941         (name_mappings_registered_p): Assert we ask for the correct function.
2942         (name_registered_for_update_p): Likewise.
2943         (ssa_names_to_replace): Likewise.
2944         (release_ssa_name_after_update_ssa): Likewise.
2945         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
2946         (dump_decl_set): Do not print a newline.
2947         (debug_decl_set): Do it here.
2948         (dump_update_ssa): And here.
2949         * tree-ssa-loop-im.c (move_computations): Adjust.
2950         (movement_possibility): Likewise.
2951         (determine_max_movement): Likewise.
2952         (gather_mem_refs_stmt): Likewise.
2953         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
2954         or NAME_MEMORY_TAG.
2955         * tree-complex.c (update_all_vops): Remove.
2956         (expand_complex_move): Adjust.
2957         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
2958         Simplify test for memory referencing statement.  Exclude
2959         non-invariant ADDR_EXPRs.
2960         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
2961         * tree-loop-distribution.c (generate_memset_zero): Adjust.
2962         (rdg_flag_uses): Likewise.
2963         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
2964         related code.
2965         (tree_optimize_tail_calls_1): Also split the
2966         edge from the entry block if we have degenerate PHI nodes in
2967         the first basic block.
2968         * tree.c (init_ttree): Remove memory-tag related code.
2969         (tree_code_size): Likewise.
2970         (tree_node_structure): Likewise.
2971         (build7_stat): Re-write to be build6_stat.
2972         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
2973         (SSA_VAR_P): Adjust.
2974         (struct tree_memory_tag): Remove.
2975         (struct tree_memory_partition_tag): Likewise.
2976         (union tree_node): Adjust.
2977         (build7): Re-write to be build6.
2978         * tree-pass.h (pass_reset_cc_flags): Remove.
2979         (TODO_update_address_taken): New flag.
2980         (pass_simple_dse): Remove.
2981         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
2982         * params.h (MAX_ALIASED_VOPS): Remove.
2983         (AVG_ALIASED_VOPS): Likewise.
2984         * omp-low.c (expand_omp_taskreg): Update SSA form.
2985         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
2986         aliases the lhs in a copy stmt.
2987         * tree-ssa-dse.c (struct address_walk_data): Remove.
2988         (memory_ssa_name_same): Likewise.
2989         (memory_address_same): Likewise.
2990         (get_kill_of_stmt_lhs): Likewise.
2991         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
2992         unused stores.  Look through PHI nodes into post-dominated regions.
2993         (dse_optimize_stmt): Simplify.  Properly remove stores.
2994         (tree_ssa_dse): Compute dominators.
2995         (execute_simple_dse): Remove.
2996         (pass_simple_dse): Likewise.
2997         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
2998         gimple_loaded_syms and gimple_stored_syms computation.
2999         * toplev.c (dump_memory_report): Dump alias and pta stats.
3000         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
3001         (vn_reference_eq): Likewise.
3002         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
3003         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
3004         valueize_vuses): Remove.
3005         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
3006         (get_def_ref_stmt_vuse): ... this.
3007         (vn_reference_lookup_2): New function.
3008         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
3009         walking equivalent vuses.  Simplify.
3010         (vn_reference_lookup): Likewise.
3011         (vn_reference_insert): Likewise.
3012         (vn_reference_insert_pieces): Likewise.
3013         (visit_reference_op_call): Simplify.
3014         (visit_reference_op_load): Likewise.
3015         (visit_reference_op_store): Likewise.
3016         (init_scc_vn): Remove shared_lookup_vuses initialization.
3017         (free_scc_vn): Remove shared_lookup_vuses freeing.
3018         (sort_vuses, sort_vuses_heap): Remove.
3019         (get_ref_from_reference_ops): Export.
3020         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
3021         vector with single vuse pointer.
3022         (vn_reference_lookup_pieces, vn_reference_lookup,
3023         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
3024         (shared_vuses_from_stmt): Remove.
3025         (get_ref_from_reference_ops): Declare.
3026         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
3027         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3028         memory-tag related code.
3029         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
3030         (likely_value): Add comment, skip static-chain of call statements.
3031         (surely_varying_stmt_p): Adjust.
3032         (gimplify_and_update_call_from_tree): Likewise.
3033         (execute_fold_all_builtins): Do not rebuild alias info.
3034         (gimplify_and_update_call_from_tree): Properly update VOPs.
3035         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
3036         (copy_ref_info): Remove memory-tag related code.
3037         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
3038         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
3039         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
3040         computation.
3041         * tree-ssa-dom.c (gimple_p): Remove typedef.
3042         (eliminate_redundant_computations): Adjust.
3043         (record_equivalences_from_stmt): Likewise.
3044         (avail_expr_hash): Likewise.
3045         (avail_expr_eq): Likewise.
3046         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
3047         (stmt_makes_single_load): Likewise.
3048         (stmt_makes_single_store): Likewise.
3049         * tree-ssa-alias.c: Rewrite completely.
3050         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
3051         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
3052         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
3053         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
3054         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
3055         Remove public functions.
3056         (pass_reset_cc_flags): Remove.
3057         (pass_build_alias): Move ...
3058         * tree-ssa-structalias.c (pass_build_alias): ... here.
3059         * tree-ssa-alias.c (may_be_aliased): Move ...
3060         * tree-flow-inline.h (may_be_aliased): ... here.
3061         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
3062         count_uses_and_derefs): Move ...
3063         * gimple.c: ... here.
3064         * gimple.h (count_uses_and_derefs): Declare.
3065         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
3066         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
3067         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
3068         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
3069         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
3070         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
3071         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
3072         New functions.
3073         * tree-dfa.c (refs_may_alias_p): Move ...
3074         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
3075         * tree-ssa-alias.h: New file.
3076         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
3077         (statement_sink_location): Likewise.
3078         * opts.c (decode_options): Do not adjust max-aliased-vops or
3079         avg-aliased-vops values.
3080         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
3081         (TV_CALL_CLOBBER): Likewise.
3082         (TV_FLOW_SENSITIVE): Likewise.
3083         (TV_FLOW_INSENSITIVE): Likewise.
3084         (TV_MEMORY_PARTITIONING): Likewise.
3085         (TV_ALIAS_STMT_WALK): New timevar.
3086         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
3087         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
3088         (get_address_description): Remove memory-tag related code.
3089         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
3090         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
3091         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
3092         and immediate uses in statements.  Document.
3093         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
3094         (dump_symbols): Remove.
3095         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
3096         * alias.c (get_deref_alias_set): New function split out from ...
3097         (get_alias_set): ... here.
3098         * alias.h (get_deref_alias_set): Declare.
3099         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
3100         type parameter.  Remove restrict pointer handling.  Create a
3101         ref-all pointer in case type-based alias sets do not conflict.
3102         (vect_analyze_data_refs): Remove SMT related code.
3103         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
3104         (vectorizable_load): Likewise.
3105         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
3106         (DR_SYMBOL_TAG, DR_VOPS): Remove.
3107         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
3108         Ignore vops and SMTs.
3109         (dr_analyze_alias): Likewise..
3110         (free_data_ref): Likewise.
3111         (create_data_ref): Likewise.
3112         (analyze_all_data_dependences): Likewise.
3113         (get_references_in_stmt): Adjust.
3114         * tree-flow-inline.h (gimple_aliases_computed_p,
3115         gimple_addressable_vars, gimple_call_clobbered_vars,
3116         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
3117         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
3118         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
3119         gimple_mem_ref_stats): Remove.
3120         (gimple_vop): New function.
3121         (op_iter_next_use): Remove vuses and mayuses cases.
3122         (op_iter_next_def): Remove vdefs case.
3123         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
3124         (clear_and_done_ssa_iter): Do not set removed fields.
3125         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
3126         Assert we are not iterating over vuses or vdefs if not also
3127         iterating over uses or defs.
3128         (op_iter_init_use): Likewise.
3129         (op_iter_init_def): Likewise.
3130         (op_iter_next_vdef): Remove.
3131         (op_iter_next_mustdef): Likewise.
3132         (op_iter_init_vdef): Likewise.
3133         (compare_ssa_operands_equal): Likewise.
3134         (link_use_stmts_after): Handle vuse operand.
3135         (is_call_used): Use is_call_clobbered.
3136         (is_call_clobbered): Global variables are always call clobbered,
3137         query the call-clobbers bitmap.
3138         (mark_call_clobbered): Ignore global variables.
3139         (clear_call_clobbered): Likewise.
3140         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
3141         virtual operands sanity check.
3142         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
3143         Remove.
3144         (TARGET_MEM_REF): Remove TMR_TAG operand.
3145         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
3146         Remove call-clobber related code.
3147         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
3148         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
3149         partitions or escape reason.
3150         (get_single_def_stmt, get_single_def_stmt_from_phi,
3151         get_single_def_stmt_with_phi): Remove.
3152         (dump_referenced_vars): Tidy.
3153         (get_ref_base_and_extent): Allow bare decls.
3154         (collect_dfa_stats): Adjust.
3155         * graphite.c (rename_variables_in_stmt): Adjust.
3156         (graphite_copy_stmts_from_block): Likewise.
3157         (translate_clast): Likewise.
3158         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
3159         (EXPR_DIES): New.
3160         (translate_vuse_through_block): Use the oracle.
3161         (phi_translate_1): Adjust.
3162         (value_dies_in_block_x): Use the oracle.  Cache the outcome
3163         in EXPR_DIES.
3164         (valid_in_sets): Check if the VUSE for
3165         a REFERENCE is available.
3166         (eliminate): Do not remove stmts during elimination,
3167         instead queue and remove them afterwards.
3168         (do_pre): Do not rebuild alias info.
3169         (pass_pre): Run TODO_rebuild_alias before PRE.
3170         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
3171         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
3172         (mark_all_v_defs_stmt): Remove.
3173         (mark_all_v_defs_seq): Adjust.
3174         (sra_replace): Likewise.
3175         (scalarize_use): Likewise.
3176         (scalarize_copy): Likewise.
3177         (scalarize_init): Likewise.
3178         (scalarize_ldst): Likewise.
3179         (todoflags): Remove.
3180         (tree_sra): Do not rebuild alias info.
3181         (tree_sra_early): Adjust.
3182         (pass_sra): Run TODO_update_address_taken before SRA.
3183         * tree-predcom.c (set_alias_info): Remove.
3184         (prepare_initializers_chain): Do not call it.
3185         (mark_virtual_ops_for_renaming): Adjust.
3186         (mark_virtual_ops_for_renaming_list): Remove.
3187         (initialize_root_vars): Adjust.
3188         (initialize_root_vars_lm): Likewise.
3189         (prepare_initializers_chain): Likewise.
3190         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
3191         (may_propagate_copy_into_stmt): Likewise.
3192         (merge_alias_info): Do nothing for now.
3193         (propagate_tree_value_into_stmt): Adjust.
3194         (stmt_may_generate_copy): Likewise.
3195         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
3196         not mark symbols for renaming.
3197         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
3198         with the same statement, make sure to update the new pointed-to one.
3199         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
3200         call statements, do not mark symbols for renaming.
3201         (mark_operand_necessary): Dump something.
3202         (ref_may_be_aliased): New function.
3203         (mark_aliased_reaching_defs_necessary_1): New helper function.
3204         (mark_aliased_reaching_defs_necessary): Likewise.
3205         (mark_all_reaching_defs_necessary_1): Likewise.
3206         (mark_all_reaching_defs_necessary): Likewise.
3207         (propagate_necessity): Do not process virtual PHIs.  For
3208         non-aliased loads mark all reaching definitions as necessary.
3209         For aliased loads and stores mark the immediate dominating
3210         aliased clobbers as necessary.
3211         (visited): New global static.
3212         (perform_tree_ssa_dce): Free visited bitmap after propagating
3213         necessity.
3214         (remove_dead_phis): Perform simple dead virtual PHI removal.
3215         (remove_dead_stmt): Properly unlink virtual operands when
3216         removing stores.
3217         (eliminate_unnecessary_stmts): Schedule PHI removal after
3218         stmt removal.
3219         * tree-ssa-ter.c (is_replaceable_p): Adjust.
3220         (process_replaceable): Likewise.
3221         (find_replaceable_in_bb): Likewise.
3222         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
3223         based on the single gimple vop.
3224         (verify_flow_insensitive_alias_info): Remove.
3225         (verify_flow_sensitive_alias_info): Likewise.
3226         (verify_call_clobbering): Likewise.
3227         (verify_memory_partitions): Likewise.
3228         (verify_alias_info): Likewise.
3229         (verify_ssa): Adjust..
3230         (execute_update_addresses_taken): Export.  Update SSA
3231         manually.  Optimize only when optimizing.  Use a local bitmap.
3232         (pass_update_address_taken): Remove TODO_update_ssa, add
3233         TODO_dump_func.
3234         (pass_update_address_taken): Just use TODO_update_address_taken.
3235         (init_tree_ssa): Do not initialize addressable_vars.
3236         (verify_ssa): Verify new VUSE / VDEF properties.
3237         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
3238         Do not call verify_alias_info.
3239         (delete_tree_ssa): Clear the VUSE, VDEF operands.
3240         Do not free the loaded and stored syms bitmaps.  Reset the escaped
3241         and callused solutions.  Do not free addressable_vars.
3242         Remove memory-tag related code.
3243         (warn_uninitialized_var): Aliases are always available.
3244         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
3245         * lambda-code.c (can_put_in_inner_loop): Adjust.
3246         (can_put_after_inner_loop): Likewise.
3247         (perfect_nestify): Likewise.
3248         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
3249         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
3250         (vectorizable_conversion): Do not mark symbols for renaming.
3251         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
3252         (expand_call_inline): Unlink the calls virtual operands before
3253         replacing it.
3254         (tree_function_versioning): Do not call update_ssa if we are not
3255         updating clones.  Simplify.
3256         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
3257         (propagate_with_phi): Likewise..
3258         * tree-outof-ssa.c (create_temp): Remove memory tag and call
3259         clobber code.  Assert we are not aliased or global.
3260         * tree-flow.h: Include tree-ssa-alias.h
3261         (enum escape_type): Remove.
3262         (struct mem_sym_stats_d): Likewise.
3263         (struct mem_ref_stats_d): Likewise.
3264         (struct gimple_df): Add vop member.  Remove global_var,
3265         call_clobbered_vars, call_used_vars, addressable_vars,
3266         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
3267         escaped and callused members.
3268         (struct ptr_info_def): Remove all members, add points-to solution
3269         member pt.
3270         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
3271         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
3272         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
3273         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
3274         (tree-ssa-alias.o): Likewise.
3275         (toplev.o): Add tree-ssa-alias.h
3276         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
3277         * gimple.c (gimple_set_bb): Fix off-by-one error.
3278         (is_gimple_reg): Do not handle memory tags.
3279         (gimple_copy): Also copy virtual operands.
3280         Delay updating the statement.  Do not reset loaded and stored syms.
3281         (gimple_set_stored_syms): Remove.
3282         (gimple_set_loaded_syms): Likewise.
3283         (gimple_call_copy_skip_args): Copy the virtual operands
3284         and mark the new statement modified.
3285         * tree-ssa-structalias.c (may_alias_p): Remove.
3286         (set_uids_in_ptset): Take the alias set to prune with as
3287         parameter.  Fold in the alias test of may_alias_p.
3288         (compute_points_to_sets): Compute whether a ptr is dereferenced
3289         in a local sbitmap.
3290         (process_constraint): Deal with &ANYTHING on the lhs, reject all
3291         other ADDRESSOF constraints on the lhs.
3292         (get_constraint_for_component_ref): Assert that we don't get
3293         ADDRESSOF constraints from the base of the reference.
3294         Properly generate UNKNOWN_OFFSET for DEREF if needed.
3295         (struct variable_info): Remove collapsed_to member.
3296         (get_varinfo_fc): Remove.
3297         (new_var_info): Do not set collapsed_to.
3298         (dump_constraint): Do not follow cycles.
3299         (dump_constraint_graph): Likewise.
3300         (build_pred_graph): Likewise.
3301         (build_succ_graph): Likewise.
3302         (rewrite_constraints): Likewise.
3303         (do_simple_structure_copy): Remove.
3304         (do_rhs_deref_structure_copy): Remove.
3305         (do_lhs_deref_structure_copy): Remove.
3306         (collapse_rest_of_var): Remove.
3307         (do_structure_copy): Re-implement.
3308         (pta_stats): New global variable.
3309         (dump_pta_stats): New function.
3310         (struct constraint_expr): Make offset signed.
3311         (UNKNOWN_OFFSET): Define special value.
3312         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
3313         (solution_set_expand): New helper function split out from ...
3314         (do_sd_constraint): ... here.
3315         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
3316         (do_ds_constraint): Likewise.
3317         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
3318         and CALLUSED = *CALLUSED.
3319         (set_union_with_increment): Make inc argument signed.
3320         (type_safe): Remove.
3321         (get_constraint_for_ptr_offset): Handle unknown and negative
3322         constant offsets.
3323         (first_vi_for_offset): Handle offsets before start.  Bail
3324         out early for offsets beyond the variable extent.
3325         (first_or_preceding_vi_for_offset): New function.
3326         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
3327         Together with ESCAPED = *ESCAPED this properly computes reachability.
3328         (find_what_var_points_to): New function.
3329         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
3330         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
3331         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
3332         pt_solutions_intersect): New functions.
3333         (compute_call_used_vars): Remove.
3334         (compute_may_aliases): New main entry into PTA computation.
3335         * gimple.h (gimple_p): New typedef.
3336         (struct gimple_statement_base): Remove references_memory_p.
3337         (struct gimple_statement_with_memory_ops_base): Remove
3338         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
3339         members.
3340         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
3341         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
3342         gimple_set_references_memory): Remove.
3343         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
3344         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
3345         New functions.
3346         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
3347         (verify_expr): Allow RESULT_DECL.
3348         (gimple_duplicate_bb): Do not copy virtual operands.
3349         (gimple_duplicate_sese_region): Adjust.
3350         (gimple_duplicate_sese_tail): Likewise.
3351         (mark_virtual_ops_in_region): Remove.
3352         (move_sese_region_to_fn): Do not call it.
3353         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
3354         and pass_simple_dse.
3355         (execute_function_todo): Handle TODO_update_address_taken,
3356         call execute_update_addresses_taken for TODO_rebuild_alias.
3357         (execute_todo): Adjust.
3358         (execute_one_pass): Init dump files early.
3359         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
3360         call-clobbered.
3361         (create_general_new_stmt): Clear vops.
3362         * tree-ssa-reassoc.c (get_rank): Adjust.
3363         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
3364         symbols for renaming.
3365         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
3366         (PARAM_AVG_ALIASED_VOPS): Likewise.
3367         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
3368         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
3369         * tree-ssa-operands.c: Simplify for new virtual operand representation.
3370         (operand_build_cmp, copy_virtual_operands,
3371         create_ssa_artificial_load_stmt, add_to_addressable_set,
3372         gimple_add_to_addresses_taken): Remove public functions.
3373         (unlink_stmt_vdef): New function.
3374
3375 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3376
3377         * config.gcc (powerpc-*-linux*): Merge variants.
3378
3379 2009-04-02  Chao-ying Fu  <fu@mips.com>
3380             James Grosbach <james.grosbach@microchip.com>