OSDN Git Service

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