OSDN Git Service

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