OSDN Git Service

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