OSDN Git Service

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