OSDN Git Service

2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/sse.md (avxmodesuffixs): Removed.
4         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5         (*avx_pinsr<ssevecsize>): This.
6
7 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8
9         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
10         follow chains of regs with a single definition, and allow expressions
11         that are function_invariant_p.
12         (simple_rhs_p): Allow expressions that are function_invariant_p.
13
14 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
15
16         PR middle-end/39867
17         * fold-const.c (fold_cond_expr_with_comparison): When folding
18         > and >= to MAX, make sure the MAX uses the same type as the
19         comparison's operands.
20
21 2009-04-24  Nick Clifton  <nickc@redhat.com>
22
23         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
24         addressing for DImode accesses.
25         (frv_print_operand_address): Handle PLUS case.
26         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as
27         fixed.
28
29 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
30
31         PR rtl-optimization/39794
32         * alias.c (canon_true_dependence): Add x_addr argument.
33         * rtl.h (canon_true_dependence): Adjust prototype.
34         * cse.c (check_dependence): Adjust canon_true_dependence callers.
35         * cselib.c (cselib_invalidate_mem): Likewise.
36         * gcse.c (compute_transp): Likewise.
37         * dse.c (scan_reads_nospill): Likewise.
38         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
39         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
40         canon_base_addr of the group, plus optional offset.
41         (struct group_info): Rename canon_base_mem to
42         canon_base_addr.
43         (get_group_info): Set canon_base_addr to canon_rtx of base, not
44         canon_rtx of base_mem.
45
46 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
47
48         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
49         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
50
51 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
52
53         * config/spu/spu-builtins.h: Delete file.
54
55         * config/spu/spu.h (enum spu_builtin_type): Move here from
56         spu-builtins.h.
57         (struct spu_builtin_description): Likewise.  Add GTY marker.
58         Do not use enum spu_function_code or enum insn_code.
59         (spu_builtins): Add extern declaration.
60
61         * config/spu/spu.c: Do not include "spu-builtins.h".
62         (enum spu_function_code, enum spu_builtin_type_index,
63         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
64         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
65         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
66         unsigned_V2DI_type_node): Move here from spu-builtins.h.
67         (spu_builtin_types): Make static.  Add GTY marker.
68         (spu_builtins): Add extern declaration with GTY marker.
69         Include "gt-spu.h".
70
71         * config/spu/spu-c.c: Do not include "spu-builtins.h".
72         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
73         Check programmatically whether all parameters are scalar.
74
75         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
76
77 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
78
79         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
80         assignment from the constructor either if the target is volatile.
81
82 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
83
84         * config/arm/arm.md (insv): Do not share operands[0].
85
86 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
87
88         * config/vxlib-tls.c (active_tls_threads): Delete.
89         (delete_hook_installed): New.
90         (tls_delete_hook): Don't delete the delete hook.
91         (tls_destructor): Delete it here.
92         (__gthread_set_specific): Adjust installing the delete hook.
93         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
94         __gthread_leave_tsd_dtor_context.
95
96 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
97
98         * c-format.c (gcc_tdiag_char_table): Add support for %E.
99
100 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
101
102         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
103         enum type.
104         (alpha_rtx_costs): Ditto.
105         (emit_unlikely_jump): Use add_reg_note.
106         (emit_frame_store_1): Ditto.
107         (alpha_expand_prologue): Ditto.
108         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
109         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
110
111 2009-04-23  Nick Clifton  <nickc@redhat.com>
112
113         * config/v850/v850.md (epilogue): Remove suppressed code.
114         (return): Rename to return_simple and remove test of frame size.
115         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
116         to gen_return_simple.
117
118 2009-04-22  Jing Yu  <jingyu@google.com>
119
120         PR testsuite/39781
121         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
122
123 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
124
125         PR C/31499
126         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
127         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
128         value is a VECTOR_CST, the element type is the element type of the
129         vector.
130
131 2009-04-22  DJ Delorie  <dj@redhat.com>
132
133         * config/m32c/m32c.h: Update GTY annotations to new syntax.
134
135 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
136
137         * alias.c (find_base_term): Move around LO_SUM case, so that
138         CONST falls through into PLUS/MINUS handling.
139
140         PR c/39855
141         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
142         into 0, use omit_one_operand.
143
144 2009-04-23  Ben Elliston  <bje@au.ibm.com>
145
146         * config/rs6000/linux-unwind.h (get_regs): Remove type
147         puns. Change the type of `pc' to an array of unsigned ints and
148         update all users.  Constify frame24.
149
150 2009-04-22  DJ Delorie  <dj@redhat.com>
151
152         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
153         declarations before code.
154         (current_function_special_page_vector): Likewise.
155         (m32c_expand_insv): Silence a warning.
156
157 2009-04-21  Taras Glek <tglek@mozilla.com>
158
159         * alias.c: Update GTY annotations to new syntax.
160         * basic-block.h: Likewise.
161         * bitmap.h: Likewise.
162         * c-common.h: Likewise.
163         * c-decl.c: Likewise.
164         * c-parser.c: Likewise.
165         * c-pragma.c: Likewise.
166         * c-tree.h: Likewise.
167         * cfgloop.h: Likewise.
168         * cgraph.h: Likewise.
169         * config/alpha/alpha.c: Likewise.
170         * config/arm/arm.h: Likewise.
171         * config/avr/avr.h: Likewise.
172         * config/bfin/bfin.c: Likewise.
173         * config/cris/cris.c: Likewise.
174         * config/darwin.c: Likewise.
175         * config/frv/frv.c: Likewise.
176         * config/i386/i386.c: Likewise.
177         * config/i386/i386.h: Likewise.
178         * config/i386/winnt.c: Likewise.
179         * config/ia64/ia64.h: Likewise.
180         * config/iq2000/iq2000.c: Likewise.
181         * config/mips/mips.c: Likewise.
182         * config/mmix/mmix.h: Likewise.
183         * config/pa/pa.c: Likewise.
184         * config/pa/pa.h: Likewise.
185         * config/rs6000/rs6000.c: Likewise.
186         * config/s390/s390.c: Likewise.
187         * config/sparc/sparc.c: Likewise.
188         * config/xtensa/xtensa.c: Likewise.
189         * cselib.h: Likewise.
190         * dbxout.c: Likewise.
191         * dwarf2out.c: Likewise.
192         * except.c: Likewise.
193         * except.h: Likewise.
194         * fixed-value.h: Likewise.
195         * function.c: Likewise.
196         * function.h: Likewise.
197         * gimple.h: Likewise.
198         * integrate.c: Likewise.
199         * optabs.c: Likewise.
200         * output.h: Likewise.
201         * real.h: Likewise.
202         * rtl.h: Likewise.
203         * stringpool.c: Likewise.
204         * tree-data-ref.c: Likewise.
205         * tree-flow.h: Likewise.
206         * tree-scalar-evolution.c: Likewise.
207         * tree-ssa-address.c: Likewise.
208         * tree-ssa-alias.h: Likewise.
209         * tree-ssa-operands.h: Likewise.
210         * tree.c: Likewise.
211         * tree.h: Likewise.
212         * varasm.c: Likewise.
213         * varray.h: Likewise.
214         * vec.h: Likewise.
215         * coretypes.h: Do not define GTY macro if it is already defined.
216         * doc/gty.texi: Update GTY documentation to new syntax.
217         * gengtype-lex.l: Enforce attribute-like syntax for GTY
218         annotations on structs.
219         * gengtype-parse.c: Likewise.
220
221 2009-04-22  Mark Heffernan  <meheff@google.com>
222
223         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
224
225 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
226
227         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
228         where appropriate.
229
230 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
231
232         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
233         the same as a PLUS without a shift.  Increase the cost of a
234         CONST_INT in MULT.
235
236 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
237
238         * Makefile.in: Update dependencies.
239         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
240         * errors.h: Remove bogus comment about compatibility.
241         (warning): Update declaration.
242         * genautomata.c: Update all calls to warning.
243         * gimple.c: Do not include errors.h. Include toplev.h.
244         * tree-ssa-structalias.c: Do not include errors.h.
245         * omega.c: Likewise.
246         * tree-ssa-reassoc.c: Likewise.
247         * config/spu/spu-c.c: Likewise.
248         * config/spu/t-spu-elf: Update dependencies.
249
250 2009-04-22  Richard Guenther  <rguenther@suse.de>
251
252         PR tree-optimization/39824
253         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
254         make sure the types are compatible.
255
256 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
257
258         PR c++/14875
259         * c-common.c (c_parse_error): Take a token_flags parameter.
260         Use token_type for the token type instead.
261         Pass token_flags to cpp_type2name.
262         * c-common.h (c_parse_error): Update declaration.
263         * c-parser.c (c_parser_error): Pass 0 as token flags.
264
265 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
266
267         PR rtl-optimization/39580
268         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
269         
270 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
271
272         * function.c (expand_function_end): Do not emit a jump to the "naked"
273         return label for fall-through returns.
274         * except.c (sjlj_emit_function_exit): Always place the call to the
275         unregister function at the location installed by expand_function_end.
276
277 2009-04-22  Richard Guenther  <rguenther@suse.de>
278
279         PR tree-optimization/39845
280         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
281         (gen_inbound_check): Likewise.
282
283 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
284
285         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
286         padding for PPC.
287         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
288         * config/vxlib.c (__gthread_once): Add race guard for PPC.
289
290 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
291
292         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
293         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
294         shift counts to avoid out-of-bounds array accesses.
295
296 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
297
298         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
299         (Pmode): Move above.
300
301 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
302
303         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
304         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
305         GET_CODE macro.  Use IN_RANGE macro where appropriate.
306         * config/alpha/alpha.h: Ditto.
307         * config/alpha/alpha.md: Ditto.
308         * config/alpha/constraints.md: Ditto.
309         * config/alpha/predicates.md: Ditto.
310         
311 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
312
313         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
314         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
315         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
316         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
317         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
318         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
319         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
320         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
321         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
322         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
323         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
324         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
325         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
326         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
327         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
328         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
329         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
330         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
331         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
332         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
333         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
334         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
335         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
336         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
337         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
338         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
339         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
340
341 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
342
343         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
344         references from comments.
345         * cfgbuild.c: (count_basic_blocks): Delete.
346         (find_basic_blocks_1): Delete.
347         (find_basic_blocks): Delete.
348         * except.c (finish_eh_generation): Make static.  Move comment from
349         except.h here.  Remove find_basic_blocks references from comments.
350         * except.h (finish_eh_generation): Delete.
351         * basic-block.h (find_basic_blocks): Delete.
352         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
353
354 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
355
356         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
357         (sdbout_parms):  Likewise.
358
359 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
360
361         * config/sh/sh.c (prepare_cbranch_operands): Use
362         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
363         (expand_cbranchdi4): Likewise.
364         (from_compare): Add cast to enum type.
365         (expand_cbranchsi4): Use add_reg_note.
366         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
367         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
368         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
369         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
370         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
371         instead of CODE_FOR_nothing.
372         (cbranchdi4): Likewise.  Fix the order of arguments for
373         gen_rtx_fmt_ee.
374         (push_fpscr): Use add_reg_note.
375         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
376         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
377         
378 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
379
380         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
381         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
382         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
383         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
384         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
385         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
386         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
387         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
388         config/alpha/x-vms, config/arc/t-arc,
389         config/arm/README-interworking, config/arm/arm-c.c,
390         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
391         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
392         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
393         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
394         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
395         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
396         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
397         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
398         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
399         config/cris/t-elfmulti, config/crx/t-crx,
400         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
401         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
402         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
403         config/h8300/t-h8300, config/i386/athlon.md,
404         config/i386/darwin-libgcc.10.4.ver,
405         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
406         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
407         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
408         config/i386/t-linux64, config/i386/t-nwld,
409         config/i386/t-rtems-i386, config/i386/t-sol2-10,
410         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
411         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
412         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
413         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
414         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
415         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
416         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
417         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
418         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
419         config/m68k/t-uclinux, config/mcore/t-mcore,
420         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
421         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
422         config/mips/crtn.asm, config/mips/irix-crti.asm,
423         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
424         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
425         config/mips/mips-fixed.md, config/mips/sb1.md,
426         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
427         config/mips/t-iris6, config/mips/t-isa3264,
428         config/mips/t-libgcc-mips16, config/mips/t-linux64,
429         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
430         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
431         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
432         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
433         config/mn10300/t-linux, config/mn10300/t-mn10300,
434         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
435         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
436         config/picochip/libgccExtras/clzsi2.asm,
437         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
438         config/rs6000/darwin-libgcc.10.4.ver,
439         config/rs6000/darwin-libgcc.10.5.ver,
440         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
441         config/rs6000/t-aix43, config/rs6000/t-aix52,
442         config/rs6000/t-darwin, config/rs6000/t-fprules,
443         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
444         config/rs6000/t-lynx, config/rs6000/t-netbsd,
445         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
446         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
447         config/rs6000/t-rtems, config/rs6000/t-spe,
448         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
449         config/score/t-score-elf, config/sh/divcost-analysis,
450         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
451         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
452         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
453         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
454         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
455         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
456         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
457         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
458         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
459         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
460         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
461         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
462         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
463         limitx.h, version.c, xcoff.h: Add copyright and license notices.
464         * config/h8300/genmova.sh: Include copyright and license notices
465         in generated output.
466         * config/h8300/mova.md: Regenerate.
467         * doc/install.texi2html: Include word "Copyright" in copyright
468         notice and use name "Free Software Foundation, Inc.".
469         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
470         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
471         ChangeLog-2007, ChangeLog-2008: Correct dates.
472
473 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
474
475         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
476         NE_EXPR operations as well.
477         * c-parser.c (c_parser_condition): Do not set location information on
478         the condition.
479         (c_parser_conditional_expression): Likewise.
480         (c_parser_binary_expression): Set location information on operators.
481         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
482         TRUTH_NOT_EXPR has been folded.
483         * fold-const.c (fold_truth_not_expr): Copy location information from
484         the incoming expression to the outgoing one.
485         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
486         recursive calls on the LHS of the operator but pass that of the
487         operator to recursive calls on the RHS of the operator.  Set it
488         on the COND_EXPR.
489         (shortcut_cond_expr): Set the locus of the operator on the second
490         COND_EXPR and that of the expression on the first in degenerate cases.
491         Pass the locus of the expression to calls to shortcut_cond_r.
492         Set the locus of the 'then' block on the associated jump, if any.
493         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
494         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
495         expression to call to gimplify_boolean_expr.
496
497 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
498
499         * config.gcc: Add additional configuration for
500         i686-w64-mingw* and x86_64-w64-mingw* triplet.
501         * config/i386/mingw-w64.h: New mingw-w64 specific header.
502         (CPP_SPEC): Redefine for allowing -municode option.
503         (STARTFILE_SPEC): Likewise.
504         * config/i386/t-mingw-w64: New.
505         * config/i386/mingw-w64.opt: New.
506         (municode): Add new target option.
507         * doc/invoke.texi (municode): Add documentation for new option.
508
509 2009-04-21  Ian Lance Taylor  <iant@google.com>
510
511         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
512         Correct test for number of arguments.
513         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
514
515 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
516
517         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
518         argument of emit_library_call.
519
520 2009-04-21  Richard Guenther  <rguenther@suse.de>
521
522         PR middle-end/39829
523         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
524         inside VIEW_CONVERT_EXPRs.
525
526 2009-04-21  Martin Jambor  <mjambor@suse.cz>
527
528         * tree-switch-conversion.c (build_constructors): Split a long line.
529         (constructor_contains_same_values_p): New function.
530         (build_one_array): Create assigns of constants if possible, do not
531         call mark_sym_for_renaming, call update_stmt.
532         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
533         make_rename_temp.  Do not call mark_symbols_for_renaming, call
534         update_stmt.
535         (gen_def_assigns): Do not call mark_symbols_for_renaming or
536         find_new_referenced_vars, call update_stmt.
537         (gen_inbound_check): Use create_tmp_var and create ssa names manually
538         instead of calling make_rename_temp.  Do not call
539         find_new_referenced_vars or mark_symbols_for_renaming, call
540         update_stmt.
541
542 2009-04-21  Richard Guenther  <rguenther@suse.de>
543
544         PR tree-optimization/39827
545         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
546         (tree_ssa_phiprop): Pass the correct array size.
547
548 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
549
550         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
551
552 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
553
554         PR 16202
555         * c-typeck.c (lvalue_p): Move declaration ...
556         * c-common.h (lvalue_p): ... to here.
557         * c-common.c (candidate_equal_p): New.
558         (add_tlist): Use it.
559         (merge_tlist): Use it.
560         (warn_for_collisions_1): Likewise.
561         (warning_candidate_p): Accept more candidates.
562         (verify_tree): A warning candidate can be an expression. Use
563         candidate_equal_p.
564
565 2009-04-21  Ben Elliston  <bje@au.ibm.com>
566
567         PR target/5267
568         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
569         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
570         options.  Remove -mcall-solaris documentation.
571
572 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
573
574         PR c++/13358
575         * doc/invoke.texi (-Wlong-long): Update description.
576         * c-lex (interpret_integer): Only warn if there was no previous
577         overflow and -Wlong-long is enabled.
578         * c-decl.c (declspecs_add_type): Drop redundant flags.
579         * c.opt (Wlong-long): Init to -1.
580         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
581         and front-end warn_long_long. Wlong-long only depends on other
582         flags if it is uninitialized.
583         * c-parser.c (disable_extension_diagnostics): warn_long_long is
584         the same for CPP and FE.
585         (restore_extension_diagnostics): Likewise.
586
587 2009-04-20  Ian Lance Taylor  <iant@google.com>
588
589         Fix enum conversions which are invalid in C++:
590         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
591         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
592         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
593         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
594         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
595         (dbxout_parms): Likewise.
596         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
597         (df_clear_flags): Likewise.
598         * df-problems.c (df_rd_bb_local_compute_process_def): Change
599         top_flag parameter to int.
600         (df_chain_create_bb_process_use): Likewise.
601         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
602         Remove cast.
603         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
604         (df_ref_create_structure, df_def_record_1): Likewise.
605         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
606         (df_notes_rescan): Change 0 to VOIDmode in function call.
607         (df_get_call_refs, df_insn_refs_collect): Likewise.
608         (df_bb_regs_collect): Likewise.
609         (df_entry_block_defs_collect): Likewise.
610         (df_exit_block_uses_collect): Likewise.
611         * df.h: Update declarations.
612         * double-int.c (double_int_divmod): Add cast to enum type.
613         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
614         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
615         (based_loc_descr): Likewise.
616         (loc_descriptor_from_tree_1): Change first_op and second_op to
617         enum dwarf_location_atom.  Add cast to enum type.
618         * expmed.c (init_expmed): Change 0 to SET in function call.
619         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
620         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
621         (do_store_flag): Likewise.
622         * fixed-value.h (struct fixed_value): Change mode to enum
623         machine_mode.
624         * function.c (assign_parms): Change 0 to VOIDmode in function call.
625         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
626         function call.
627         (insert_insn_decl, insert_decl, insert_state): Likewise.
628         (automata_list_finish): Likewise.
629         * genrecog.c (process_define_predicate): Add cast to enum type.
630         * gensupport.c (init_predicate_table): Add cast to enum type.
631         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
632         function call.
633         (gimple_build_call_1, gimple_build_label): Likewise.
634         (gimple_build_goto, gimple_build_asm_1): Likewise.
635         (gimple_build_switch_1, gimple_build_cdt): Likewise.
636         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
637         (enum fallback): Rename from enum fallback_t.
638         (fallback_t): Typedef as int.
639         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
640         GSI_SAME_STMT in function call.
641         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
642         enum type.
643         (setup_reg_class_relations): Likewise.
644         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
645         (setup_prohibited_class_mode_regs): Add cast to enum type.
646         (setup_prohibited_mode_move_regs): Likewise.
647         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
648         (record_address_regs): Change i to enum reg_class.
649         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
650         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
651         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
652         (GET_MODE_2XWIDER_MODE): Likewise.
653         (GET_CLASS_NARROWEST_MODE): Likewise.
654         * omp-low.c (expand_omp_for): Add cast to enum type.
655         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
656         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
657         * postreload.c (reload_cse_simplify_operands): Change rclass local
658         to enum reg_class.
659         * predict.c (combine_predictions_for_insn): Change best_predictor
660         and predictor to enum br_predictor.
661         (combine_predictions_for_bb): Likewise.
662         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
663         use SET_PREDICT_EXPR_OUTCOME.
664         * real.c (real_arithmetic): Change icode to code in function call.
665         * reginfo.c (init_move_cost): Add casts to enum type.
666         (init_reg_sets_1, init_fake_stack_mems): Likewise.
667         * regmove.c (regclass_compatible_p): Change class0 and class1 to
668         enum reg_class.
669         * reload.c (find_valid_class): Add casts to enum type.
670         (push_reload): Change 0 to NO_REGS in function call.
671         (find_reloads): Change this_alternative to array of enum
672         reg_class.  Remove some now-unnecessary casts.
673         (make_memloc): Change 0 to VOIDmode in function call.
674         * reload1.c (reload): Change 0 to VOIDmode in function call.
675         (eliminate_regs_1, elimination_effects): Likewise.
676         (eliminate_regs_in_insn): Likewise.
677         (emit_input_reload_insns): Add cast to enum type.
678         (delete_output_reload): Change 0 to VOIDmode in function call.
679         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
680         to enum type in function call.
681         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
682         (SET_PREDICT_EXPR_OUTCOME): Define.
683         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
684         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
685         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
686         (dump_function): Likewise.
687         * tree-dump.h: Update declarations.
688         * tree-pass.h: Update declarations.
689         * varasm.c (assemble_integer): Change mclass to enum mode_class.
690         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
691         enum type.
692         (arm_rtx_costs_1): Correct parenthesization.
693         (arm_rtx_costs): Add casts to enum type.
694         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
695         (vfp_emit_fstmd): Use add_rg_note.
696         (emit_multi_reg_push, emit_sfm): Likewise.
697         (thumb_set_frame_pointer): Likewise.
698         (arm_expand_prologue): Likewise.
699         (arm_regno_class): Change return type to enum reg_class.
700         (thumb1_expand_prologue): Use add_reg_note.
701         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
702         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
703         in function call.
704         * config/arm/gentune.sh: Add cast to enum type.
705         * config/arm/arm-tune.md: Rebuild.
706         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
707         (ix86_split_fp_branch, predict_jump): Likewise.
708         (ix86_expand_multi_arg_builtin): Change sub_code from enum
709         insn_code to enum rtx_code.
710         (ix86_builtin_vectorized_function): Add cast to enum type.
711         * config/i386/i386.md (truncdfsf2): Change slot to enum
712         ix86_stack_slot.
713         (truncxf<mode>2, isinf<mode>2): Likewise.
714         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
715         enum type.
716         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
717         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
718         (insert_bundle_state): Change 1 to INSERT in function call.
719         (ia64_add_bundle_selector_before): Likewise.
720         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
721         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
722         (restore_stack_nonlocal): Likewise.
723         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
724         function call.
725         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
726         function call.
727         (mips_rtx_costs): Likewise.
728         (mips_override_options): Add casts to enum type.
729         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
730         in function call.
731         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
732         (store_reg, set_reg_plus_d): Likewise.
733         (hppa_expand_prologue, hppa_profile_hook): Likewise.
734         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
735         cast to enum type.
736         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
737         function call.
738         (emit_unlikely_jump): Use add_reg_note.
739         (rs6000_emit_allocate_stack): Likewise.
740         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
741         (output_toc): Change 1 to INSERT in function call.
742         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
743         (rs6000_initialize_trampoline): Likewise.
744         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
745         function call.
746         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
747         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
748         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
749         (save_gprs): Use add_reg_note.
750         (s390_emit_prologue): Likewise.
751         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
752         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
753         (sparc_fold_builtin): Add cast to enum type.
754         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
755         enum insn_code.
756         (spu_expand_prologue): Use add_reg_note.
757         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
758
759 2009-04-20  Ian Lance Taylor  <iant@google.com>
760
761         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
762         (c_parser_postfix_expression_after_primary): Get VEC for list of
763         arguments.  Get original types of arguments.  Call
764         build_function_call_vec.
765         (cached_expr_list_1, cached_expr_list_2): New static variables.
766         (c_parser_expr_list): Change return type to VEC *.  Add
767         p_orig_types parameter.  Change all callers.
768         (c_parser_release_expr): New static function.
769         (c_parser_vec_to_tree_list): New static function.
770         * c-typeck.c (build_function_call): Rewrite to build a VEC and
771         call build_function_call_vec.
772         (build_function_call_vec): New function, based on old
773         build_function_call.
774         (convert_arguments): Remove nargs and argarray parameters.  Change
775         values to a VEC.  Add origtypes parameter.
776         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
777         (convert_for_assignment): Add origtype parameter.  Change all
778         callers.  If warn_cxx_compat, check for conversion to an enum
779         type when calling a function.
780         (store_init_value): Add origtype parameter.  Change all callers.
781         (digest_init): Likewise.
782         (struct init_node): Add origtype field.
783         (add_pending_init): Add origtype parameter.  Change all callers.
784         (output_init_element): Likewise.
785         (output_pending_init_elements): Pass origtype from init_node to
786         output_init_element.
787         (process_init_element): Pass origtype from c_expr to
788         output_init_element.
789         (c_finish_return): Add origtype parameter.  Change all callers.
790         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
791         caller.
792         (sync_resolve_params): Likewise.
793         (sync_resolve_return): Change params to first_param.  Change caller.
794         (resolve_overloaded_builtins): Change params to VEC *.  Change
795         callers.  Save first parameter around call to build_function_call_vec.
796         * c-decl.c (finish_decl): Add origtype parameter.  Change all
797         callers.  Call build_function_call_vec rather than
798         build_function_call for cleanup.
799         * c-tree.h: Update declarations.
800         * c-common.h: Update declarations.
801         * stub-objc.c (objc_rewrite_function_call): Change parameter from
802         params to first_param.
803         * target.h (struct gcc_target): Change resolve_overloaded_builtin
804         params parameter from tree to void *.
805         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
806         Change arglist parameter to have type void *, and to be a pointer
807         to a VEC.
808         * config/rs6000/rs6000-protos.h
809         (altivec_resolve_overloaded_builtin): Update declaration.
810         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
811         fnargs parameter to have type void *, and to be a pointer to a
812         VEC.  Call build_function_call_vec instead of
813         build_function_call.
814         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
815
816 2009-04-20  Joey Ye  <joey.ye@intel.com>
817             Xuepeng Guo <xuepeng.guo@intel.com>
818             H.J. Lu  <hongjiu.lu@intel.com>
819
820         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
821
822         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
823         (IX86_LEA_PRIORITY): Likewise.
824         (distance_non_agu_define): New function.
825         (distance_agu_use): Likewise.
826         (ix86_lea_for_add_ok): Likewise.
827         (ix86_dep_by_shift_count): Likewise.
828
829         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
830         should split for LEA.
831
832         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
833         function.
834         (ix86_dep_by_shift_count): Likewise.
835
836 2009-04-20  Richard Guenther  <rguenther@suse.de>
837
838         * expr.c (handled_component_p): Move ...
839         * tree.h (handled_component_p): ... here.
840         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
841         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
842         and REALPART_EXPR to be in one group.
843
844 2009-04-20  Richard Guenther  <rguenther@suse.de>
845
846         * basic-block.h (get_all_dominated_blocks): Declare.
847         * dominance.c (get_all_dominated_blocks): New function.
848         * tree-cfg.c (get_all_dominated_blocks): Remove.
849         (remove_edge_and_dominated_blocks): Adjust.
850         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
851         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
852         instead of recursing.
853
854 2009-04-20  Doug Kwan  <dougkwan@google.com>
855
856         * cgraph.h (cgraph_node_ptr): New type for vector functions.
857         (struct cgraph_node_set_def): New type.
858         (cgraph_node_set) New type. Also declare vector functions.
859         (struct cgraph_node_set_element_def): New type.
860         (cgraph_node_set_element): Ditto.
861         (cgraph_node_set_iterator): New iterator type.
862         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
863         cgraph_node_set_remove, dump_cgraph_node_set,
864         debug_cgraph_node_set): New prototypes.
865         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
866         cgraph_node_set_size): New inlines.
867         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
868         including cgraph.h.
869         (struct ipa_opt_pass): Add struct cgraph_node_set_def
870         argument to function 'write_summary'.
871         * ipa.c: Include ggc.h.
872         (hash_cgraph_node_set_element,
873         eq_cgraph_node_set_element, cgraph_node_set_new,
874         cgraph_node_set_add, cgraph_node_set_remove,
875         cgraph_node_set_find, dump_cgraph_node_set,
876         debug_cgraph_node_set): New functions.
877         * Makefile.in (ipa.o): Add dependency on GGC_H.
878
879 2009-04-20  Ira Rosen  <irar@il.ibm.com>
880
881         PR tree-optimization/39675
882         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
883         check of the return code of vect_schedule_slp. Check that
884         stmt_vec_info still exists for the statement, before checking its
885         vectorization type.
886
887 2009-04-20  Michael Matz  <matz@suse.de>
888
889         * Makefile.in (generated_files): Take out $(simple_generated_c).
890
891 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
892
893         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
894         (UINTPTR_TYPE):  Likewise.
895
896 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
897
898         PR c/37481
899         * c-typeck.c (digest_init): Check for initializing an array with a
900         string literal.
901
902 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
903
904         PR c/19771
905         * c-semantics.c (pop_stmt_list): Propagate
906         STATEMENT_LIST_HAS_LABEL to parent statement list.
907
908 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
909
910         * config/mips/mips.h (mips_tune_attr): New macro.
911         * config/mips/mips.md (cpu): Use it.
912
913 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
914
915         PR c/38243
916         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
917         declaring a tag.
918
919 2009-04-19  Diego Novillo  <dnovillo@google.com>
920
921         * toplev.c (compile_file): Move call to coverage_finish ...
922         * cgraphunit.c (ipa_passes): ... here.
923         Call cgraph_process_new_functions.
924         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
925         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
926
927 2009-04-19  Jan Hubicka  <jh@suse.cz>
928
929         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
930         cfun.
931         (dump_cgraph_node): Dump can throw external flag.
932         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
933
934 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
935
936         PR c/32061
937         PR c++/36954
938         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
939         * common.opt (Wlogical-op): Move from here...
940         * c.opt (Wlogical-op): ... to here.
941         * c-typeck.c (parser_build_binary_op): Update call to
942         warn_logical_operator.
943         * c-opts.c (c_common_post_options): Enable warn_logical_op with
944         extra_warnings.
945         * c-common.c (warn_logical_op): Update.
946         * c-common.h (warn_logical_op): Update declaration.
947
948 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
949
950         * tree.c (protected_set_expr_location): Fix formatting.
951
952 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
953
954         PR c/27676
955         * c-typeck.c (readonly_warning): new.
956         (build_unary_op, build_modify_expr): Use readonly_warning for
957         storing into something readonly but not const-qualified.
958
959 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
960
961         PR c/22367
962         * c-typeck.c (build_unary_op): Check for taking address of
963         expression of type void.
964
965 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
966
967         PR c/35210
968         * c-typeck.c (build_function_call): Check for calling a function
969         with qualified void return types.  Call require_complete_type when
970         generating a trap.
971
972 2009-04-18  Jan Hubicka  <jh@suse.cz>
973
974         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
975         Set nothrow flag.
976         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
977         can_throw_external flag.
978         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
979         * ipa-pure-const.c (ignore_edge): New function.
980         (propagate): Compute order for NOTHROW computation; set NOTHROWs
981         only over can_throw_external edges.
982         (local_pure_const): Add nothrow flag.
983         * ipa-utils.c (searchc): Add ignore_edge callback.
984         (ipa_utils_reduced_inorder): Add ignore_edge callback.
985         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
986         (set_nothrow_function_flags): Update cgraph.
987         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
988
989 2009-04-18  Richard Guenther  <rguenther@suse.de>
990
991         PR middle-end/39804
992         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
993         (fold_stmt): ... this and ...
994         (fold_stmt_inplace): ... this.
995         (fold_stmt_1): Fold references in calls and asms.
996         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
997
998 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
999
1000         * tree-vrp.c (ssa_name_nonzero_p): Remove.
1001         * tree.h: Remove the prototype for ssa_name_nonzero_p.
1002
1003 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1004
1005         * tree.c (function_args_count): Remove.
1006         * tree.h: Remove the prototype for function_args_count.
1007
1008 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1009
1010         * tree-iterator.c (expr_only): Remove.
1011         * tree.h: Remove the prototype for expr_only.
1012
1013 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1014
1015         * reginfo.c (cannot_change_mode_set_regs): Remove.
1016         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
1017
1018 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
1019
1020         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
1021         whether operands 0 and 1 overlaps.
1022
1023 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1024
1025         PR middle-end/36902
1026         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
1027         pointer. Use warning_at instead of warning.
1028         (search_for_addr_array): Likewise.
1029         (check_array_bounds): Likewise.
1030         (check_all_array_refs): Check that the incoming edge is not in the
1031         list of edges to be removed.
1032         (check_all_array_refs): Avoid the temporal pointer.
1033         (vrp_visit_cond_stmt): Fix typo.
1034         (simplify_switch_using_ranges): Handle the case where the switch
1035         index is an integer constant.
1036
1037 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
1038
1039         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
1040
1041 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1042
1043         * doc/extend.texi, doc/invoke.texi: Fix typos.
1044
1045 2009-04-17  Cary Coutant  <ccoutant@google.com>
1046
1047         * tree-flow-inline.h (get_lineno): Fix inverted test.
1048
1049 2009-04-17  Diego Novillo  <dnovillo@google.com>
1050
1051         * tree-ssa-pre.c (create_expression_by_pieces): Remove
1052         assertion for AVAIL_OUT.
1053
1054 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
1055
1056         PR target/38627
1057         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
1058         * config/sh/linux-atomic.asm: Likewise.
1059
1060 2009-04-17  Diego Novillo  <dnovillo@google.com>
1061
1062         * except.c (debug_eh_tree): New.
1063         (struct eh_region, struct eh_status): Move ...
1064         * except.h: ... here.
1065         (add_type_for_runtime): Declare extern.
1066         (lookup_type_for_runtime): Likewise.
1067         (debug_eh_tree): Declare.
1068         * Makefile.in (GTFILES): List except.h before except.c
1069
1070 2009-04-17  Diego Novillo  <dnovillo@google.com>
1071
1072         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
1073         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1074         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
1075         (find_vars_r): ... here.
1076         * tree-flow.h (find_referenced_vars_in): Declare.
1077         * tree-ssa-pre.c (create_expression_by_pieces): Assert
1078         that AVAIL_OUT exists for BLOCK.
1079         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
1080         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
1081         (tree-parloops.o): Likewise.
1082
1083 2009-04-17  Simon Baldwin  <simonb@google.com>
1084
1085         * toplev.c (default_tree_printer): Add handling for %E format.
1086
1087 2009-04-17  Diego Novillo  <dnovillo@google.com>
1088
1089         * tree-pretty-print.c (dump_generic_node): Add break after
1090         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
1091         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
1092         FUNCTION_TYPE together.  Call print_struct_decl when printing
1093         structures and TDF_SLIM is not given.
1094         (print_struct_decl): Fix logic for detecting recursion.
1095
1096 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1097
1098         PR 31567
1099         * gcc.c (create_at_file): New.
1100         (compile_input_file_p): New.
1101         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
1102         * main.c (main): Update call to toplev_main.
1103         * toplev.c (toplev_main): Change signature. Call expandargv.
1104         * toplev.h (toplev_main): Change signature.
1105
1106 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1107
1108         * dwarf2out.c (field_byte_offset): Use the type size as the field size
1109         if the latter is not constant.
1110
1111 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
1112
1113         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
1114
1115 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1116
1117         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
1118         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
1119
1120 2009-04-17  Richard Guenther  <rguenther@suse.de>
1121
1122         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1123         Handle component references view-converting an invariant address.
1124
1125 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
1126
1127         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
1128         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
1129         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
1130         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
1131         Use @deftypevr rather than @deftypevar.
1132
1133 2009-04-17  Richard Guenther  <rguenther@suse.de>
1134
1135         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
1136         (get_prop_source_stmt): Likewise.
1137         (can_propagate_from): Likewise.
1138
1139 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
1140
1141         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
1142         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
1143         (--with-multilib-list): Add default value.
1144         * configure: Regenerate.
1145         * Makefile.in (TM_ENDIAN_CONFIG): Define.
1146         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
1147         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
1148         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
1149         Don't add default cpu to multilib list unnecessarily, but do enable
1150         the relevant compiler option..
1151         Add support for --with-multilib-list=<blank> and
1152         --with-multilib-list=!<somelib> to supress unwanted multilibs.
1153         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
1154         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
1155         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
1156         TM_MULTILIB_CONFIG.
1157         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
1158         (MULTILIB_OSDIRNAMES): New variable.
1159         * config/sh/t-1e: Delete file.
1160         * config/sh/t-mlib-sh1: Delete file.
1161         * config/sh/t-mlib-sh2: Delete file.
1162         * config/sh/t-mlib-sh2a: Delete file.
1163         * config/sh/t-mlib-sh2a-nofpu: Delete file.
1164         * config/sh/t-mlib-sh2a-single: Delete file.
1165         * config/sh/t-mlib-sh2a-single-only: Delete file.
1166         * config/sh/t-mlib-sh2e: Delete file.
1167         * config/sh/t-mlib-sh3e: Delete file.
1168         * config/sh/t-mlib-sh4: Delete file.
1169         * config/sh/t-mlib-sh4-nofpu: Delete file.
1170         * config/sh/t-mlib-sh4-single: Delete file.
1171         * config/sh/t-mlib-sh4-single-only: Delete file.
1172         * config/sh/t-mlib-sh4a: Delete file.
1173         * config/sh/t-mlib-sh4a-nofpu: Delete file.
1174         * config/sh/t-mlib-sh4a-single: Delete file.
1175         * config/sh/t-mlib-sh4a-single-only: Delete file.
1176         * config/sh/t-mlib-sh4al: Delete file.
1177         * config/sh/t-mlib-sh5-32media: Delete file.
1178         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
1179         * config/sh/t-mlib-sh5-64media: Delete file.
1180         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
1181         * config/sh/t-mlib-sh5-compact: Delete file.
1182         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
1183         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
1184         * doc/install.texi (Options specification): Add
1185         --with-multilib-list and --with-endian.
1186
1187 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1188
1189         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
1190         REVISION_c.
1191         (OBJS-common): Add plugin-version.o.
1192         (plugin-version.o): New.
1193         * gcc-plugin.h (plugin_gcc_version): New.
1194         (plugin_default_version_check): New.
1195         (plugin_init_func, plugin_init): Add version argument.
1196         * plugin-version.c: New.
1197         * plugin.c (str_plugin_gcc_version_name): New.
1198         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
1199         pass it to the init function.
1200         (plugin_default_version_check): New.
1201
1202 2009-04-17  Richard Guenther  <rguenther@suse.de>
1203
1204         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
1205         for decl-vs-decl disambiguation.
1206
1207 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1208
1209         * config/s390/s390.h (s390_tune_attr): New macro definition.
1210         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
1211
1212 2009-04-17  Richard Guenther  <rguenther@suse.de>
1213
1214         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
1215         (fold_stmt_r): Likewise.
1216         (maybe_fold_reference): New function.
1217         (fold_gimple_assign): Handle cases fold_stmt_r did.
1218         (fold_stmt): Do not use fold_stmt_r.
1219         (fold_stmt_inplace): Likewise.
1220
1221 2009-04-17  Richard Guenther  <rguenther@suse.de>
1222
1223         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
1224         (record_equivalences_from_stmt): Remove useless checks and
1225         simplifications.
1226         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
1227         the type is already suitable.
1228
1229 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
1230
1231         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
1232
1233 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
1234
1235         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
1236         (CMPtype): Define as __gcc_CMPtype.
1237
1238 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
1239
1240         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
1241         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
1242
1243 2009-04-17  Richard Guenther  <rguenther@suse.de>
1244
1245         PR tree-optimization/39746
1246         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
1247         special-casing for builtins and static variable use/def.
1248         (call_may_clobber_ref_p_1): Likewise.
1249
1250 2009-04-16  Ian Lance Taylor  <iant@google.com>
1251
1252         * df.h: Include "timevar.h".
1253         (struct df_problem): Change tv_id field to timevar_id_t.
1254         * tree-pass.h: Include "timevar.h".
1255         (struct opt_pass): Change tv_id field to timevar_id_t.
1256         * timevar.h (timevar_id_t): Define TV_NONE.
1257         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
1258         TV_NONE rather than tv_id != 0.
1259         (execute_one_pass): Likewise.
1260         * Makefile.in (DF_H): Add $(TIMEVAR_H).
1261         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
1262         dependencies to $(TREE_PASS_H).
1263         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
1264         to TV_NONE.
1265         (pass_branch_target_load_optimize2): Likewise.
1266         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
1267         (pass_outof_cfg_layout_mode): Likewise.
1268         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
1269         (pass_rebuild_cgraph_edges): Likewise.
1270         (pass_remove_cgraph_callee_edges): Likewise.
1271         * df-core.c (pass_df_initialize_opt): Likewise.
1272         (pass_df_initialize_no_opt): Likewise.
1273         (pass_df_finish): Likewise.
1274         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
1275         * except.c (pass_set_nothrow_function_flags): Likewise.
1276         (pass_convert_to_eh_region_ranges): Likewise.
1277         * final.c (pass_compute_alignments): Likewise.
1278         * function.c (pass_instantiate_virtual_regs): Likewise.
1279         (pass_init_function): Likewise.
1280         (pass_leaf_regs): Likewise.
1281         (pass_match_asm_constraints): Likewise.
1282         * gimple-low.c (pass_lower_cf): Likewise.
1283         (pass_mark_used_blocks): Likewise.
1284         * init-regs.c (pass_initialize_regs): Likewise.
1285         * integrate.c (pass_initial_value_sets): Likewise.
1286         * ira.c (pass_ira): Likewise.
1287         * jump.c (pass_cleanup_barriers): Likewise.
1288         * omp-low.c (pass_expand_omp): Likewise.
1289         (pass_lower_omp): Likewise.
1290         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
1291         * recog.c (pass_split_all_insns): Likewise.
1292         (pass_split_after_reload): Likewise.
1293         (pass_split_before_regstack): Likewise.
1294         (pass_split_before_sched2): Likewise.
1295         (pass_split_for_shorten_branches): Likewise.
1296         * reginfo.c (pass_reginfo_init): Likewise.
1297         (pass_subregs_of_mode_init): Likewise.
1298         (pass_subregs_of_mode_finish): Likewise.
1299         * passes.c (pass_postreload): Likewise.
1300         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
1301         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
1302         (pass_warn_function_return): Likewise.
1303         (pass_warn_function_noreturn): Likewise.
1304         * tree-complex.c (pass_lower_complex): Likewise.
1305         (pass_lower_complex_O0): Likewise.
1306         * tree-if-conv.c (pass_if_conversion): Likewise.
1307         * tree-into-ssa.c (pass_build_ssa): Likewise.
1308         * tree-mudflap.c (pass_mudflap_1): Likewise.
1309         (pass_mudflap_2): Likewise.
1310         * tree-nomudflap.c (pass_mudflap_1): Likewise.
1311         (pass_mudflap_2): Likewise.
1312         * tree-nrv.c (pass_return_slot): Likewise.
1313         * tree-object-size.c (pass_object_sizes): Likewise.
1314         * tree-optimize.c (pass_all_optimizations): Likewise.
1315         (pass_early_local_passes): Likewise.
1316         (pass_all_early_optimizations): Likewise.
1317         (pass_cleanup_cfg): Likewise.
1318         (pass_cleanup_cfg_post_optimizing): Likewise.
1319         (pass_free_datastructures): Likewise.
1320         (pass_free_cfg_annotations): Likewise.
1321         (pass_fixup_cfg): Likewise.
1322         (pass_init_datastructures): Likewise.
1323         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
1324         (pass_late_warn_uninitialized): Likewise.
1325         (pass_update_address_taken): Likewise.
1326         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
1327         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
1328         (pass_cse_sincos): Likewise.
1329         (pass_convert_to_rsqrt): Likewise.
1330         * tree-ssa-structalias.c (pass_build_alias): Likewise.
1331         * tree-stdarg.c (pass_stdarg): Likewise.
1332         * tree-tailcall.c (pass_tail_recursion): Likewise.
1333         (pass_tail_calls): Likewise.
1334         * tree-vect-generic.c (pass_lower_vector): Likewise.
1335         (pass_lower_vector_ssa): Likewise.
1336         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
1337
1338 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
1339
1340         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
1341         XLR entry.
1342         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
1343         Handle -march=xlr.
1344         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
1345         logical and signext.
1346
1347 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
1348
1349         PR target/39767
1350         * config/sh/predicates.md (arith_operand): Check if the operand
1351         of TRUNCATE is a REG.
1352
1353 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1354
1355         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
1356         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
1357
1358 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1359
1360         * tree-iterator.c (tsi_split_statement_list_after,
1361         tsi_split_statement_list_before): Remove.
1362         * tree-iterator.h: Remove the prototypes for
1363         tsi_split_statement_list_after and tsi_split_statement_list_before.
1364
1365 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1366
1367         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
1368         * tree-ssa-propagate.h: Remove the prototype for
1369         stmt_makes_single_load.
1370
1371 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1372
1373         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
1374         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
1375
1376 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1377
1378         * tree-iterator.c (EXPR_LAST_BODY): Remove.
1379
1380 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1381
1382         * except.c (eh_region_outer_p): Remove.
1383         * except.h: Remove the prototype for eh_region_outer_p.
1384
1385 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
1386
1387         * function.c (current_function_assembler_name): Remove.
1388         * function.h: Remove the prototype for
1389         current_function_assembler_name.
1390
1391 2009-04-16  Ian Lance Taylor  <iant@google.com>
1392
1393         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
1394         (add_reg_note): Call alloc_reg_note.
1395         * rtl.h (alloc_reg_note): Declare.
1396         * combine.c (try_combine): Use alloc_reg_note.
1397         (recog_for_combine, move_deaths): Likewise.
1398         (distribute_notes): Use alloc_reg_note and add_reg_note.
1399         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
1400         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
1401         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
1402
1403 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
1404
1405         PR rtl-optimization/39762
1406         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
1407         ira_may_move_out_cost): Add comments about way of their usage.
1408         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
1409
1410         * ira-conflicts.c (process_regs_for_copy): Use function
1411         ira_get_register_move_cost instead of global
1412         ira_register_move_cost.
1413
1414         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
1415         color_pass, move_spill_restore, update_curr_costs): Ditto.
1416
1417         * ira-lives.c (process_single_reg_class_operands): Ditto.
1418
1419         * ira-emit.c (emit_move_list): Ditto.
1420
1421         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
1422         (record_reg_classes): Ditto.  Use functions
1423         ira_get_register_move_cost and ira_get_may_move_cost instead of
1424         global vars ira_register_move_cost, ira_may_move_out_cost and
1425         ira_may_move_in_cost.
1426         (record_address_regs): Don't call ira_init_register_move_cost.
1427         Use function ira_get_may_move_cost instead of global
1428         ira_may_move_in_cost.
1429         (process_bb_node_for_hard_reg_moves): Use function
1430         ira_get_register_move_cost instead of global ira_register_move_cost.
1431         (ira_costs): Don't call ira_init_register_move_cost.
1432
1433 2009-04-16  Richard Guenther  <rguenther@suse.de>
1434
1435         * tree-cfg.c (verify_gimple_assign_binary):
1436         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
1437         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
1438         (create_general_new_stmt): Note that this function is broken.
1439
1440 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1441
1442         * common.opt (fhelp): Add Var(help_flag).
1443         * gcc-plugin.h (plugin_info): Add help.
1444         * plugin.c (plugin_name_args): Add help.
1445         (register_plugin_info): Set plugin->help.
1446         (print_help_one_plugin): New.
1447         (print_plugins_help): New.
1448         * plugin.h (print_plugins_help): New.
1449         * toplev.c (toplev_main): Call print_plugins_help if needed.
1450
1451 2009-04-16  Richard Guenther  <rguenther@suse.de>
1452
1453         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
1454         (gimple_ior_addresses_taken_1): New function.
1455         (gimple_ior_addresses_taken): Likewise.
1456         * gimple.h (struct gimple_statement_with_ops_base): Remove
1457         addresses_taken member.
1458         (gimple_ior_addresses_taken): Declare.
1459         (gimple_addresses_taken, gimple_addresses_taken_ptr,
1460         gimple_set_addresses_taken): Remove.
1461         * ipa-reference.c (mark_address): New function.
1462         (scan_stmt_for_static_refs): Use it for marking addresses taken.
1463         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
1464         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
1465         (gimple_add_to_addresses_taken): Remove.
1466         (get_tmr_operands): Call mark_address_taken.
1467         (get_asm_expr_operands): Likewise.
1468         (get_expr_operands): Likewise.
1469         (build_ssa_operands): Do not clear the addresses_taken bitmap.
1470         (free_stmt_operands): Do not free it.
1471         * tree-ssa.c (delete_tree_ssa): Likewise.
1472         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
1473
1474 2009-04-16  Richard Guenther  <rguenther@suse.de>
1475
1476         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
1477         (walk_stmt_load_store_ops): Likewise.
1478         * gimple.c (get_base_loadstore): New function.
1479         (walk_stmt_load_store_addr_ops): Likewise.
1480         (walk_stmt_load_store_ops): Likewise.
1481         * ipa-pure-const.c (check_op): Simplify.
1482         (check_load, check_store): New functions.
1483         (check_stmt): Use walk_stmt_load_store_ops.
1484         * ipa-reference.c (mark_load): Adjust signature.
1485         (mark_store): Likewise.
1486         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
1487
1488 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1489
1490         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
1491         (plugin_info): New.
1492         * opts.c (common_handle_option): Don't call print_version.
1493         * plugin.c (plugin_name_args): Add version.
1494         (register_plugin_info): New.
1495         (register_callback): Handle PLUGIN_INFO.
1496         (try_init_one_plugin): New.
1497         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
1498         if failed to init.
1499         (finalize_one_plugin): New.
1500         (finalize_plugins): New.
1501         (print_one_plugin): New.
1502         (print_plugins_versions): New.
1503         * plugin.h (print_plugins_versions): New.
1504         (finalize_plugins): New.
1505         * toplev.c (compile_file): Don't call initialize_plugins.
1506         (print_version): Call print_plugins_versions.
1507         (toplev_main): Call initialize_plugins. Print version if needed.
1508         Call finalize_plugins.
1509
1510 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
1511
1512         * common.opt (fversion): New.
1513         * gcc.c (print_version): New.
1514         (process_command): Don't print the version. Just set print_version.
1515         (main): Print version. Call subprocesses if print_version and
1516         verbose_flag are set.
1517         * opts.c (common_handle_option): Handle OPT_fversion.
1518
1519 2009-04-16  Richard Guenther  <rguenther@suse.de>
1520             Ira Rosen  <irar@il.ibm.com>
1521
1522         PR tree-optimization/39698
1523         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
1524         type of the reduction variable.  Only generate the def if
1525         it is needed.
1526
1527         * omp-low.c (expand_omp_for_generic): When converting to a pointer
1528         make sure to first convert to an integer of the same precision.
1529         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
1530         the type of the evolution correctly in computing the new
1531         induction variable base.
1532
1533 2009-04-16  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/39625
1536         * tree-cfg.c (make_blocks): Split statements with to-be
1537         abnormal SSA names on the lhs.
1538
1539 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
1540
1541         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
1542         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
1543         * c-typeck.c (really_start_incremental_init): Likewise.
1544         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
1545         (TARGET_INITIALIZER): Remove it.
1546         * target.h (struct target): Remove vector_opaque_p.
1547         * tree.c (build_opaque_vector_type): New.
1548         * tree.h (TYPE_VECTOR_OPAQUE): New.
1549         (build_opaque_vector_type): Declare.
1550         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
1551         * config/rs6000/rs6000.c (build_opaque_vector_type,
1552         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
1553         (rs6000_init_builtins): Use build_opaque_vector_type for
1554         opaque_V4SI_type_node.
1555
1556 2009-04-15  Catherine Moore  <clm@codesourcery.com>
1557
1558         * debug.h (set_name):  Declare.
1559         * dwarf2out.c (dwarf2out_set_name): Declare.
1560         (dwarf2_debug_hooks): Add set_name.
1561         (find_AT_string): New.
1562         (add_AT_string): Call find_AT_string.
1563         (dwarf2out_set_name): New.
1564         * cp/decl.c (grokdeclarator): Call set_name.
1565         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
1566         * debug.c (do_nothing_debug_hooks):  Likewise.
1567         * dbxout.c (dbx_debug_hooks): Likewise.
1568         * sdbout.c (sdb_debug_hooks): Likewise.
1569
1570 2009-04-15  Michael Eager <eager@eagercon.com>
1571
1572         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
1573         reg for single-precision FPU.
1574         * config/rs6000/rs6000.md (movsi_internal1): Only for
1575         !TARGET_SINGLE_FPU.
1576         (movsi_internal1_single): New. Add pattern to move SI values to/from
1577         single-precision FP regs.
1578
1579 2009-04-15  Richard Guenther  <rguenther@suse.de>
1580
1581         * omp-low.c (lower_rec_input_clauses): Build correct address
1582         expressions.
1583         (expand_omp_for_generic): Fix multiplication type.
1584         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
1585         (generate_memset_zero): Fix types.
1586         * tree-profile.c (prepare_instrumented_value): Correctly
1587         widen a pointer.
1588
1589 2009-04-15  Ian Lance Taylor  <iant@google.com>
1590
1591         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
1592         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
1593         for -Wall and for -Wc++-compat.
1594         (c_common_post_options): For C++, set warn_enum_compare if not
1595         already set.
1596         * c-tree.h (struct c_expr): Add field original_type.
1597         (build_external_ref): Update declaration.
1598         * c-parser.c (c_parser_braced_init): Set original_type.
1599         (c_parser_initelt): Likewise.
1600         (c_parser_expr_no_commas): Likewise.
1601         (c_parser_conditional_expression): Likewise.
1602         (c_parser_cast_expression): Likewise.
1603         (c_parser_unary_expression): Likewise.  Pull setting of
1604         original_code to top of function.
1605         (c_parser_sizeof_expression): Set original_type.
1606         (c_parser_alignof_expression): Likewise.
1607         (c_parser_postfix_expression): Likewise.  Pull setting of
1608         original_code to top of function.
1609         (c_parser_postfix_expression_after_paren_type): Set original_type.
1610         (c_parser_postfix_expression_after_primary): Likewise.
1611         (c_parser_expression): Likewise.
1612         * c-typeck.c (build_external_ref): Add type parameter.  Change all
1613         callers.
1614         (c_expr_sizeof_expr): Set original_type field.
1615         (parser_build_unary_op): Likewise.
1616         (parser_build_binary_op): Likewise.  Optionally warn about
1617         comparisons of enums of different types.
1618         (digest_init): Set original_type field.
1619         (really_start_incremental_init): Likewise.
1620         (push_init_level, pop_init_level): Likewise.
1621         * doc/invoke.texi (Warning Options): -Wenum-compare now
1622         supported in C.
1623
1624 2009-04-15  Richard Guenther  <rguenther@suse.de>
1625
1626         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
1627         out a necessary conversion.
1628         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
1629         names we didn't value number.
1630         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
1631
1632 2009-04-15  Richard Guenther  <rguenther@suse.de>
1633
1634         PR tree-optimization/39764
1635         * tree-ssa-ccp.c (get_value): Canonicalize value with
1636         canonicalize_float_value.
1637
1638 2009-04-15  Jan Hubicka  <jh@suse.cz>
1639
1640         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
1641         Wrong version of patch.
1642
1643 2009-04-15  Jan Hubicka  <jh@suse.cz>
1644
1645         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
1646
1647 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
1648
1649         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
1650         our distinct integral and vector types.
1651
1652 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
1653
1654         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
1655         * init.c (build_vtbl_address): Remove call to assemble_external.
1656
1657 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
1658
1659         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
1660         output for other floating point modes.
1661
1662 2009-04-14  Diego Novillo  <dnovillo@google.com>
1663
1664         * diagnostic.c (diagnostic_report_diagnostic): Do not
1665         warn about loaded plugins for DK_ERROR and DK_WARNING.
1666         * c-decl.c (declspecs_add_type): Move call to
1667         invoke_plugin_callbacks ...
1668         * c-parser.c (c_parser_declspecs): ... here.
1669         * plugin.c (dump_active_plugins): Tidy output.
1670
1671 2009-04-14  Diego Novillo  <dnovillo@google.com>
1672             Le-Chun Wu  <lcwu@google.com>
1673
1674         * configure.ac: Add --enable-plugin support.
1675         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
1676         * Makefile.in (PLUGIN_H): Define.
1677         Export ENABLE_PLUGIN and GMPINC to site.exp.
1678         Add PLUGINLIBS to link command.
1679         Add/modify dependencies for plugin.o and files including plugin.h.
1680         (plugin.o): New.
1681         * config.in: Regenerate.
1682
1683         * opts.c (common_handle_option): Handle OPT_fplugin_ and
1684         OPT_fplugin_arg_.
1685
1686 2009-04-14  Le-Chun Wu  <lcwu@google.com>
1687
1688         * tree-pass.h (register_one_dump_file): Add a prototype for
1689         register_one_dump_file.
1690         * toplev.c (compile_file): Call initialize_plugins.
1691         (do_compile): Call invoke_plugin_callbacks.
1692         (toplev_main): Call invoke_plugin_callbacks.
1693         * common.opt: Add -fplugin= and -fplugin-arg-.
1694         * gcc-plugin.h: New public header file for plugins to include.
1695         * plugin.c: New source file.
1696         * plugin.h: New internal header file.
1697         * passes.c (register_one_dump_file): Make it external.
1698
1699         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
1700
1701 2009-04-14  Diego Novillo  <dnovillo@google.com>
1702
1703         * doc/plugins.texi: New.
1704         * doc/gccint.texi: Add reference to Plugins chapter.
1705         * doc/invoke.texi: Document -fplugin and -fplugin-arg
1706         * diagnostic.c (diagnostic_report_diagnostic): Warn about
1707         loaded plugins, if any.
1708         * timevar.def (TV_PLUGIN_INIT): Define.
1709         (TV_PLUGIN_RUN): Define.
1710         * plugin.c: Include timevar.h
1711         (plugins_active_p): New.
1712         (dump_active_plugins): New.
1713         (debug_active_plugins): New.
1714
1715 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
1716
1717         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
1718         library paths.
1719         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
1720
1721 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
1722
1723         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
1724         the same as a minus without a shift.
1725
1726 2009-04-14  Nick Clifton  <nickc@redhat.com>
1727
1728         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
1729         comparisons with small integers will always produce a short
1730         branch.
1731
1732 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
1733
1734         Merge:
1735         2008-12-19  Diego Novillo  <dnovillo@google.com>
1736
1737         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
1738
1739 2009-04-14  Richard Guenther  <rguenther@suse.de>
1740
1741         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
1742         verification.
1743         (verify_gimple_assign_binary): Likewise.  Handle shifts and
1744         rotates correctly.
1745         (verify_gimple_phi): Print the mismatched argument position.
1746         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1747         Fix types.
1748         (vect_update_init_of_dr): Likewise.
1749         * matrix-reorg.c (transform_access_sites): Do what the
1750         comment suggests.
1751         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
1752
1753 2009-04-13  Michael Eager <eager@eagercon.com>
1754
1755         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
1756         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
1757         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
1758         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
1759         remove duplicate config
1760
1761 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1762
1763         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
1764         file_name:line_number type locator of the call site.
1765
1766 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
1767
1768         * genautomata.c: Put blank after comma.
1769         (automaton_decls): New.
1770         (struct unit_usage): Add comments to member next.
1771         (store_alt_unit_usage): Keep the list ordered.
1772         (unit_present_on_list_p, equal_alternatives_p): New.
1773         (check_regexp_units_distribution): Check units distribution
1774         correctness correctly.
1775         (main): Don't write automata if error is found.  Return correct
1776         exit code.
1777
1778         * config/m68k/cf.md (cfv4_ds): Remove.
1779         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
1780         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
1781
1782         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
1783         power4-load-ext, power4-store, power4-store-update,
1784         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
1785         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
1786         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
1787         power4-sqrt, power4-isync): Modify reservation to make correct
1788         unit distribution to automata.
1789
1790         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
1791         power5-store-update, power5-two, power5-three, power5-lmul,
1792         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
1793
1794 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
1795
1796         * except.c (pass_set_nothrow_function_flags): Set name and add
1797         TODO_dump_func.
1798         (set_nothrow_function_flags): Mention in the dump file when
1799         changing a function to nothrow.
1800
1801 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
1802
1803         PR/39066
1804         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
1805         instead of unsigned long.
1806
1807 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1808
1809         * config/arm/arm.c (return_used_this_function): Remove.
1810         (arm_output_function_prologue): Remove use of
1811         return_used_this_function.
1812         (output_return_instruction): Replace use of
1813         return_used_this_function
1814         by cfun->machine->return_used_this_function.
1815         (arm_output_epilogue): Likewise.
1816         (arm_output_function_epilogue): Likewise.
1817         (thumb_unexpanded_epilogue): Likewise.
1818         * config/arm/arm.h (struct machine_function):
1819         New member return_used_this_function.
1820
1821 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
1822
1823         * doc/install.texi: Correct description of default directory for
1824         --with-gxx-include-dir.
1825
1826 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
1827
1828         * fold-const.c (build_range_check): Properly deal with enumeral and
1829         boolean base types.
1830
1831 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
1832
1833         * doc/invoke.texi (max_gcse_passes): Remove documentation.
1834         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
1835         * params.h (MAX_GCSE_PASSES): Remove.
1836         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
1837         in sequence.  Remove ability to run multiple passes.
1838         (bypass_jumps): Report run as third CPROP pass.
1839
1840 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
1841
1842         PR middle-end/39651
1843         * except.c (can_throw_external): Look at each insn in a SEQUENCE
1844         when deciding whether the whole SEQUENCE can throw.
1845
1846 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         PR target/39740
1849         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
1850         offseted label references.
1851
1852 2009-04-11  Jan Hubicka  <jh@suse.cz>
1853
1854         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
1855
1856 2009-04-11  Richard Guenther  <rguenther@suse.de>
1857
1858         PR middle-end/39732
1859         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
1860         return variables as TREE_ADDRESSABLE.
1861
1862 2009-04-11  Richard Guenther  <rguenther@suse.de>
1863
1864         PR tree-optimization/39713
1865         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
1866         reference trees have SSA_NAME operands.
1867
1868 2009-04-11  Richard Guenther  <rguenther@suse.de>
1869
1870         PR c/39712
1871         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
1872         address expressions.
1873
1874 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1875
1876         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
1877         match changes in Cygwin 1.7
1878         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1879         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
1880
1881 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1882
1883         PR tree-optimization/39701
1884         * doc/invoke.texi (Optimization Options): Document change in
1885         meaning and initialization of -fdelete-null-pointer-checks.
1886
1887 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         PR middle-end/39701
1890         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
1891
1892         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
1893         here.
1894
1895         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
1896
1897 2009-04-10  Chao-ying Fu  <fu@mips.com>
1898
1899         * doc/tm.texi (Instruction Output): Document
1900         TARGET_ASM_FINAL_POSTSCAN_INSN.
1901         * target.h (final_postscan_insn): New field in asm_out.
1902         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1903         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
1904         * final.c (final_scan_insn): Call
1905         targetm.asm_out.final_postscan_insn after outputting
1906         an asm macro and a normal instruction.
1907
1908         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
1909         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
1910         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
1911         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
1912         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
1913
1914 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
1915
1916         PR middle-end/39701
1917         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
1918         variables as non-NULL even with -fdelete-null-pointer-checks.
1919
1920 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
1921
1922         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
1923
1924 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
1925
1926         PR target/39678
1927         * config/i386/i386.c (classify_argument): Handle SCmode with
1928         (bit_offset % 64) != 0.
1929
1930 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
1931
1932         * doc/invoke.texi (Optimize Options): Add cross-reference to
1933         -Q --help=optimizers examples.
1934
1935 2009-04-10  Ben Elliston  <bje@au.ibm.com>
1936
1937         PR target/36800
1938         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
1939         regalign for the reg == fpr and TDmode case.
1940
1941 2009-04-09  David Ayers  <ayers@fsfe.org>
1942
1943         PR objc/29200
1944         * objc/objc-act.c (warn_with_method): Remove helper function.
1945         (check_duplicates): Call warning and inform directly.
1946         (really_start_method): Likewise.
1947
1948 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1949
1950         * expmed.c (expand_divmod): Always use a comparison for a division
1951         by a large unsigned integer.
1952
1953         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
1954         for things others than variables or functions as nonzero.
1955
1956 2009-04-09  Nick Clifton  <nickc@redhat.com>
1957
1958         * unwind-compat.c: Change copyright header to refer to version
1959         3 of the GNU General Public License with version 3.1 of the
1960         GCC Runtime Library Exception and to point readers at the
1961         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
1962         * config/alpha/crtfastmath.c: Likewise.
1963         * config/alpha/linux-unwind.h: Likewise.
1964         * config/alpha/qrnnd.asm: Likewise.
1965         * config/alpha/vms-crt0-64.c: Likewise.
1966         * config/alpha/vms-crt0.c: Likewise.
1967         * config/alpha/vms-dwarf2.asm: Likewise.
1968         * config/alpha/vms-dwarf2eh.asm: Likewise.
1969         * config/alpha/vms-psxcrt0-64.c: Likewise.
1970         * config/alpha/vms-psxcrt0.c: Likewise.
1971         * config/alpha/vms_tramp.asm: Likewise.
1972         * config/arc/initfini.c: Likewise.
1973         * config/arc/lib1funcs.asm: Likewise.
1974         * config/arm/bpabi-v6m.S: Likewise.
1975         * config/arm/bpabi.S: Likewise.
1976         * config/arm/bpabi.c: Likewise.
1977         * config/arm/crti.asm: Likewise.
1978         * config/arm/crtn.asm: Likewise.
1979         * config/arm/ieee754-df.S: Likewise.
1980         * config/arm/ieee754-sf.S: Likewise.
1981         * config/arm/lib1funcs.asm: Likewise.
1982         * config/arm/libunwind.S: Likewise.
1983         * config/arm/linux-atomic.c: Likewise.
1984         * config/arm/mmintrin.h: Likewise.
1985         * config/arm/pr-support.c: Likewise.
1986         * config/arm/unaligned-funcs.c: Likewise.
1987         * config/arm/unwind-arm.c: Likewise.
1988         * config/arm/unwind-arm.h: Likewise.
1989         * config/avr/libgcc.S: Likewise.
1990         * config/bfin/crti.s: Likewise.
1991         * config/bfin/crtlibid.s: Likewise.
1992         * config/bfin/crtn.s: Likewise.
1993         * config/bfin/lib1funcs.asm: Likewise.
1994         * config/bfin/linux-unwind.h: Likewise.
1995         * config/cris/arit.c: Likewise.
1996         * config/cris/cris_abi_symbol.c: Likewise.
1997         * config/darwin-64.c: Likewise.
1998         * config/darwin-crt2.c: Likewise.
1999         * config/darwin-crt3.c: Likewise.
2000         * config/darwin.h: Likewise.
2001         * config/dbxelf.h: Likewise.
2002         * config/dfp-bit.c: Likewise.
2003         * config/dfp-bit.h: Likewise.
2004         * config/elfos.h: Likewise.
2005         * config/fixed-bit.c: Likewise.
2006         * config/fixed-bit.h: Likewise.
2007         * config/fp-bit.c: Likewise.
2008         * config/fp-bit.h: Likewise.
2009         * config/fr30/crti.asm: Likewise.
2010         * config/fr30/crtn.asm: Likewise.
2011         * config/fr30/lib1funcs.asm: Likewise.
2012         * config/freebsd-spec.h: Likewise.
2013         * config/frv/cmovd.c: Likewise.
2014         * config/frv/cmovh.c: Likewise.
2015         * config/frv/cmovw.c: Likewise.
2016         * config/frv/frvbegin.c: Likewise.
2017         * config/frv/frvend.c: Likewise.
2018         * config/frv/lib1funcs.asm: Likewise.
2019         * config/glibc-stdint.h: Likewise.
2020         * config/h8300/clzhi2.c: Likewise.
2021         * config/h8300/crti.asm: Likewise.
2022         * config/h8300/crtn.asm: Likewise.
2023         * config/h8300/ctzhi2.c: Likewise.
2024         * config/h8300/fixunssfsi.c: Likewise.
2025         * config/h8300/lib1funcs.asm: Likewise.
2026         * config/h8300/parityhi2.c: Likewise.
2027         * config/h8300/popcounthi2.c: Likewise.
2028         * config/i386/ammintrin.h: Likewise.
2029         * config/i386/att.h: Likewise.
2030         * config/i386/avxintrin.h: Likewise.
2031         * config/i386/biarch64.h: Likewise.
2032         * config/i386/bmmintrin.h: Likewise.
2033         * config/i386/cpuid.h: Likewise.
2034         * config/i386/cross-stdarg.h: Likewise.
2035         * config/i386/crtfastmath.c: Likewise.
2036         * config/i386/crtprec.c: Likewise.
2037         * config/i386/cygming-crtbegin.c: Likewise.
2038         * config/i386/cygming-crtend.c: Likewise.
2039         * config/i386/cygwin.asm: Likewise.
2040         * config/i386/emmintrin.h: Likewise.
2041         * config/i386/gmm_malloc.h: Likewise.
2042         * config/i386/gthr-win32.c: Likewise.
2043         * config/i386/i386.h: Likewise.
2044         * config/i386/immintrin.h: Likewise.
2045         * config/i386/linux-unwind.h: Likewise.
2046         * config/i386/linux64.h: Likewise.
2047         * config/i386/mm3dnow.h: Likewise.
2048         * config/i386/mmintrin-common.h: Likewise.
2049         * config/i386/mmintrin.h: Likewise.
2050         * config/i386/nmmintrin.h: Likewise.
2051         * config/i386/pmm_malloc.h: Likewise.
2052         * config/i386/pmmintrin.h: Likewise.
2053         * config/i386/smmintrin.h: Likewise.
2054         * config/i386/sol2-c1.asm: Likewise.
2055         * config/i386/sol2-ci.asm: Likewise.
2056         * config/i386/sol2-cn.asm: Likewise.
2057         * config/i386/sol2-gc1.asm: Likewise.
2058         * config/i386/tmmintrin.h: Likewise.
2059         * config/i386/unix.h: Likewise.
2060         * config/i386/w32-unwind.h: Likewise.
2061         * config/i386/wmmintrin.h: Likewise.
2062         * config/i386/x86-64.h: Likewise.
2063         * config/i386/x86intrin.h: Likewise.
2064         * config/i386/xmmintrin.h: Likewise.
2065         * config/ia64/crtbegin.asm: Likewise.
2066         * config/ia64/crtend.asm: Likewise.
2067         * config/ia64/crtfastmath.c: Likewise.
2068         * config/ia64/crti.asm: Likewise.
2069         * config/ia64/crtn.asm: Likewise.
2070         * config/ia64/fde-glibc.c: Likewise.
2071         * config/ia64/lib1funcs.asm: Likewise.
2072         * config/ia64/linux-unwind.h: Likewise.
2073         * config/ia64/quadlib.c: Likewise.
2074         * config/ia64/unwind-ia64.c: Likewise.
2075         * config/linux.h: Likewise.
2076         * config/m32c/m32c-lib1.S: Likewise.
2077         * config/m32c/m32c-lib2-trapv.c: Likewise.
2078         * config/m32c/m32c-lib2.c: Likewise.
2079         * config/m32r/initfini.c: Likewise.
2080         * config/m68hc11/larith.asm: Likewise.
2081         * config/m68hc11/m68hc11-crt0.S: Likewise.
2082         * config/m68k/cf.md: Likewise.
2083         * config/m68k/crti.s: Likewise.
2084         * config/m68k/crtn.s: Likewise.
2085         * config/m68k/lb1sf68.asm: Likewise.
2086         * config/m68k/linux-unwind.h: Likewise.
2087         * config/mcore/crti.asm: Likewise.
2088         * config/mcore/crtn.asm: Likewise.
2089         * config/mcore/lib1.asm: Likewise.
2090         * config/mips/linux-unwind.h: Likewise.
2091         * config/mips/loongson.h: Likewise.
2092         * config/mips/mips16.S: Likewise.
2093         * config/mmix/crti.asm: Likewise.
2094         * config/mmix/crtn.asm: Likewise.
2095         * config/pa/fptr.c: Likewise.
2096         * config/pa/hpux-unwind.h: Likewise.
2097         * config/pa/lib2funcs.asm: Likewise.
2098         * config/pa/linux-atomic.c: Likewise.
2099         * config/pa/linux-unwind.h: Likewise.
2100         * config/pa/milli64.S: Likewise.
2101         * config/pa/quadlib.c: Likewise.
2102         * config/pa/stublib.c: Likewise.
2103         * config/picochip/libgccExtras/adddi3.asm: Likewise.
2104         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
2105         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
2106         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
2107         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
2108         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
2109         * config/picochip/libgccExtras/divmod15.asm: Likewise.
2110         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
2111         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
2112         * config/picochip/libgccExtras/longjmp.asm: Likewise.
2113         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
2114         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
2115         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
2116         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
2117         * config/picochip/libgccExtras/setjmp.asm: Likewise.
2118         * config/picochip/libgccExtras/subdi3.asm: Likewise.
2119         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
2120         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
2121         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
2122         * config/rs6000/750cl.h: Likewise.
2123         * config/rs6000/altivec.h: Likewise.
2124         * config/rs6000/biarch64.h: Likewise.
2125         * config/rs6000/crtresfpr.asm: Likewise.
2126         * config/rs6000/crtresgpr.asm: Likewise.
2127         * config/rs6000/crtresxfpr.asm: Likewise.
2128         * config/rs6000/crtresxgpr.asm: Likewise.
2129         * config/rs6000/crtsavfpr.asm: Likewise.
2130         * config/rs6000/crtsavgpr.asm: Likewise.
2131         * config/rs6000/darwin-asm.h: Likewise.
2132         * config/rs6000/darwin-fallback.c: Likewise.
2133         * config/rs6000/darwin-fpsave.asm: Likewise.
2134         * config/rs6000/darwin-ldouble.c: Likewise.
2135         * config/rs6000/darwin-tramp.asm: Likewise.
2136         * config/rs6000/darwin-unwind.h: Likewise.
2137         * config/rs6000/darwin-vecsave.asm: Likewise.
2138         * config/rs6000/darwin-world.asm: Likewise.
2139         * config/rs6000/e500crtres32gpr.asm: Likewise.
2140         * config/rs6000/e500crtres64gpr.asm: Likewise.
2141         * config/rs6000/e500crtres64gprctr.asm: Likewise.
2142         * config/rs6000/e500crtrest32gpr.asm: Likewise.
2143         * config/rs6000/e500crtrest64gpr.asm: Likewise.
2144         * config/rs6000/e500crtresx32gpr.asm: Likewise.
2145         * config/rs6000/e500crtresx64gpr.asm: Likewise.
2146         * config/rs6000/e500crtsav32gpr.asm: Likewise.
2147         * config/rs6000/e500crtsav64gpr.asm: Likewise.
2148         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2149         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
2150         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
2151         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
2152         * config/rs6000/eabi-ci.asm: Likewise.
2153         * config/rs6000/eabi-cn.asm: Likewise.
2154         * config/rs6000/eabi.asm: Likewise.
2155         * config/rs6000/linux-unwind.h: Likewise.
2156         * config/rs6000/linux64.h: Likewise.
2157         * config/rs6000/paired.h: Likewise.
2158         * config/rs6000/paired.md: Likewise.
2159         * config/rs6000/ppc64-fp.c: Likewise.
2160         * config/rs6000/ppu_intrinsics.h: Likewise.
2161         * config/rs6000/rs6000.h: Likewise.
2162         * config/rs6000/si2vmx.h: Likewise.
2163         * config/rs6000/sol-ci.asm: Likewise.
2164         * config/rs6000/sol-cn.asm: Likewise.
2165         * config/rs6000/spe.h: Likewise.
2166         * config/rs6000/spu2vmx.h: Likewise.
2167         * config/rs6000/sysv4.h: Likewise.
2168         * config/rs6000/tramp.asm: Likewise.
2169         * config/rs6000/vec_types.h: Likewise.
2170         * config/s390/linux-unwind.h: Likewise.
2171         * config/s390/tpf-unwind.h: Likewise.
2172         * config/score/crti.asm: Likewise.
2173         * config/score/crtn.asm: Likewise.
2174         * config/sh/crt1.asm: Likewise.
2175         * config/sh/crti.asm: Likewise.
2176         * config/sh/crtn.asm: Likewise.
2177         * config/sh/divtab-sh4-300.c: Likewise.
2178         * config/sh/divtab-sh4.c: Likewise.
2179         * config/sh/divtab.c: Likewise.
2180         * config/sh/lib1funcs-4-300.asm: Likewise.
2181         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
2182         * config/sh/lib1funcs.asm: Likewise.
2183         * config/sh/lib1funcs.h: Likewise.
2184         * config/sh/linux-atomic.asm: Likewise.
2185         * config/sh/linux-unwind.h: Likewise.
2186         * config/sh/shmedia.h: Likewise.
2187         * config/sh/sshmedia.h: Likewise.
2188         * config/sh/ushmedia.h: Likewise.
2189         * config/sparc/crtfastmath.c: Likewise.
2190         * config/sparc/linux-unwind.h: Likewise.
2191         * config/sparc/sol2-c1.asm: Likewise.
2192         * config/sparc/sol2-ci.asm: Likewise.
2193         * config/sparc/sol2-cn.asm: Likewise.
2194         * config/spu/divmodti4.c: Likewise.
2195         * config/spu/divv2df3.c: Likewise.
2196         * config/spu/float_disf.c: Likewise.
2197         * config/spu/float_unsdidf.c: Likewise.
2198         * config/spu/float_unsdisf.c: Likewise.
2199         * config/spu/float_unssidf.c: Likewise.
2200         * config/spu/mfc_multi_tag_release.c: Likewise.
2201         * config/spu/mfc_multi_tag_reserve.c: Likewise.
2202         * config/spu/mfc_tag_release.c: Likewise.
2203         * config/spu/mfc_tag_reserve.c: Likewise.
2204         * config/spu/mfc_tag_table.c: Likewise.
2205         * config/spu/multi3.c: Likewise.
2206         * config/spu/spu_internals.h: Likewise.
2207         * config/spu/spu_intrinsics.h: Likewise.
2208         * config/spu/spu_mfcio.h: Likewise.
2209         * config/spu/vec_types.h: Likewise.
2210         * config/spu/vmx2spu.h: Likewise.
2211         * config/stormy16/stormy16-lib2.c: Likewise.
2212         * config/svr4.h: Likewise.
2213         * config/sync.c: Likewise.
2214         * config/v850/lib1funcs.asm: Likewise.
2215         * config/vxlib-tls.c: Likewise.
2216         * config/vxlib.c: Likewise.
2217         * config/vxworks-dummy.h: Likewise.
2218         * config/xtensa/crti.asm: Likewise.
2219         * config/xtensa/crtn.asm: Likewise.
2220         * config/xtensa/ieee754-df.S: Likewise.
2221         * config/xtensa/ieee754-sf.S: Likewise.
2222         * config/xtensa/lib1funcs.asm: Likewise.
2223         * config/xtensa/lib2funcs.S: Likewise.
2224         * config/xtensa/linux-unwind.h: Likewise.
2225         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2226         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
2227         * coretypes.h: Likewise.
2228         * crtstuff.c: Likewise.
2229         * defaults.h: Likewise.
2230         * dwarf2.h: Likewise.
2231         * emutls.c: Likewise.
2232         * gbl-ctors.h: Likewise.
2233         * gcov-io.h: Likewise.
2234         * ginclude/float.h: Likewise.
2235         * ginclude/iso646.h: Likewise.
2236         * ginclude/stdarg.h: Likewise.
2237         * ginclude/stdbool.h: Likewise.
2238         * ginclude/stddef.h: Likewise.
2239         * ginclude/stdfix.h: Likewise.
2240         * ginclude/stdint-gcc.h: Likewise.
2241         * ginclude/tgmath.h: Likewise.
2242         * gthr-aix.h: Likewise.
2243         * gthr-dce.h: Likewise.
2244         * gthr-gnat.c: Likewise.
2245         * gthr-gnat.h: Likewise.
2246         * gthr-lynx.h: Likewise.
2247         * gthr-mipssde.h: Likewise.
2248         * gthr-nks.h: Likewise.
2249         * gthr-posix.c: Likewise.
2250         * gthr-posix.h: Likewise.
2251         * gthr-posix95.h: Likewise.
2252         * gthr-rtems.h: Likewise.
2253         * gthr-single.h: Likewise.
2254         * gthr-solaris.h: Likewise.
2255         * gthr-tpf.h: Likewise.
2256         * gthr-vxworks.h: Likewise.
2257         * gthr-win32.h: Likewise.
2258         * gthr.h: Likewise.
2259         * libgcc2.c: Likewise.
2260         * libgcc2.h: Likewise.
2261         * libgcov.c: Likewise.
2262         * tsystem.h: Likewise.
2263         * typeclass.h: Likewise.
2264         * unwind-c.c: Likewise.
2265         * unwind-compat.h: Likewise.
2266         * unwind-dw2-fde-compat.c: Likewise.
2267         * unwind-dw2-fde-darwin.c: Likewise.
2268         * unwind-dw2-fde-glibc.c: Likewise.
2269         * unwind-dw2-fde.c: Likewise.
2270         * unwind-dw2-fde.h: Likewise.
2271         * unwind-dw2.c: Likewise.
2272         * unwind-dw2.h: Likewise.
2273         * unwind-generic.h: Likewise.
2274         * unwind-pe.h: Likewise.
2275         * unwind-sjlj.c: Likewise.
2276         * unwind.inc: Likewise.
2277         * config/arm/neon-gen.ml: Change generated copyright header to
2278         refer to version 3 of the GNU General Public License with
2279         version 3.1 of the GCC Runtime Library Exception and to point
2280         readers at the COPYING3 and COPYING3.RUNTIME files and the
2281         FSF's license web page.
2282         * config/arm/arm_neon.h: Regenerate.
2283
2284 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2285
2286         * config/cris/cris.md: Change copyright header to refer to version
2287         3 of the GNU General Public License.
2288         * doc/install.texi2html: Change copyright header to refer to version
2289         3 of the GNU General Public License and to point readers at the
2290         COPYING3 file and the FSF's license web page.
2291         * config/vax/linux.h: Likewise.
2292
2293 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2294
2295         * config/i386/i386.md (cmpcc): New.
2296         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
2297         (sync_compare_and_swap_cc*): Delete.
2298
2299         * config/s390/s390.c (s390_compare_emitted): Remove.
2300         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
2301         s390_compare_emitted used to be handled.  Assert that modes match.
2302         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
2303         refer to sync_compare_and_swap_ccsi.
2304         * config/s390/s390.h (s390_compare_emitted): Remove.
2305         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
2306         instead of s390_compare_emitted.
2307         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
2308         instead of s390_compare_emitted.
2309         * config/s390/s390.md (cmpcc): New.
2310         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
2311         CC_REGNUM, do not pretend it's set.
2312         (sync_compare_and_swap_cc*): Delete.
2313         * config/s390/predicates.md (cc_reg_operand): New.
2314
2315         * expr.c (sync_compare_and_swap_cc): Delete.
2316         * optabs.h (sync_compare_and_swap_cc): Delete.
2317         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
2318         is being used with can_compare_p.
2319         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
2320         (find_cc_set): New.
2321         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
2322         look for a MODE_CC set instead.  Use emit_store_flag.
2323         (expand_compare_and_swap_loop): Likewise, with some additional
2324         complication to avoid a force_reg when useless.  Use
2325         emit_cmp_and_jump_insns.
2326         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
2327         * doc/md.texi (sync_compare_and_swap_cc): Merge with
2328         sync_compare_and_swap documentation.
2329
2330 2009-04-09  Jan Hubicka  <jh@suse.cz>
2331
2332         * except.c (find_prev_try): Break out from ....
2333         (duplicate_eh_regions): ... here; properly update prev_try pointers
2334         when duplication part of tree.
2335         (dump_eh_tree): Improve dumping.
2336         (verify_eh_region): New.
2337         (verify_eh_tree): Use it.
2338
2339 2009-04-06  Richard Guenther  <rguenther@suse.de>
2340
2341         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
2342         &ARRAY addresses by adjusting their types and prepending
2343         a conversion.
2344         * tree-cfg.c (verify_gimple_assign_single): Verify that
2345         addresses are correct.
2346
2347 2009-04-09  Richard Guenther  <rguenther@suse.de>
2348
2349         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
2350         indices into an array reference if possible.
2351         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2352         Fold POINTER_PLUS_EXPR statements with invariant address.
2353
2354 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
2355
2356         PR target/39634
2357         * config.gcc (powerpc64-*-linux*): Always build biarch.
2358
2359 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2360
2361         PR c/39613
2362         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
2363         it and pedwarn if this results in an INTEGER_CST.
2364
2365 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2366
2367         * doc/install.texi: Update minimum GMP version.  Remove obsolete
2368         text in MPFR section.
2369
2370 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2371
2372         * dwarf2out.c (class_scope_p): New static inline.
2373         (class_or_namespace_scope_p): Use it.
2374         (gen_variable_die): Use DW_TAG_member tag for static data member
2375         declarations instead of DW_TAG_variable.
2376
2377         PR middle-end/39573
2378         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
2379         variables.
2380
2381 2009-04-08  Richard Guenther  <rguenther@suse.de>
2382
2383         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
2384         valueize random data.
2385
2386 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
2387
2388         * config.gcc (aix tm_file):  Add aix-stdint.h.
2389         (aix tm clause use_gcc_stdint):  Set to wrap.
2390         * config/rs6000/aix-stdint.h:  New file.
2391
2392 2009-04-08  Richard Guenther  <rguenther@suse.de>
2393
2394         PR middle-end/36291
2395         * tree-dfa.c (add_referenced_var): Do not recurse into
2396         global initializers.
2397         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
2398         exposed variables.
2399         (fold_const_aggregate_ref): Likewise.
2400
2401 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2402
2403         * recog.c (ordered_comparison_operator): New.
2404         * gensupport.c (std_preds): Add it.
2405         * doc/md.texi (Machine-Independent Predicates): Document it.
2406
2407 2009-04-08  Jan Hubicka  <jh@suse.cz>
2408
2409         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
2410         * function.h (rtl_eh): Remove exception_handler_label_map.
2411         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
2412         remove_exception_handler_label, for_each_eh_label_1): Remove.
2413         (rtl_remove_unreachable_regions): Remove.
2414         (convert_from_eh_region_ranges): Do not remove unreachable regions.
2415         (find_exception_handler_labels): Don't build the hashtable.
2416         (maybe_remove_eh_handler): Remove.
2417         (for_each_eh_label): Rewrite to walk the tree.
2418         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
2419         * except.h (maybe_remove_eh_handler): Remove.
2420         * passes.c (init_optimization_passes): Schedule second EH cleanup
2421         before out-of-ssa.
2422         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
2423         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
2424
2425 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
2426
2427         * genoutput.c (validate_optab_operands): New.
2428         (gen_insn, gen_expand): Call it.
2429
2430         * genflags.c (gen_insn): Detect misused iterators.
2431         (main): Pass line_no to gen_insn, exit with status 1 on error.
2432
2433         * genextract.c (line_no): Make global.
2434         (VEC_safe_set_locstr): Change assertion to error message.
2435         (main): Exit with status 1 on error.
2436
2437 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
2438
2439         PR c/39614
2440         PR c/39673
2441         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2442         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2443         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
2444         * c-convert.c (convert): Do not call fold on results of conversion
2445         functions when the result is a C_MAYBE_CONST_EXPR.
2446         * c-parser.c (c_parser_postfix_expression): Do not fold condition
2447         of __builtin_choose_expr.
2448         * c-typeck.c (remove_c_maybe_const_expr): New.
2449         (build_unary_op, build_conditional_expr, build_compound_expr,
2450         build_binary_op, c_objc_common_truthvalue_conversion): Call
2451         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
2452         integer operands.
2453
2454 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
2455
2456         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
2457         CODE to produce a new one. Add a prototype to use fold_convert_const
2458
2459 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
2460
2461         PR bootstrap/39660
2462         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
2463         mix declarations and code.
2464
2465 2009-04-08  Ben Elliston  <bje@au.ibm.com>
2466
2467         * gcc.c: Replace `CC' with `GCC' throughout.
2468
2469 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
2470
2471         * doc/invoke.texi: Document Atom support.
2472
2473 2009-04-07  Jason Merrill  <jason@redhat.com>
2474
2475         PR c++/25185
2476         * c-common.h, c-common.c: Add flag_pretty_templates.
2477         * c-opts.c (c_common_handle_option): Set it.
2478         * c.opt: Add -fno-pretty-templates.
2479         * doc/invoke.texi (C++ Dialect Options): Likewise.
2480
2481 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
2484         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
2485         (ia64_expand_builtin): Likewise.
2486
2487 2009-04-07  Martin Jambor  <mjambor@suse.cz>
2488
2489         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
2490         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
2491         ADDR_EXPRS are include too.
2492
2493 2009-04-07  Richard Guenther  <rguenther@suse.de>
2494
2495         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
2496         decls are only used if passes as parameters or if they are
2497         local statics and the call is not to a builtin.
2498         (call_may_clobber_ref_p_1): Likewise.
2499
2500 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2501
2502         * expr.c (do_store_flag): Remove last argument.  Simplify code
2503         to avoid duplication of tests already done by can_compare_p.
2504         (expand_expr_real_1): Adjust caller.
2505
2506 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2507
2508         * optabs.c (can_compare_p): Test the predicate of a
2509         cbranch and cstore pattern.
2510
2511 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2512
2513         * expr.c (convert_move): Use emit_store_flag instead of
2514         "emulating" it.
2515
2516 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
2517
2518         * config/i386/i386.c (ix86_compare_emitted): Remove.
2519         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
2520         ix86_compare_op0 like ix86_compare_emitted used to be handled.
2521         * config/i386/i386.h (ix86_compare_emitted): Remove.
2522         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
2523         instead of ix86_compare_emitted.
2524         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
2525
2526 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
2527
2528         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
2529         Add t-sysroot-suffix to tmake_file.
2530         * config/print-sysroot-suffix.sh: New file.
2531         * config/t-sysroot-suffix: New file.
2532
2533 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2534
2535         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
2536         as the latter produces a warning when the target does not support
2537         infinity.
2538
2539 2009-04-07  Ben Elliston  <bje@au.ibm.com>
2540
2541         * dfp.c: Replace type punning assignments with memcpy throughout.
2542         * Makefile.in (dfp.o-warn): Remove.
2543
2544 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
2545
2546         PR target/39634
2547         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
2548         Include soft-fp/t-softfp after rs6000/t-linux64.
2549
2550 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2551
2552         * stor-layout.c (set_sizetype): Use the full precision of their
2553         machine mode for bitsize types.
2554
2555 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
2556
2557         * config/i386/i386.md: Revert 2 accidental checkins.
2558
2559 2009-04-06  Joey Ye  <joey.ye@intel.com>
2560             Xuepeng Guo <xuepeng.guo@intel.com>
2561             H.J. Lu  <hongjiu.lu@intel.com>
2562
2563         Atom pipeline model, tuning and insn selection.
2564         * config.gcc (atom): Add atom config options and target.
2565
2566         * config/i386/atom.md: New.
2567
2568         * config/i386/i386.c (atom_cost): New cost.
2569         (m_ATOM): New macro flag.
2570         (initial_ix86_tune_features): Set m_ATOM.
2571         (x86_accumulate_outgoing_args): Likewise.
2572         (x86_arch_always_fancy_math_387): Likewise.
2573         (processor_target): Add Atom cost.
2574         (cpu_names): Add Atom cpu name.
2575         (override_options): Set Atom ISA.
2576         (ix86_issue_rate): New case PROCESSOR_ATOM.
2577         (ix86_adjust_cost): Likewise.
2578
2579         * config/i386/i386.h (TARGET_ATOM): New target macro.
2580         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
2581         (TARGET_OPT_AGU): New target option.
2582         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
2583         (processor_type): Add PROCESSOR_ATOM.
2584
2585         * config/i386/i386.md (cpu): Add new value "atom".
2586         (use_carry, movu): New attr.
2587         (atom.md): Include atom.md.
2588         (adddi3_carry_rex64): Set attr "use_carry".
2589         (addqi3_carry): Likewise.
2590         (addhi3_carry): Likewise.
2591         (addsi3_carry): Likewise.
2592         (*addsi3_carry_zext): Likewise.
2593         (subdi3_carry_rex64): Likewise.
2594         (subqi3_carry): Likewise.
2595         (subhi3_carry): Likewise.
2596         (subsi3_carry): Likewise.
2597         (x86_movdicc_0_m1_rex64): Likewise.
2598         (*x86_movdicc_0_m1_se): Likewise.
2599         (x86_movsicc_0_m1): Likewise.
2600         (*x86_movsicc_0_m1_se): Likewise.
2601         (*adddi_1_rex64): Emit add insn as much as possible.
2602         (*addsi_1): Likewise.
2603         (return_internal): Set atom_unit.
2604         (return_internal_long): Likewise.
2605         (return_pop_internal): Likewise.
2606         (*rcpsf2_sse): Set atom_sse_attr attr.
2607         (*qrt<mode>2_sse): Likewise.
2608         (*prefetch_sse): Likewise.
2609
2610         * config/i386/i386-c.c (ix86_target_macros_internal): New case
2611         PROCESSOR_ATOM.
2612         (ix86_target_macros_internal): Likewise.
2613
2614         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
2615         (*prefetch_sse_rex): Likewise.
2616         (sse_rcpv4sf2): Likewise.
2617         (sse_vmrcpv4sf2): Likewise.
2618         (sse_sqrtv4sf2): Likewise.
2619         (<sse>_vmsqrt<mode>2): Likewise.
2620         (sse_ldmxcsr): Likewise.
2621         (sse_stmxcsr): Likewise.
2622         (*sse_sfence): Likewise.
2623         (sse2_clflush): Likewise.
2624         (*sse2_mfence): Likewise.
2625         (*sse2_lfence): Likewise.
2626         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
2627         (<sse>_movup<ssemodesuffixf2c>): Likewise.
2628         (avx_movdqu<avxmodesuffix>): Likewise.
2629         (avx_lddqu<avxmodesuffix>): Likewise.
2630         (sse2_movntv2di): Change attr "type" to "ssemov".
2631         (sse2_movntsi): Likewise.
2632         (rsqrtv8sf2): Change attr "type" to "sseadd".
2633         (sse3_addsubv2df3): Set attr "atom_unit".
2634         (sse3_h<plusminus_insn>v4sf3): Likewise.
2635         (*sse2_pmaddwd): Likewise.
2636         (*vec_extractv2di_1_rex64): Likewise.
2637         (*vec_extractv2di_1_avx): Likewise.
2638         (sse2_psadbw): Likewise.
2639         (ssse3_phaddwv8hi3): Likewise.
2640         (ssse3_phaddwv4hi3): Likewise.
2641         (ssse3_phadddv4si3): Likewise.
2642         (ssse3_phadddv2si3): Likewise.
2643         (ssse3_phaddswv8hi3): Likewise.
2644         (ssse3_phaddswv4hi3): Likewise.
2645         (ssse3_phsubwv8hi3): Likewise.
2646         (ssse3_phsubwv4hi3): Likewise.
2647         (ssse3_phsubdv4si3): Likewise.
2648         (ssse3_phsubdv2si3): Likewise.
2649         (ssse3_phsubswv8hi3): Likewise.
2650         (ssse3_phsubswv4hi3): Likewise.
2651         (ssse3_pmaddubsw128): Likewise.
2652         (sse3_pmaddubsw: Likewise.
2653         (ssse3_palignrti): Likewise.
2654         (ssse3_palignrdi): Likewise.
2655
2656 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
2657
2658         * doc/install.texi (Specific): Fix two cross-references to MinGW.
2659
2660 2009-04-06  Richard Guenther  <rguenther@suse.de>
2661
2662         PR tree-optimization/28868
2663         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
2664         of which PHI results we inserted.
2665         (insert_into_preds_of_block): Record inserted PHIs.
2666         (eliminate): Eliminate redundant PHI nodes.
2667         (init_pre): Init inserted_phi_names.
2668
2669 2009-04-06  Richard Guenther  <rguenther@suse.de>
2670
2671         PR tree-optimization/39643
2672         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
2673         IMAGPART_EXPRs of complex constants.
2674         (execute_fold_all_builtins): If we folded a call queue
2675         TODO_update_address_taken.
2676
2677 2009-04-06  Jan Hubicka  <jh@suse.cz>
2678
2679         PR middle-end/39659
2680         * except.c (remove_unreachable_regions): Propagate may_contain_throw
2681         flag.
2682
2683 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
2684
2685         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
2686         delay slot.
2687         (ic_invalidate_array): Likewise.
2688
2689 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
2690
2691         * calls.c (emit_library_call_value_1): Fix a problem with parameter
2692         alignment for library calls.
2693
2694 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
2695
2696         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
2697         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
2698         * config/i386/mingw-stdint.h:  New file.
2699
2700 2009-04-05  Richard Guenther  <rguenther@suse.de>
2701
2702         PR tree-optimization/39648
2703         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
2704         our &A vs. &A[0] IL deficiencies.
2705
2706 2009-04-04  Jan Hubicka  <jh@suse.cz>
2707
2708         * except.c (sjlj_find_directly_reachable_regions): Be ready for
2709         removed toplevel regions.
2710         (sjlj_mark_call_sites): Likewise.
2711
2712 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
2713
2714         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
2715         (cygwin tm clause use_gcc_stdint):  Set to wrap.
2716         * config/i386/cygwin-stdint.h:  New file.
2717
2718 2009-04-04  Richard Guenther  <rguenther@suse.de>
2719
2720         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
2721         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
2722         single-argument PHIs if we are in loop-closed SSA form.
2723         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
2724         for the pre-condition.
2725         (slpeel_tree_peel_loop_to_edge): Likewise.
2726         (vect_build_loop_niters): Take an optional sequence to append stmts.
2727         (vect_generate_tmps_on_preheader): Likewise.
2728         (vect_do_peeling_for_loop_bound): Take extra guards for the
2729         pre-condition.
2730         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
2731         the cost model check.
2732         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
2733         guards if we are going to peel.  Do not apply versioning in that case.
2734         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
2735         (vect_do_peeling_for_loop_bound): Likewise.
2736         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
2737         loop bound only record extra pre-conditions, do not apply loop
2738         versioning.
2739
2740 2009-04-04  Richard Guenther  <rguenther@suse.de>
2741
2742         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
2743         renaming code.
2744
2745 2009-04-04  Jan Hubicka  <jh@suse.cz>
2746
2747         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
2748         last_basic_block for size of bb->index indexed array.
2749         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
2750         compute_out, link_btr_uses, build_btr_def_use_webs,
2751         build_btr_def_use_webs, migrate_btr_defs): Likewise.
2752
2753 2009-04-04  Jan Hubicka  <jh@suse.cz>
2754
2755         * except.c (remove_eh_handler_and_replace): Break out from ...
2756         (remove_eh_handler): ... here.
2757         (bring_to_root): New function.
2758         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
2759         handled ones, bring others to root of tree.
2760
2761 2009-04-04  Jan Hubicka  <jh@suse.cz>
2762
2763         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
2764         (all_phis_safe_to_merge): New function.
2765         (update_info): New structure.
2766         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
2767         (cleanup_empty_eh): Update SSA if possible.
2768
2769 2009-04-04  Richard Guenther  <rguenther@suse.de>
2770
2771         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
2772         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
2773         (append_vuse): Likewise.
2774
2775 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
2776
2777         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
2778         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
2779         instead of REG_UNSAVED for DW_CFA_undefined.
2780         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
2781         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
2782         outermost frame.
2783
2784 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
2785
2786         PR target/39501
2787         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
2788         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
2789         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
2790
2791 2009-04-04  Richard Guenther  <rguenther@suse.de>
2792
2793         PR tree-optimization/8781
2794         PR tree-optimization/37892
2795         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
2796         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
2797         (valueize_refs): Call it for *& valueizations.
2798         (shared_reference_ops_from_ref): Rename to ...
2799         (valueize_shared_reference_ops_from_ref): ... this and valueize.
2800         (shared_reference_ops_from_call): Rename to ...
2801         (valueize_shared_reference_ops_from_call): ... this and valueize.
2802         (vn_reference_lookup): Update.
2803         (visit_reference_op_call): Likewise.
2804         * tree-ssa-pre.c (phi_translate_1): Fold *&.
2805         (eliminate): Value-replace the call address in call statements.
2806
2807 2009-04-04  Richard Guenther  <rguenther@suse.de>
2808
2809         PR tree-optimization/39636
2810         * tree-ssa-forwprop.c
2811         (forward_propagate_addr_into_variable_array_index): Check for
2812         GIMPLE_ASSIGN before accessing the rhs code.
2813
2814 2009-04-03  Jason Merrill  <jason@redhat.com>
2815
2816         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
2817
2818 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
2819
2820         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
2821         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
2822         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
2823         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
2824         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
2825         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
2826         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
2827         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
2828         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
2829         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
2830         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
2831         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
2832         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
2833         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
2834         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
2835         Use fr_reg_or_fp01_operand instead of fr_register_operand
2836
2837         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
2838         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
2839         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
2840
2841 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
2842
2843         PR rtl-optimization/39607
2844         PR rtl-optimization/39631
2845
2846         Revert:
2847
2848         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2849         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2850         instead of DF_LR_OUT.
2851         * ira-lives.c (process_bb_node_lives): Ditto.
2852         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2853         instead of DF_LR_{OUT,IN}.
2854         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2855         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2856
2857 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
2858
2859         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
2860         (execute_lower_omp): Always run but take the short way out if -fopenmp
2861         is not given.
2862         (gate_lower_omp): Remove, forcing the pass manager to always run the
2863         pass and always set PROP_gimple_lomp.
2864         (pass_lower_omp): Remove gate function.
2865         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
2866         PROP_trees.  Instead, require it.
2867         * ipa-cp.c (pass_ipa_cp): Likewise.
2868         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
2869         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
2870         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
2871         and PROP_gimple_leh.
2872
2873 2009-04-03  Richard Guenther  <rguenther@suse.de>
2874
2875         PR middle-end/13146
2876         PR tree-optimization/23940
2877         PR tree-optimization/33237
2878         PR middle-end/33974
2879         PR middle-end/34093
2880         PR tree-optimization/36201
2881         PR tree-optimization/36230
2882         PR tree-optimization/38049
2883         PR tree-optimization/38207
2884         PR tree-optimization/38230
2885         PR tree-optimization/38301
2886         PR tree-optimization/38585
2887         PR middle-end/38895
2888         PR tree-optimization/38985
2889         PR tree-optimization/39299
2890         * tree-ssa-structalias.h: Remove.
2891         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
2892         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
2893         (struct vuse_element_d): Remove.
2894         (struct vuse_vec_d): Likewise.
2895         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
2896         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
2897         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
2898         VUSE_ELEMENT_VAR): Likewise.
2899         (struct voptype_d): Likewise.
2900         (NUM_VOP_FREE_BUCKETS): Likewise.
2901         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
2902         (struct stmt_operands_d): Remove.
2903         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
2904         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
2905         VDEF_NUM, VDEF_VECT): Likewise.
2906         (copy_virtual_operands): Remove.
2907         (operand_build_cmp): Likewise.
2908         (create_ssa_artificial_load_stmt): Likewise.
2909         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
2910         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
2911         vuse_index and mayuse_index members.  Pack and move done and iter_type
2912         members to the front.
2913         (SSA_OP_VMAYUSE): Remove.
2914         (SSA_OP_VIRTUAL_USES): Adjust.
2915         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
2916         (unlink_stmt_vdef): Declare.
2917         (add_to_addressable_set): Remove.
2918         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
2919         (vrp_visit_stmt): Likewise.
2920         * doc/tree-ssa.texi (Alias analysis): Update.
2921         * doc/invoke.texi (max-aliased-vops): Remove docs.
2922         (avg-aliased-vops): Likewise.
2923         * tree-into-ssa.c (syms_to_rename): Remove.
2924         (need_to_update_vops_p): Likewise.
2925         (need_to_initialize_update_ssa_p): Rename to ...
2926         (update_ssa_initialized_fn): ... this.  Track function we are
2927         initialized for.
2928         (symbol_marked_for_renaming): Simplify.
2929         (add_new_name_mapping): Do not set need_to_update_vops_p.
2930         (dump_currdefs): Use SYMS_TO_RENAME.
2931         (rewrite_update_stmt): Always walk all uses/defs.
2932         (dump_update_ssa): Adjust.
2933         (init_update_ssa): Take function argument.  Track what we are
2934         initialized for.
2935         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
2936         (create_new_def_for): Initialize for cfun, assert we are initialized
2937         for cfun.
2938         (mark_sym_for_renaming): Simplify.
2939         (mark_set_for_renaming): Do not initialize update-ssa.
2940         (need_ssa_update_p): Simplify.  Take function argument.
2941         (name_mappings_registered_p): Assert we ask for the correct function.
2942         (name_registered_for_update_p): Likewise.
2943         (ssa_names_to_replace): Likewise.
2944         (release_ssa_name_after_update_ssa): Likewise.
2945         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
2946         (dump_decl_set): Do not print a newline.
2947         (debug_decl_set): Do it here.
2948         (dump_update_ssa): And here.
2949         * tree-ssa-loop-im.c (move_computations): Adjust.
2950         (movement_possibility): Likewise.
2951         (determine_max_movement): Likewise.
2952         (gather_mem_refs_stmt): Likewise.
2953         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
2954         or NAME_MEMORY_TAG.
2955         * tree-complex.c (update_all_vops): Remove.
2956         (expand_complex_move): Adjust.
2957         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
2958         Simplify test for memory referencing statement.  Exclude
2959         non-invariant ADDR_EXPRs.
2960         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
2961         * tree-loop-distribution.c (generate_memset_zero): Adjust.
2962         (rdg_flag_uses): Likewise.
2963         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
2964         related code.
2965         (tree_optimize_tail_calls_1): Also split the
2966         edge from the entry block if we have degenerate PHI nodes in
2967         the first basic block.
2968         * tree.c (init_ttree): Remove memory-tag related code.
2969         (tree_code_size): Likewise.
2970         (tree_node_structure): Likewise.
2971         (build7_stat): Re-write to be build6_stat.
2972         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
2973         (SSA_VAR_P): Adjust.
2974         (struct tree_memory_tag): Remove.
2975         (struct tree_memory_partition_tag): Likewise.
2976         (union tree_node): Adjust.
2977         (build7): Re-write to be build6.
2978         * tree-pass.h (pass_reset_cc_flags): Remove.
2979         (TODO_update_address_taken): New flag.
2980         (pass_simple_dse): Remove.
2981         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
2982         * params.h (MAX_ALIASED_VOPS): Remove.
2983         (AVG_ALIASED_VOPS): Likewise.
2984         * omp-low.c (expand_omp_taskreg): Update SSA form.
2985         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
2986         aliases the lhs in a copy stmt.
2987         * tree-ssa-dse.c (struct address_walk_data): Remove.
2988         (memory_ssa_name_same): Likewise.
2989         (memory_address_same): Likewise.
2990         (get_kill_of_stmt_lhs): Likewise.
2991         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
2992         unused stores.  Look through PHI nodes into post-dominated regions.
2993         (dse_optimize_stmt): Simplify.  Properly remove stores.
2994         (tree_ssa_dse): Compute dominators.
2995         (execute_simple_dse): Remove.
2996         (pass_simple_dse): Likewise.
2997         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
2998         gimple_loaded_syms and gimple_stored_syms computation.
2999         * toplev.c (dump_memory_report): Dump alias and pta stats.
3000         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
3001         (vn_reference_eq): Likewise.
3002         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
3003         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
3004         valueize_vuses): Remove.
3005         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
3006         (get_def_ref_stmt_vuse): ... this.
3007         (vn_reference_lookup_2): New function.
3008         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
3009         walking equivalent vuses.  Simplify.
3010         (vn_reference_lookup): Likewise.
3011         (vn_reference_insert): Likewise.
3012         (vn_reference_insert_pieces): Likewise.
3013         (visit_reference_op_call): Simplify.
3014         (visit_reference_op_load): Likewise.
3015         (visit_reference_op_store): Likewise.
3016         (init_scc_vn): Remove shared_lookup_vuses initialization.
3017         (free_scc_vn): Remove shared_lookup_vuses freeing.
3018         (sort_vuses, sort_vuses_heap): Remove.
3019         (get_ref_from_reference_ops): Export.
3020         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
3021         vector with single vuse pointer.
3022         (vn_reference_lookup_pieces, vn_reference_lookup,
3023         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
3024         (shared_vuses_from_stmt): Remove.
3025         (get_ref_from_reference_ops): Declare.
3026         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
3027         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3028         memory-tag related code.
3029         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
3030         (likely_value): Add comment, skip static-chain of call statements.
3031         (surely_varying_stmt_p): Adjust.
3032         (gimplify_and_update_call_from_tree): Likewise.
3033         (execute_fold_all_builtins): Do not rebuild alias info.
3034         (gimplify_and_update_call_from_tree): Properly update VOPs.
3035         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
3036         (copy_ref_info): Remove memory-tag related code.
3037         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
3038         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
3039         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
3040         computation.
3041         * tree-ssa-dom.c (gimple_p): Remove typedef.
3042         (eliminate_redundant_computations): Adjust.
3043         (record_equivalences_from_stmt): Likewise.
3044         (avail_expr_hash): Likewise.
3045         (avail_expr_eq): Likewise.
3046         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
3047         (stmt_makes_single_load): Likewise.
3048         (stmt_makes_single_store): Likewise.
3049         * tree-ssa-alias.c: Rewrite completely.
3050         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
3051         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
3052         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
3053         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
3054         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
3055         Remove public functions.
3056         (pass_reset_cc_flags): Remove.
3057         (pass_build_alias): Move ...
3058         * tree-ssa-structalias.c (pass_build_alias): ... here.
3059         * tree-ssa-alias.c (may_be_aliased): Move ...
3060         * tree-flow-inline.h (may_be_aliased): ... here.
3061         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
3062         count_uses_and_derefs): Move ...
3063         * gimple.c: ... here.
3064         * gimple.h (count_uses_and_derefs): Declare.
3065         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
3066         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
3067         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
3068         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
3069         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
3070         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
3071         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
3072         New functions.
3073         * tree-dfa.c (refs_may_alias_p): Move ...
3074         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
3075         * tree-ssa-alias.h: New file.
3076         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
3077         (statement_sink_location): Likewise.
3078         * opts.c (decode_options): Do not adjust max-aliased-vops or
3079         avg-aliased-vops values.
3080         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
3081         (TV_CALL_CLOBBER): Likewise.
3082         (TV_FLOW_SENSITIVE): Likewise.
3083         (TV_FLOW_INSENSITIVE): Likewise.
3084         (TV_MEMORY_PARTITIONING): Likewise.
3085         (TV_ALIAS_STMT_WALK): New timevar.
3086         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
3087         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
3088         (get_address_description): Remove memory-tag related code.
3089         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
3090         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
3091         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
3092         and immediate uses in statements.  Document.
3093         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
3094         (dump_symbols): Remove.
3095         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
3096         * alias.c (get_deref_alias_set): New function split out from ...
3097         (get_alias_set): ... here.
3098         * alias.h (get_deref_alias_set): Declare.
3099         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
3100         type parameter.  Remove restrict pointer handling.  Create a
3101         ref-all pointer in case type-based alias sets do not conflict.
3102         (vect_analyze_data_refs): Remove SMT related code.
3103         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
3104         (vectorizable_load): Likewise.
3105         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
3106         (DR_SYMBOL_TAG, DR_VOPS): Remove.
3107         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
3108         Ignore vops and SMTs.
3109         (dr_analyze_alias): Likewise..
3110         (free_data_ref): Likewise.
3111         (create_data_ref): Likewise.
3112         (analyze_all_data_dependences): Likewise.
3113         (get_references_in_stmt): Adjust.
3114         * tree-flow-inline.h (gimple_aliases_computed_p,
3115         gimple_addressable_vars, gimple_call_clobbered_vars,
3116         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
3117         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
3118         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
3119         gimple_mem_ref_stats): Remove.
3120         (gimple_vop): New function.
3121         (op_iter_next_use): Remove vuses and mayuses cases.
3122         (op_iter_next_def): Remove vdefs case.
3123         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
3124         (clear_and_done_ssa_iter): Do not set removed fields.
3125         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
3126         Assert we are not iterating over vuses or vdefs if not also
3127         iterating over uses or defs.
3128         (op_iter_init_use): Likewise.
3129         (op_iter_init_def): Likewise.
3130         (op_iter_next_vdef): Remove.
3131         (op_iter_next_mustdef): Likewise.
3132         (op_iter_init_vdef): Likewise.
3133         (compare_ssa_operands_equal): Likewise.
3134         (link_use_stmts_after): Handle vuse operand.
3135         (is_call_used): Use is_call_clobbered.
3136         (is_call_clobbered): Global variables are always call clobbered,
3137         query the call-clobbers bitmap.
3138         (mark_call_clobbered): Ignore global variables.
3139         (clear_call_clobbered): Likewise.
3140         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
3141         virtual operands sanity check.
3142         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
3143         Remove.
3144         (TARGET_MEM_REF): Remove TMR_TAG operand.
3145         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
3146         Remove call-clobber related code.
3147         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
3148         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
3149         partitions or escape reason.
3150         (get_single_def_stmt, get_single_def_stmt_from_phi,
3151         get_single_def_stmt_with_phi): Remove.
3152         (dump_referenced_vars): Tidy.
3153         (get_ref_base_and_extent): Allow bare decls.
3154         (collect_dfa_stats): Adjust.
3155         * graphite.c (rename_variables_in_stmt): Adjust.
3156         (graphite_copy_stmts_from_block): Likewise.
3157         (translate_clast): Likewise.
3158         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
3159         (EXPR_DIES): New.
3160         (translate_vuse_through_block): Use the oracle.
3161         (phi_translate_1): Adjust.
3162         (value_dies_in_block_x): Use the oracle.  Cache the outcome
3163         in EXPR_DIES.
3164         (valid_in_sets): Check if the VUSE for
3165         a REFERENCE is available.
3166         (eliminate): Do not remove stmts during elimination,
3167         instead queue and remove them afterwards.
3168         (do_pre): Do not rebuild alias info.
3169         (pass_pre): Run TODO_rebuild_alias before PRE.
3170         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
3171         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
3172         (mark_all_v_defs_stmt): Remove.
3173         (mark_all_v_defs_seq): Adjust.
3174         (sra_replace): Likewise.
3175         (scalarize_use): Likewise.
3176         (scalarize_copy): Likewise.
3177         (scalarize_init): Likewise.
3178         (scalarize_ldst): Likewise.
3179         (todoflags): Remove.
3180         (tree_sra): Do not rebuild alias info.
3181         (tree_sra_early): Adjust.
3182         (pass_sra): Run TODO_update_address_taken before SRA.
3183         * tree-predcom.c (set_alias_info): Remove.
3184         (prepare_initializers_chain): Do not call it.
3185         (mark_virtual_ops_for_renaming): Adjust.
3186         (mark_virtual_ops_for_renaming_list): Remove.
3187         (initialize_root_vars): Adjust.
3188         (initialize_root_vars_lm): Likewise.
3189         (prepare_initializers_chain): Likewise.
3190         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
3191         (may_propagate_copy_into_stmt): Likewise.
3192         (merge_alias_info): Do nothing for now.
3193         (propagate_tree_value_into_stmt): Adjust.
3194         (stmt_may_generate_copy): Likewise.
3195         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
3196         not mark symbols for renaming.
3197         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
3198         with the same statement, make sure to update the new pointed-to one.
3199         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
3200         call statements, do not mark symbols for renaming.
3201         (mark_operand_necessary): Dump something.
3202         (ref_may_be_aliased): New function.
3203         (mark_aliased_reaching_defs_necessary_1): New helper function.
3204         (mark_aliased_reaching_defs_necessary): Likewise.
3205         (mark_all_reaching_defs_necessary_1): Likewise.
3206         (mark_all_reaching_defs_necessary): Likewise.
3207         (propagate_necessity): Do not process virtual PHIs.  For
3208         non-aliased loads mark all reaching definitions as necessary.
3209         For aliased loads and stores mark the immediate dominating
3210         aliased clobbers as necessary.
3211         (visited): New global static.
3212         (perform_tree_ssa_dce): Free visited bitmap after propagating
3213         necessity.
3214         (remove_dead_phis): Perform simple dead virtual PHI removal.
3215         (remove_dead_stmt): Properly unlink virtual operands when
3216         removing stores.
3217         (eliminate_unnecessary_stmts): Schedule PHI removal after
3218         stmt removal.
3219         * tree-ssa-ter.c (is_replaceable_p): Adjust.
3220         (process_replaceable): Likewise.
3221         (find_replaceable_in_bb): Likewise.
3222         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
3223         based on the single gimple vop.
3224         (verify_flow_insensitive_alias_info): Remove.
3225         (verify_flow_sensitive_alias_info): Likewise.
3226         (verify_call_clobbering): Likewise.
3227         (verify_memory_partitions): Likewise.
3228         (verify_alias_info): Likewise.
3229         (verify_ssa): Adjust..
3230         (execute_update_addresses_taken): Export.  Update SSA
3231         manually.  Optimize only when optimizing.  Use a local bitmap.
3232         (pass_update_address_taken): Remove TODO_update_ssa, add
3233         TODO_dump_func.
3234         (pass_update_address_taken): Just use TODO_update_address_taken.
3235         (init_tree_ssa): Do not initialize addressable_vars.
3236         (verify_ssa): Verify new VUSE / VDEF properties.
3237         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
3238         Do not call verify_alias_info.
3239         (delete_tree_ssa): Clear the VUSE, VDEF operands.
3240         Do not free the loaded and stored syms bitmaps.  Reset the escaped
3241         and callused solutions.  Do not free addressable_vars.
3242         Remove memory-tag related code.
3243         (warn_uninitialized_var): Aliases are always available.
3244         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
3245         * lambda-code.c (can_put_in_inner_loop): Adjust.
3246         (can_put_after_inner_loop): Likewise.
3247         (perfect_nestify): Likewise.
3248         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
3249         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
3250         (vectorizable_conversion): Do not mark symbols for renaming.
3251         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
3252         (expand_call_inline): Unlink the calls virtual operands before
3253         replacing it.
3254         (tree_function_versioning): Do not call update_ssa if we are not
3255         updating clones.  Simplify.
3256         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
3257         (propagate_with_phi): Likewise..
3258         * tree-outof-ssa.c (create_temp): Remove memory tag and call
3259         clobber code.  Assert we are not aliased or global.
3260         * tree-flow.h: Include tree-ssa-alias.h
3261         (enum escape_type): Remove.
3262         (struct mem_sym_stats_d): Likewise.
3263         (struct mem_ref_stats_d): Likewise.
3264         (struct gimple_df): Add vop member.  Remove global_var,
3265         call_clobbered_vars, call_used_vars, addressable_vars,
3266         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
3267         escaped and callused members.
3268         (struct ptr_info_def): Remove all members, add points-to solution
3269         member pt.
3270         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
3271         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
3272         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
3273         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
3274         (tree-ssa-alias.o): Likewise.
3275         (toplev.o): Add tree-ssa-alias.h
3276         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
3277         * gimple.c (gimple_set_bb): Fix off-by-one error.
3278         (is_gimple_reg): Do not handle memory tags.
3279         (gimple_copy): Also copy virtual operands.
3280         Delay updating the statement.  Do not reset loaded and stored syms.
3281         (gimple_set_stored_syms): Remove.
3282         (gimple_set_loaded_syms): Likewise.
3283         (gimple_call_copy_skip_args): Copy the virtual operands
3284         and mark the new statement modified.
3285         * tree-ssa-structalias.c (may_alias_p): Remove.
3286         (set_uids_in_ptset): Take the alias set to prune with as
3287         parameter.  Fold in the alias test of may_alias_p.
3288         (compute_points_to_sets): Compute whether a ptr is dereferenced
3289         in a local sbitmap.
3290         (process_constraint): Deal with &ANYTHING on the lhs, reject all
3291         other ADDRESSOF constraints on the lhs.
3292         (get_constraint_for_component_ref): Assert that we don't get
3293         ADDRESSOF constraints from the base of the reference.
3294         Properly generate UNKNOWN_OFFSET for DEREF if needed.
3295         (struct variable_info): Remove collapsed_to member.
3296         (get_varinfo_fc): Remove.
3297         (new_var_info): Do not set collapsed_to.
3298         (dump_constraint): Do not follow cycles.
3299         (dump_constraint_graph): Likewise.
3300         (build_pred_graph): Likewise.
3301         (build_succ_graph): Likewise.
3302         (rewrite_constraints): Likewise.
3303         (do_simple_structure_copy): Remove.
3304         (do_rhs_deref_structure_copy): Remove.
3305         (do_lhs_deref_structure_copy): Remove.
3306         (collapse_rest_of_var): Remove.
3307         (do_structure_copy): Re-implement.
3308         (pta_stats): New global variable.
3309         (dump_pta_stats): New function.
3310         (struct constraint_expr): Make offset signed.
3311         (UNKNOWN_OFFSET): Define special value.
3312         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
3313         (solution_set_expand): New helper function split out from ...
3314         (do_sd_constraint): ... here.
3315         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
3316         (do_ds_constraint): Likewise.
3317         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
3318         and CALLUSED = *CALLUSED.
3319         (set_union_with_increment): Make inc argument signed.
3320         (type_safe): Remove.
3321         (get_constraint_for_ptr_offset): Handle unknown and negative
3322         constant offsets.
3323         (first_vi_for_offset): Handle offsets before start.  Bail
3324         out early for offsets beyond the variable extent.
3325         (first_or_preceding_vi_for_offset): New function.
3326         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
3327         Together with ESCAPED = *ESCAPED this properly computes reachability.
3328         (find_what_var_points_to): New function.
3329         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
3330         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
3331         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
3332         pt_solutions_intersect): New functions.
3333         (compute_call_used_vars): Remove.
3334         (compute_may_aliases): New main entry into PTA computation.
3335         * gimple.h (gimple_p): New typedef.
3336         (struct gimple_statement_base): Remove references_memory_p.
3337         (struct gimple_statement_with_memory_ops_base): Remove
3338         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
3339         members.
3340         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
3341         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
3342         gimple_set_references_memory): Remove.
3343         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
3344         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
3345         New functions.
3346         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
3347         (verify_expr): Allow RESULT_DECL.
3348         (gimple_duplicate_bb): Do not copy virtual operands.
3349         (gimple_duplicate_sese_region): Adjust.
3350         (gimple_duplicate_sese_tail): Likewise.
3351         (mark_virtual_ops_in_region): Remove.
3352         (move_sese_region_to_fn): Do not call it.
3353         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
3354         and pass_simple_dse.
3355         (execute_function_todo): Handle TODO_update_address_taken,
3356         call execute_update_addresses_taken for TODO_rebuild_alias.
3357         (execute_todo): Adjust.
3358         (execute_one_pass): Init dump files early.
3359         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
3360         call-clobbered.
3361         (create_general_new_stmt): Clear vops.
3362         * tree-ssa-reassoc.c (get_rank): Adjust.
3363         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
3364         symbols for renaming.
3365         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
3366         (PARAM_AVG_ALIASED_VOPS): Likewise.
3367         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
3368         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
3369         * tree-ssa-operands.c: Simplify for new virtual operand representation.
3370         (operand_build_cmp, copy_virtual_operands,
3371         create_ssa_artificial_load_stmt, add_to_addressable_set,
3372         gimple_add_to_addresses_taken): Remove public functions.
3373         (unlink_stmt_vdef): New function.
3374
3375 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3376
3377         * config.gcc (powerpc-*-linux*): Merge variants.
3378
3379 2009-04-02  Chao-ying Fu  <fu@mips.com>
3380             James Grosbach <james.grosbach@microchip.com>
3381
3382         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
3383         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
3384         cop0_sp_offset.
3385         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
3386         keep_interrupts_masked_p, use_debug_exception_return_p.
3387         (mips_attribute_table): Add interrupt, use_shadow_register_set,
3388         keep_interrupts_masked, use_debug_exception_return.
3389         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
3390         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
3391         New functions.
3392         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
3393         (mips_print_operand): Process COP0 registers to print $0 .. $31
3394         correctly for GAS to process.
3395         (mips_interrupt_extra_call_saved_reg_p): New function.
3396         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
3397         extra registers.
3398         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
3399         (mips_compute_frame_info): Add supports for interrupt context that
3400         includes doubleword accumulators and COP0 registers.
3401         (mips_for_each_saved_acc): New function.
3402         (mips_for_each_saved_gpr_and_fpr): Change the function name from
3403         mips_for_each_saved_reg.
3404         (mips_save_reg): Save accumulators.
3405         (mips_kernel_reg_p): A new for_each_rtx callback.
3406         (mips_expand_prologue): Support interrupt handlers.
3407         (mips_restore_reg): Restore accumulators.
3408         (mips_expand_epilogue): Support interrupt handlers.
3409         (mips_can_use_return_insn): Return false for interrupt handlers.
3410         (mips_epilogue_uses): New function.
3411         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
3412         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
3413         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
3414         cop0_move): New instructions.
3415         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
3416         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
3417         defines.
3418         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
3419         New defines.
3420         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
3421         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
3422         interrupt handlers, we use K0 as the temporary register.
3423         (EPILOGUE_USES): Change to a function call.
3424         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
3425         handlers, we use K0 as the temporary register.
3426
3427         * doc/extend.texi (Function Attributes): Document interrupt,
3428         use_shadow_register_set, keep_interrupts_masked,
3429         use_debug_exception_return for MIPS attributes.
3430
3431 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
3432
3433         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
3434         Remove a number of t-files from tmake_file.
3435         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
3436         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
3437         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
3438         target_prototype, not TARGET_PROTOTYPE.
3439         (LINK_OS_GNU_SPEC): Define.
3440         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
3441         and darwin-ldoubdle.c.
3442
3443 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3444
3445         PR driver/39293
3446         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
3447         (cpp_options): Ditto.
3448         (default_compilers): Ditto.
3449         (display_help): Ditto.
3450         (process_command): Ditto.
3451         (do_spec_1): Ditto.
3452         (set_input): Use lbasename instead of duplicate code.
3453         (save_temps_prefix): New static for -save-temps=obj.
3454         (save_temps_length): Ditto.
3455
3456         * doc/invoke.texi (-save-temps=obj): Document new variant to
3457         -save-temps switch.
3458
3459 2009-04-02  Jeff Law  <law@redhat.com>
3460
3461         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
3462         variable.
3463
3464 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3465
3466         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
3467         * configure: Regenerated.
3468
3469 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3470
3471         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
3472         share the argument list.
3473
3474 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3475
3476         Merge
3477
3478         2009-02-12  Diego Novillo  <dnovillo@google.com>
3479
3480         * varpool.c (debug_varpool): New.
3481         * cgraph.h (debug_varpool): Declare.
3482
3483 2009-04-02  Jan Hubicka  <jh@suse.cz>
3484
3485         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
3486         pass.
3487
3488 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
3489
3490         * config/i386/i386.c (ix86_abi): Move initialization to ...
3491         (override_options): Here.
3492
3493 2009-04-02  Christian Bruel  <christian.bruel@st.com>
3494
3495         * config/sh/sh.c (sh_dwarf_register_span): New function.
3496         (TARGET_DWARF_REGISTER_SPAN): Define.
3497         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
3498
3499 2009-04-02  Ira Rosen  <irar@il.ibm.com>
3500
3501         PR tree-optimization/39595
3502         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
3503         interleaved loads group is not  greater than the SLP group size.
3504
3505 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
3506
3507         * builtins.c (is_builtin_name): New.
3508         (called_as_built_in): Use is_builtin_name.
3509         * tree.h (is_builtin_name): New.
3510         * varasm.c (incorporeal_function_p): Use is_builtin_name
3511
3512 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
3513
3514         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
3515
3516 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
3517
3518         PR c++/26693
3519         * c-decl.c (clone_underlying_type): Move this ...
3520         * c-common.c (set_underlying_type): ... here.
3521         Also, make sure the function properly sets TYPE_STUB_DECL() on
3522         the newly created typedef variant type.
3523         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
3524         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
3525         points.
3526
3527 2009-04-02  Richard Guenther  <rguenther@suse.de>
3528
3529         PR tree-optimization/37221
3530         * tree-flow.h (degenerate_phi_result): Declare.
3531         * tree-ssa-dom.c (degenerate_phi_result): Export.
3532         * tree-scalar-evolution.c (analyze_initial_condition): If
3533         the initial condition is defined by a degenerate PHI node
3534         use the degenerate value.
3535
3536 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
3537
3538         PR rtl-optimization/39588
3539         * combine.c (merge_outer_ops): Do not set the constant when this
3540         is not necessary.
3541         (simplify_shift_const_1): Do not modify it either in this case.
3542
3543 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
3544
3545         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
3546         tuning is deprecated if -mtune value is set to an Itanium1 variant.
3547
3548 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
3549
3550         PR c/29027
3551         * c-lex.c (interpret_float): Default (no suffix) is double.
3552
3553 2009-04-1  Xinliang David Li  <davidxl@google.com>
3554
3555         * config/i386/i386.c (legitimate_constant_p): Recognize
3556         all one vector constant.
3557
3558 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3559
3560         * gcc/config/vax/vax.c: Add #includes to silence warnings.
3561         Change #include order to silence two warnings.
3562
3563 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3564
3565         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
3566         (ASM_SPEC): Pass -k to the assembler for PIC code.
3567
3568 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3569
3570         * gcc/config.gcc: Add vax-*-linux* to the switch.
3571         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
3572         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
3573
3574 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3575
3576         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
3577         Use predicate macros instead of GET_CODE() == foo.
3578         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
3579         ashlsi3, rotrsi3, <unnamed>): Likewise.
3580
3581 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3582
3583         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
3584         jbbccihi, jbbccisi): Remova trailing whitespace.
3585         * gcc/config/vax/constraints.md: Likewise.
3586         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3587         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
3588         * gcc/config/vax/predicates.md: Likewise.
3589         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
3590         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
3591         * gcc/config/vax/vax.h: Likewise.
3592         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
3593
3594 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3595
3596         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
3597         (indirectable_address_p, adjacent_operands_p): Add spaces around
3598         braces.
3599         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
3600
3601 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3602
3603         * gcc/config/vax/vax.c (legitimate_constant_address_p,
3604         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
3605         index_term_p, reg_plus_index_p, legitimate_address_p,
3606         vax_mode_dependent_address_p): Update comments to match functions
3607         modified by the recent int->bool conversion.
3608
3609 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3610
3611         * gcc/config/vax/builtins.md: Update copyright message.
3612         * gcc/config/vax/constraints.md: Likewise.
3613         * gcc/config/vax/netbsd-elf.h: Likewise.
3614         * gcc/config/vax/predicates.md: Likewise.
3615         * gcc/config/vax/vax-protos.h: Likewise.
3616         * gcc/config/vax/vax.c: Likewise.
3617         * gcc/config/vax/vax.h: Likewise.
3618         * gcc/config/vax/vax.md: Likewise.
3619         * gcc/config/vax/vax.opt: Likewise.
3620
3621 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
3622
3623         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
3624         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
3625         * gcc/config/vax/constraints.md (B, R): Likewise.
3626         * gcc/config/vax/predicates.md (external_memory_operand,
3627         nonimmediate_addsub_di_operand): Likewise.
3628         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
3629         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
3630         untyped_call): Likewise.
3631
3632 2009-04-01  Matt Thomas <matt@3am-software.com>
3633
3634         * config/vax/predicates.md: New file.
3635         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
3636         external_const_operand, nonsymbolic_operand, external_memory_operand,
3637         indirect_memory_operand, indexed_memory_operand,
3638         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
3639         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
3640         predicate.
3641         * config/vax/constraints.md: New file.
3642         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
3643         New constraint.
3644         * config/vax/builtins.md: New file.
3645         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
3646         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
3647         jbbccisi): Define.
3648         * config/vax/vax.opt (mqmath): Add option.
3649         * config/vax/vax.md (isfx): Extend with DI.
3650         (VAXintQH, VAXintQHSD): Define.
3651         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
3652         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
3653         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
3654         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
3655         (movdi): Update constraints and use vax_output_int_move().
3656         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
3657         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
3658         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
3659         nonlocal_goto): New.
3660         (mov<mode>): Extend accepted operand types.
3661         (subdi3_old): Rename from subdi3, change update constraints and use
3662         a new implementation.
3663         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
3664         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
3665         MOVE_RATIO, CLEAR_RATIO): Define.
3666         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
3667         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
3668         (PRINT_OPERAND): Redefine using a function instead of inlined code.
3669         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
3670         (split_quadword_operands): Make static and really allow variable
3671         splitting.
3672         (print_operand_address): Update for PIC generation.
3673         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
3674         indexable_address_p, fixup_mathdi_operand,
3675         vax_expand_addsub_di_operands, adjacent_operands_p): New.
3676         (vax_float_literal, legitimate_constant_p,
3677         indirectable_constant_address_p, index_term_p,
3678         reg_plus_index_p): Return bool instead of int.
3679         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
3680         where needed.
3681         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
3682         generation.
3683         (vax_output_conditional_branch): Indent.
3684         (legitimate_constant_address_p, indirectable_constant_address_p,
3685         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
3686         vax_mode_dependent_address_p): Return bool instead of int, update for
3687         PIC generation.
3688         * config/vax/vax-protos.h (legitimate_constant_address_p,
3689         legitimate_constant_p, legitimate_address_p,
3690         vax_mode_dependent_address_p): Change declaration to bool.
3691         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
3692         vax_expand_addsub_di_operands, vax_output_int_subtract,
3693         vax_output_movmemsi): Declare.
3694         (split_quadword_operands, vax_float_literal): Delete declaration.
3695         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
3696         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
3697         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
3698         ASM_OUTPUT_DWARF_PCREL): Define.
3699         (ASM_SPEC): Change definition to allow PIC generation.
3700
3701 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
3702
3703         * doc/sourcebuild.texi: Update front-end requirements.
3704
3705 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3706
3707         PR target/39226
3708         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
3709         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
3710         (booldi3_internal3): Use boolean_or_operator instead of
3711         boolean_operator.
3712
3713 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
3714
3715         PR c/39605
3716         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
3717         declarator whose size is not an integer constant expression but
3718         folds to an integer constant, then treat it as a constant
3719         subsequently.
3720
3721 2009-04-01  Richard Guenther  <rguenther@suse.de>
3722
3723         * fold-const.c (fold_plusminus_mult_expr): Do not fold
3724         i * 4 + 2 to (i * 2 + 1) * 2.
3725
3726 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3727
3728         PR c/37772
3729         * c-parser.c (c_parser_asm_statement): Skip until close paren and
3730         return if c_parser_asm_string_literal returned NULL.
3731
3732 2009-04-01  Nick Clifton  <nickc@redhat.com>
3733
3734         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
3735         already defined.
3736         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
3737         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
3738         other typedefs to avoid conflicts with libgcc2.c.  Define labels
3739         to gain 16-bit bit-manipulation functions from libgcc2.c and then
3740         include it.
3741         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
3742         to gain 16-bit trapping arithmetic functions from libgcc2.c and
3743         then include it.
3744
3745 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
3746
3747         * varasm.c (default_function_rodata_section): Declare DOT as
3748         const char*.
3749
3750 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
3751             Andrey Galkin <agalkin@hypercom.com>
3752
3753         PR/39492
3754         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
3755         Make object_name unique for each process.
3756
3757 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
3758
3759         PR other/39591
3760         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
3761         addressable variables in the parallel that could go out of scope while
3762         running queued tasks.
3763
3764 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
3765
3766         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
3767         (CASE_VALUES_THRESHOLD): Redefine.
3768         * config/avr/avr.c (avr_override_options): Remove initialization of
3769         avr_case_values_threshold variable.
3770         (avr_case_values_threshold): Remove variable. Add new function.
3771         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
3772         * config/avr/avr.opt (mno-tablejump): Remove option.
3773         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
3774
3775 2009-04-01  DJ Delorie  <dj@redhat.com>
3776
3777         * varasm.c (default_function_rodata_section): Don't assume
3778         anything about where the first '.' in the section name is.
3779
3780 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
3781
3782         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
3783         rs6000_emit_stack_tie.
3784
3785 2009-03-31  Ian Lance Taylor  <iant@google.com>
3786
3787         * tree-eh.c (tree_remove_unreachable_handlers): Compare
3788         gimple_code with GIMPLE_RESX, not RESX.
3789
3790 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3791
3792         * c-common.c (c_get_ident): New.
3793         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
3794
3795 2009-04-01  Ben Elliston  <bje@au.ibm.com>
3796
3797         * config/rs6000/sysv4.opt (msdata): Improve option description.
3798
3799 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
3800
3801         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
3802         (divdf3_internal_lat): Remove.
3803         (divxf3_internal_lat): Remove.
3804         (divxf3_internal_thr): Remove.
3805         (divxf): Use divxf3_internal.
3806         * config/ia64/div.md (divsf3_internal_lat): New.
3807         (divdf3_internal_lat): New.
3808         (divxf3_internal): New.
3809
3810 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3811
3812         PR c/448
3813         * Makefile.in (USE_GCC_STDINT): Define.
3814         (stmp-int-hdrs): Install stdint.h if applicable.
3815         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
3816         if known.
3817         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
3818         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
3819         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3820         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3821         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3822         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3823         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3824         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3825         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3826         (c_common_nodes_and_builtins): Initialize
3827         underlying_wchar_type_node.  Do not initialize
3828         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
3829         nodes for new types.
3830         (c_stddef_cpp_builtins): Define macros for new types.
3831         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
3832         Remove.
3833         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
3834         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
3835         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
3836         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
3837         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
3838         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
3839         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
3840         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
3841         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
3842         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
3843         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
3844         int16_type_node, int32_type_node, int64_type_node,
3845         uint8_type_node, uint16_type_node, c_uint32_type_node,
3846         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
3847         int_least32_type_node, int_least64_type_node,
3848         uint_least8_type_node, uint_least16_type_node,
3849         uint_least32_type_node, uint_least64_type_node,
3850         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
3851         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
3852         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
3853         uintptr_type_node): Define.
3854         * c-cppbuiltin.c (builtin_define_constants,
3855         builtin_define_type_minmax): New.
3856         (builtin_define_stdint_macros): Define more macros.
3857         (c_cpp_builtins): Define more limit macros.
3858         (type_suffix): New.
3859         (builtin_define_type_max): Define in terms of
3860         builtin_define_type_minmax.  Remove is_long parameter.  All
3861         callers changed.
3862         * config.gcc (use_gcc_stdint): Define.
3863         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
3864         Add newlib-stdint.h for generic targets.
3865         * config/glibc-stdint.h, config/newlib-stdint.h,
3866         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
3867         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
3868         * config/score/score.h (UINTPTR_TYPE): Define.
3869         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3870         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3871         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3872         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3873         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3874         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3875         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3876         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3877         * config/spu/spu.h (STDINT_LONG32): Define.
3878         * configure.ac (use_gcc_stdint): Substitute.
3879         * configure: Regenerate.
3880         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
3881         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
3882         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
3883         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
3884         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
3885         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
3886         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
3887         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
3888         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
3889         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
3890         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
3891         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
3892         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
3893         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
3894         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
3895         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
3896         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
3897         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
3898         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
3899         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
3900         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
3901         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
3902         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
3903         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3904         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3905         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3906         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3907         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3908         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
3909
3910 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
3911
3912         * loop-iv.c (suitable_set_for_replacement): Renamed from
3913         simplify_using_assignment; changed to return bool and to accept new
3914         args DEST and SRC.  Return true iff we find a source/destination pair
3915         that can be used to make a replacement, and fill SRC and DEST if so.
3916         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
3917         changed.
3918         (simplify_using_initial_values): Deal with altered regs here and track
3919         more precisely the effect they have on the validity of our expression.
3920
3921         * loop-iv.c (simplify_using_condition): A condition of the form
3922         (EQ REG CONST) can be used to simply make a substitution.
3923         (simplify_using_initial_values): Keep track of conditions we have seen
3924         and keep using them to simplify new expressions, while applying the
3925         same substitutions to them as to the expression.
3926
3927         * simplify-rtx.c (simplify_relational_operation_1): Simplify
3928         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
3929         GEU/LTU reversed.
3930
3931         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
3932         changed.  Use this when trying to improve the upper bound.
3933         Generate the comparison by using simplify_gen_relational.
3934
3935         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
3936
3937         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
3938         functions.
3939         (simplify_using_assignment, simplify_using_initial_values): Call
3940         replace_in_expr to make replacements.  Call replace_single_def_regs
3941         once on the initial version of the expression.
3942
3943 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3944
3945         PR target/27237
3946         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
3947
3948 2009-03-31  Richard Guenther  <rguenther@suse.de>
3949
3950         PR middle-end/31029
3951         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
3952         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
3953
3954 2009-03-31  Richard Guenther  <rguenther@suse.de>
3955
3956         * tree.h (div_if_zero_remainder): Declare.
3957         * fold-const.c (div_if_zero_remainder): Export.
3958         * tree-ssa-forwprop.c
3959         (forward_propagate_addr_into_variable_array_index): Handle
3960         constant array index addition outside of the variable index.
3961
3962 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3963
3964         PR target/39592
3965         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
3966         define_splits, floatunssi<mode>2): Require x87 conversions from
3967         DImode to be permitted.
3968
3969 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
3970
3971         PR preprocessor/15638
3972         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
3973
3974 2009-03-31  Richard Guenther  <rguenther@suse.de>
3975
3976         PR middle-end/23401
3977         PR middle-end/27810
3978         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
3979         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
3980         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
3981         a separate statement.
3982         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
3983         (lookup_tmp_var): Likewise.
3984         (is_gimple_formal_tmp_or_call_rhs): Remove.
3985         (is_gimple_reg_or_call_rhs): Rename to ...
3986         (is_gimple_reg_rhs_or_call): ... this.
3987         (is_gimple_mem_or_call_rhs): Rename to ...
3988         (is_gimple_mem_rhs_or_call): ... this.
3989         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
3990         DECL_GIMPLE_REG_P only if is_formal is true.
3991         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
3992         for non-proper post-modify expression gimplification.
3993         (gimplify_self_mod_expr): For post-modify expressions gimplify
3994         the lvalue to a minimal lvalue.
3995         (rhs_predicate_for): Remove formal temp case.
3996         (gimplify_modify_expr_rhs): Likewise.
3997         (gimplify_addr_expr): Use is_gimple_reg.
3998         (gimplify_expr): Remove formal temp cases.
3999         (gimple_regimplify_operands): Likewise.
4000         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
4001         and FILTER_EXPR like constants.
4002         * gimple.c (walk_gimple_op): Fix val_only initialization, use
4003         is_gimple_reg.
4004         (is_gimple_formal_tmp_rhs): Remove.
4005         (is_gimple_reg_rhs): Remove special casing.
4006         (is_gimple_mem_rhs): Fix.
4007         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
4008         (is_gimple_formal_tmp_var): Remove.
4009         (is_gimple_formal_tmp_reg): Likewise.
4010         (is_gimple_min_lval): Allow invariant component ref parts.
4011         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
4012         is_gimple_formal_tmp_reg): Remove declarations.
4013         * tree-cfg.c (verify_expr): Verify that variables with address
4014         taken do not have DECL_GIMPLE_REG_P set.
4015         * tree-mudflap.c (mf_build_check_statement_for): Use
4016         force_gimple_operand instead of gimplify_expr.
4017
4018 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
4019
4020         * modulo-sched.c (sms_schedule_by_order): Pass the actual
4021         schedulable rows to compute_split_row.
4022
4023 2009-03-31  Ben Elliston  <bje@au.ibm.com>
4024
4025         PR target/31635
4026         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
4027         OPT_mvrsave.
4028
4029 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4030
4031         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
4032         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
4033         * configure: Regenerate.
4034         * config.in: Regenerate.
4035         * config/rs6000/rs6000.opt (mtls-markers): Add.
4036         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
4037         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
4038         (tls_ld_aix, tls_ld_sysv): Likewise.
4039         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
4040         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
4041
4042 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4043
4044         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
4045
4046 2009-03-30  Jan Hubicka  <jh@suse.cz>
4047
4048         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
4049         out of RESX.
4050         (tree_remove_unreachable_handlers): Cleanup EH predecestor
4051         detection and label handling.
4052
4053 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4054
4055         * ira-int.h (ira_allocno): Rename left_conflicts_num to
4056         left_conflicts_size.
4057         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
4058         ALLOCNO_LEFT_CONFLICTS_SIZE.
4059
4060         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
4061         remove_allocno_from_bucket_and_push,
4062         allocno_spill_priority_compare, push_allocnos_to_stack,
4063         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4064         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
4065         (setup_allocno_left_conflicts_num): Ditto.  Rename to
4066         setup_allocno_left_conflicts_size.
4067         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4068         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
4069         setup_allocno_left_conflicts_size instead of
4070         setup_allocno_left_conflicts_num.
4071
4072         * ira-build.c (ira_create_allocno): Use
4073         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
4074         ALLOCNO_LEFT_CONFLICTS_NUM.
4075
4076 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4077
4078         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4079         instead of DF_LR_OUT.
4080
4081         * ira-lives.c (process_bb_node_lives): Ditto.
4082
4083         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4084         instead of DF_LR_{OUT,IN}.
4085
4086         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4087
4088         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4089
4090 2009-03-30  Jan Hubicka  <jh@suse.cz>
4091
4092         * except.c (label_to_region_map): Fix thinko.
4093
4094 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
4095
4096         PR middle-end/38237
4097         * tree.h (tree_find_value): New declaration.
4098         * tree.c (tree_find_value): New function.
4099         * varasm.c (assemble_external): Avoid duplicate entries on lists.
4100
4101 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
4102
4103         PR debug/39563
4104         * c-decl.c (struct c_binding): Add locus field.
4105         (bind): Add locus argument, set locus field from it.
4106         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
4107         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
4108         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
4109         implicitly_declare, undeclared_variable, lookup_label,
4110         declare_label, c_make_fname_decl, c_builtin_function,
4111         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
4112         bind callers.
4113
4114 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4115
4116         PR target/38781
4117         * config/i386/i386.c (classify_argument): Check total size of
4118         structure.
4119
4120 2009-03-30  Martin Jambor  <mjambor@suse.cz>
4121
4122         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
4123         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
4124         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
4125         respectively.
4126
4127         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
4128         seen_variable_array_ref while also traversing a union.
4129
4130         * tree-inline.c (optimize_inline_calls): Do not call
4131         cgraph_node_remove_callees.
4132         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
4133         (pass_remove_cgraph_callee_edges): New variable.
4134         * passes.c (init_optimization_passes): Add
4135         pass_remove_cgraph_callee_edges after early inlining and before all
4136         late intraprocedural passes.
4137
4138         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
4139
4140 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4141
4142         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
4143         Fix typos in names.
4144
4145 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4146
4147         * combine.c (simplify_comparison): Use have_insn_for.
4148         * dojump.c (do_jump): Likewise.
4149
4150 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4151
4152         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
4153         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
4154         sparc_compare_op0 like sparc_compare_emitted used to be handled.
4155         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
4156         instead of sparc_compare_emitted.
4157         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
4158         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
4159         instead of sparc_compare_emitted.
4160
4161 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4162
4163         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
4164         enter/exit cfglayout mode.
4165         (pass_partition_block): Require it.
4166         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
4167         (combine_instructions): Track basic blocks instead of labels.
4168         (update_cfg_for_uncondjump): New.
4169         (try_combine): Use it.  Update jumps after rescanning.
4170         (pass_combine): Require PROP_cfglayout.
4171         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
4172
4173 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4174
4175         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
4176         Provide/destroy PROP_cfglayout respectively.
4177         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
4178         * tree-pass.h (PROP_cfglayout): New.
4179
4180 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4181
4182         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
4183         fold_convert_const_fixed_from_fixed,
4184         fold_convert_const_fixed_from_int,
4185         fold_convert_const_fixed_from_real, fold_negate_const): Do not
4186         set TREE_CONSTANT_OVERFLOW.
4187         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
4188         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
4189
4190 2009-03-30  Ira Rosen  <irar@il.ibm.com>
4191
4192         * tree-vect-loop-manip.c: New file.
4193         * tree-vectorizer.c: Update documentation and included files.
4194         (vect_loop_location): Make extern.
4195         (rename_use_op): Move to tree-vect-loop-manip.c
4196         (rename_variables_in_bb, rename_variables_in_loop,
4197         slpeel_update_phis_for_duplicate_loop,
4198         slpeel_update_phi_nodes_for_guard1,
4199         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
4200         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
4201         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
4202         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
4203         find_loop_location): Likewise.
4204         (new_stmt_vec_info): Move to tree-vect-stmts.c.
4205         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
4206         get_vectype_for_scalar_type, vect_is_simple_use,
4207         supportable_widening_operation, supportable_narrowing_operation):
4208         Likewise.
4209         (bb_in_loop_p): Move to tree-vect-loop.c.
4210         (new_loop_vec_info, destroy_loop_vec_info,
4211         reduction_code_for_scalar_code, report_vect_op,
4212         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
4213         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
4214         (vect_supportable_dr_alignment): Likewise.
4215         * tree-vectorizer.h (tree-data-ref.h): Include.
4216         (vect_loop_location): Declare.
4217         Reorganize function declarations according to the new file structure.
4218         * tree-vect-loop.c: New file.
4219         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
4220         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
4221         * tree-vect-data-refs.c: New file.
4222         * tree-vect-patterns.c (timevar.h): Don't include.
4223         * tree-vect-stmts.c: New file.
4224         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
4225         tree-vect-slp.c, tree-vect-loop.c.
4226         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
4227         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
4228         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
4229         (tree-vect-analyze.o): Remove.
4230         (tree-vect-transform.o): Likewise.
4231         (tree-vect-data-refs.o): Add rule.
4232         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
4233         tree-vect-slp.o): Likewise.
4234         (tree-vect-patterns.o): Remove redundant dependencies.
4235         (tree-vectorizer.o): Likewise.
4236         * tree-vect-slp.c: New file.
4237
4238 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4239
4240         * optc-gen.awk: Warn if an option flag has multiple different
4241         help strings.
4242
4243 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4244
4245         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
4246         -floop-block): Document dependences on PPL, CLooG and Graphite.
4247
4248 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4249
4250         PR rtl-optimization/323
4251         * c-common.c (c_fully_fold, convert_and_check,
4252         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
4253         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
4254         * c-common.def (EXCESS_PRECISION_EXPR): New.
4255         * c-cppbuiltin.c (builtin_define_float_constants): Define
4256         constants with enough digits for long double.
4257         * c-lex.c (interpret_float): Interpret constant with excess
4258         precision where appropriate.
4259         * c-opts.c (c_common_post_options): Set
4260         flag_excess_precision_cmdline.  Give an error for
4261         -fexcess-precision=standard for C++ for processors where the
4262         option is significant.
4263         * c-parser.c (c_parser_conditional_expression): Handle excess
4264         precision in condition.
4265         * c-typeck.c (convert_arguments): Handle arguments with excess
4266         precision.
4267         (build_unary_op): Move excess precision outside operation.
4268         (build_conditional_expr): Likewise.
4269         (build_compound_expr): Likewise.
4270         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
4271         (build_modify_expr): Handle excess precision in RHS.
4272         (convert_for_assignment): Handle excess precision in converted
4273         value.
4274         (digest_init, output_init_element, process_init_element): Handle
4275         excess precision in initializer.
4276         (c_finish_return): Handle excess precision in return value.
4277         (build_binary_op): Handle excess precision in operands and add
4278         excess precision as needed for operation.
4279         * common.opt (-fexcess-precision=): New option.
4280         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
4281         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
4282         For standard excess precision, output explicit conversion to and
4283         truncation from XFmode.
4284         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
4285         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
4286         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
4287         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
4288         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
4289         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
4290         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
4291         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
4292         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
4293         define_splits, sqrt<mode>2): Disable where appropriate for
4294         standard excess precision.
4295         * convert.c (convert_to_real): Do not shorten arithmetic to type
4296         for which excess precision would be used.
4297         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
4298         * doc/invoke.texi (-fexcess-precision=): Document option.
4299         (-mfpmath=): Correct index entry.
4300         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
4301         flag_excess_precision): New.
4302         * langhooks.c (lhd_post_options): Set
4303         flag_excess_precision_cmdline.
4304         * opts.c (common_handle_option): Handle -fexcess-precision=.
4305         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
4306         init_excess_precision): New.
4307         (lang_dependent_init_target): Call init_excess_precision.
4308         * tree.c (excess_precision_type): New.
4309         * tree.h (excess_precision_type): Declare.
4310
4311 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4312
4313         PR c/35235
4314         * c-typeck.c (build_component_ref): Do not copy qualifiers from
4315         non-lvalue to component.
4316
4317 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
4318
4319         PR preprocessor/34695
4320         * Makefile.in (c-opts.o): Depend on c-tree.h.
4321         * c-common.c: Move down include of diagnostic.h.
4322         (done_lexing, c_cpp_error): New.
4323         * c-common.h (done_lexing): Declare.
4324         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
4325         (parse_in).
4326         * c-opts.c: Include c-tree.h.
4327         (c_common_init_options): Set preprocessor error callback.
4328         (c_common_handle_option): Do not set preprocessor
4329         inhibit_warnings, warnings_are_errors, warn_system_headers,
4330         pedantic_errors or inhibit_warnings flags.
4331         (c_common_post_options): Do not check cpp_errors (parse_in).
4332         (c_common_finish): Do not output dependencies if there were
4333         errors.  Do not check return value of cpp_finish.
4334         * c-ppoutput.c (pp_file_change): Set input_location.
4335         * c-tree.h (c_cpp_error): Declare.
4336         * diagnostic.c (diagnostic_set_info_translated): Also initialize
4337         override_column.
4338         (diagnostic_build_prefix): Check override_column.
4339         * diagnostic.h (diagnostic_info): Add override_column field.
4340         (diagnostic_override_column): Define.
4341
4342 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
4343
4344         * c-common.c (c_expand_expr, c_staticp): Remove.
4345         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
4346         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
4347         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
4348         * c-gimplify.c (gimplify_compound_literal_expr,
4349         optimize_compound_literals_in_ctor): Remove.
4350         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
4351         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
4352         * c-semantics.c (emit_local_var): Remove.
4353
4354         * langhooks-def.h (lhd_expand_expr): Remove.
4355         * langhooks.c (lhd_expand_expr): Remove.
4356         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
4357
4358         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
4359         handling from c-semantics.c; don't call into langhook.
4360         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
4361         * gimplify.c (gimplify_compound_literal_expr,
4362         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
4363         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
4364         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
4365         as was done in c-gimplify.c.
4366         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
4367         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
4368         Move from c-common.h.
4369         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
4370
4371         * tree.c (staticp): Do not call langhook.
4372         * langhooks.c (lhd_staticp): Delete.
4373         * langhooks-def.h (lhd_staticp): Delete prototype.
4374         (LANG_HOOKS_STATICP): Delete.
4375         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
4376
4377         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
4378         instead of DECL_STMTs.
4379
4380 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
4381
4382         PR c/456
4383         PR c/5675
4384         PR c/19976
4385         PR c/29116
4386         PR c/31871
4387         PR c/35198
4388         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
4389         void_type_node.
4390         (fold_call_expr): Return a NOP_EXPR from folding rather than the
4391         contained expression.
4392         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
4393         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
4394         conditional expressions for C.
4395         (decl_constant_value_for_optimization): Move from
4396         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
4397         whether optimizing and that the expression is a VAR_DECL not of
4398         array type instead of doing such checks in the caller.  Do not
4399         check pedantic.  Call gcc_unreachable for C++.
4400         * c-common.def (C_MAYBE_CONST_EXPR): New.
4401         * c-common.h (c_fully_fold, c_save_expr,
4402         decl_constant_value_for_optimization): New prototypes.
4403         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4404         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4405         EXPR_INT_CONST_OPERANDS): Define.
4406         * c-convert.c (convert): Strip nops from expression.
4407         * c-decl.c (groktypename): Take extra parameters expr and
4408         expr_const_operands.  Update call to grokdeclarator.
4409         (start_decl): Update call to grokdeclarator.  Add statement for
4410         expressions used in type of decl.
4411         (grokparm): Update call to grokdeclarator.
4412         (push_parm_decl): Update call to grokdeclarator.
4413         (build_compound_literal): Add parameter non_const and build a
4414         C_MAYBE_COSNT_EXPR if applicable.
4415         (grokdeclarator): Take extra parameters expr and
4416         expr_const_operands.  Track expressions used in declaration
4417         specifiers and declarators.  Fold array sizes and track whether
4418         they are constant expressions and whether they are integer
4419         constant expressions.
4420         (parser_xref_tag): Set expr and expr_const_operands fields in
4421         return value.
4422         (grokfield): Update call to grokdeclarator.
4423         (start_function): Update call to grokdeclarator.
4424         (build_null_declspecs): Set expr and expr_const_operands fields in
4425         return value.
4426         (declspecs_add_type): Handle expressions in typeof specifiers.
4427         * c-parser.c (c_parser_declspecs): Set expr and
4428         expr_const_operands fields for declaration specifiers.
4429         (c_parser_enum_specifier): Likewise.
4430         (c_parser_struct_or_union_specifier): Likewise.
4431         (c_parser_typeof_specifier): Likewise.  Update call to
4432         groktypename.  Fold expression as needed.  Return expressions with
4433         type instead of adding statements.
4434         (c_parser_attributes): Update calls to c_parser_expr_list.
4435         (c_parser_statement_after_labels): Fold expression before passing
4436         to objc_build_throw_stmt.
4437         (c_parser_condition): Fold expression.
4438         (c_parser_asm_operands): Fold expression.
4439         (c_parser_conditional_expression): Use c_save_expr.  Update call
4440         to build_conditional_expr.
4441         (c_parser_alignof_expression): Update call to groktypename.
4442         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
4443         original_code.  Fold expression argument of va_arg.  Create
4444         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
4445         argument to va_arg.  Update calls to groktypename.  Fold array
4446         index for offsetof.  Verify that first argument to
4447         __builtin_choose_expr has integer type.
4448         (c_parser_postfix_expression_after_paren_type): Update calls to
4449         groktypename and build_compound_literal.  Handle expressions with
4450         side effects in type name.
4451         (c_parser_postfix_expression_after_primary): Update call to
4452         c_parser_expr_list.  Set original_code for calls to
4453         __builtin_constant_p.
4454         (c_parser_expr_list): Take extra parameter fold_p.  Fold
4455         expressions if requested.
4456         (c_parser_objc_type_name): Update call to groktypename.
4457         (c_parser_objc_synchronized_statement): Fold expression.
4458         (c_parser_objc_receiver): Fold expression.
4459         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
4460         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
4461         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
4462         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
4463         (struct c_typespec): Add elements expr and expr_const_operands.
4464         (struct c_declspecs): Add elements expr and expr_const_operands.
4465         (groktypename, build_conditional_expr, build_compound_literal):
4466         Update prototypes.
4467         (in_late_binary_op): Declare.
4468         * c-typeck.c (note_integer_operands): New function.
4469         (in_late_binary_op): New variable.
4470         (decl_constant_value_for_broken_optimization): Move to c-common.c
4471         and rename to decl_constant_value_for_optimization.
4472         (default_function_array_conversion): Do not strip nops.
4473         (default_conversion): Do not call
4474         decl_constant_value_for_broken_optimization.
4475         (build_array_ref): Do not fold result.
4476         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
4477         result when operand is a VLA.
4478         (c_expr_sizeof_type): Update call to groktypename.  Handle
4479         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
4480         result when operand names a VLA type.
4481         (build_function_call): Update call to build_compound_literal.
4482         Only fold result for calls to __builtin_* functions.  Strip
4483         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
4484         the function designator.
4485         (convert_arguments): Fold arguments.  Update call to
4486         convert_for_assignment.
4487         (build_unary_op): Handle increment and decrement of
4488         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
4489         decrement earlier.  Fold operand of increment and decrement.
4490         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
4491         built for integer operand.  Wrap returns that are INTEGER_CSTs
4492         without being integer constant expressions or that have integer
4493         constant operands without being INTEGER_CSTs.
4494         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
4495         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
4496         result is an integer constant expression or can be used in
4497         unevaluated parts of one and avoid folding and wrap as
4498         appropriate.  Fold operands before possibly doing -Wsign-compare
4499         warnings.
4500         (build_compound_expr): Wrap result for C99 if operands can be used
4501         in integer constant expressions.
4502         (build_c_cast): Update call to digest_init.  Do not ignore
4503         overflow from casting floating-point constants to integers.  Wrap
4504         results that could be confused with integer constant expressions,
4505         null pointer constants or floating-point constants.
4506         (c_cast_expr): Update call to groktypename.  Handle expressions
4507         included in type name.
4508         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
4509         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
4510         Update calls to convert_for_assignment.
4511         (convert_for_assignment): Take new parameter
4512         null_pointer_constant.  Do not strip nops or call
4513         decl_constant_value_for_broken_optimization.  Set
4514         in_late_binary_op for conversions to boolean.
4515         (store_init_value): Update call to digest_init.
4516         (digest_init): Take new parameter null_pointer_constant.  Do not
4517         call decl_constant_value_for_broken_optimization.  pedwarn for
4518         initializers not constant expressions.  Update calls to
4519         convert_for_assignment.
4520         (constructor_nonconst): New.
4521         (struct constructor_stack): Add nonconst element.
4522         (really_start_incremental_init, push_init_level, pop_init_level):
4523         Handle constructor_nonconst and nonconst element.
4524         (set_init_index): Call constant_expression_warning for array
4525         designators.
4526         (output_init_element): Fold value.  Set constructor_nonconst as
4527         applicable.  pedwarn for initializers not constant expressions.
4528         Update call to digest_init.  Call constant_expression_warning
4529         where constant initializers are required.
4530         (process_init_element): Use c_save_expr.
4531         (c_finish_goto_ptr): Fold expression.
4532         (c_finish_return): Fold return value.  Update call to
4533         convert_for_assignment.
4534         (c_start_case): Fold switch expression.
4535         (c_process_expr_stmt): Fold expression.
4536         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
4537         ensure statement expression is not evaluated in constant expression.
4538         (build_binary_op): Track whether results are integer constant
4539         expressions or may occur in such, disable folding and wrap results
4540         as applicable.  Fold operands for -Wsign-compare warnings unless
4541         in_late_binary_op.
4542         (c_objc_common_truthvalue_conversion): Handle results folded to
4543         integer constants that are not integer constant expressions.
4544         * doc/extend.texi: Document when typeof operands are evaluated,
4545         that condition of __builtin_choose_expr is an integer constant
4546         expression, and more about use of __builtin_constant_p in
4547         initializers.
4548
4549 2009-03-29  Richard Guenther  <rguenther@suse.de>
4550
4551         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
4552         propagate addresses of array references.
4553
4554 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
4555
4556         * regmove.c (perhaps_ends_bb_p): Remove.
4557         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
4558         from INSN and check that the main loop stays within that basic block.
4559         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
4560         (regmove_forward_pass): Split out from regmove_optimize.  Use
4561         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
4562         (regmove_backward_pass): Split out from regmove_optimize.  Use
4563         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
4564         (regmove_optimize): Simplify.
4565
4566 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4567
4568         PR target/39545
4569         * config/i386/i386.c (classify_argument): Ignore flexible array
4570         member in struct and warn ABI change.
4571
4572 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
4573
4574         * config/i386/i386-protos.h (ix86_agi_dependent): New.
4575
4576         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
4577         (ix86_adjust_cost): Updated.
4578
4579 2009-03-29  Jan Hubicka  <jh@suse.cz>
4580
4581         PR middle-end/28850
4582         * tree-pass.h (pass_cleanup_eh): New function.
4583         (remove_unreachable_regions): Break code handling RTL
4584         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
4585         that can not be reached by runtime.
4586         (can_be_reached_by_runtime): New function.
4587         (label_to_region_map): New function.
4588         (num_eh_regions): New function.
4589         (rtl_remove_unreachable_regions): New function.
4590         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
4591         (remove_eh_region): New function.
4592         * except.h: Include sbitmap and vecprim.
4593         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
4594         num_eh_regions): Declare.
4595         * passes.c (init_optimization_passes): Schedule cleanup_eh.
4596         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4597         * tree-eh.c (tree_remove_unreachable_handlers): New function.
4598         (tree_empty_eh_handler_p): New function.
4599         (cleanup_empty_eh): New function.
4600         (cleanup_eh): New function.
4601         (pass_cleanup_eh): New function.
4602
4603 2009-03-29  Jan Hubicka  <jh@suse.cz>
4604
4605         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
4606         for removed regions.
4607
4608 2009-03-29  Jan Hubicka  <jh@suse.cz>
4609
4610         * except.c (dump_eh_tree): Dump all datastructures.
4611
4612 2009-03-29  Jan Hubicka  <jh@suse.cz>
4613
4614         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
4615         (duplicate_eh_regions_1): Likewise.
4616         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
4617         vector; call EH verification.
4618         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4619         Be ready for region being removed.
4620
4621 2009-03-29  Jan Hubicka  <jh@suse.cz>
4622
4623         * bitmap.c (bitmap_last_set_bit): New function.
4624         * bitmap.h (bitmap_last_set_bit): Declare.
4625
4626 2009-03-29  David Ayers  <ayers@fsfe.org>
4627
4628         PR objc/27377
4629         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
4630         by calling objc_compare_types and surpress warnings about
4631         incompatible C pointers that are compatible ObjC pointers.
4632
4633 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
4634
4635         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
4636         call initialize_inline_failed.
4637         (initialize_inline_failed): Move it from here ...
4638         * cgraph.c (initialize_inline_failed): ... to here.
4639         (cgraph_create_edge): Call initialize_inline_failed rather than
4640         setting inline_failed directly.
4641
4642 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4643
4644         PR target/32542
4645         * sysv4.opt (msdata): Improve comment.
4646         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
4647         * sysv4.h (SVR4_ASM_SPEC): Likewise.
4648
4649 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4650
4651         PR target/30451
4652         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
4653         load and store attributes.
4654
4655 2009-03-29  Ben Elliston  <bje@au.ibm.com>
4656
4657         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
4658         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
4659         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
4660         * doc/extend.texi (X86 Built-in Functions): Add index entries for
4661         __builtin_infq and __builtin_huge_valq.
4662
4663 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
4664
4665         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
4666         atmega8m1 devices.
4667         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4668         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
4669
4670 2009-03-28  Xinliang David Li  <davidxl@google.com>
4671
4672         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
4673         (do_dbg_cnt): New function.
4674
4675 2009-03-28  Jan Hubicka  <jh@suse.cz>
4676
4677         Merge from pretty-ipa:
4678
4679         2009-03-27  Jan Hubicka  <jh@suse.cz>
4680
4681         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4682         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
4683         * passes.c (function_called_by_processed_nodes_p): New.
4684         * ipa-pure-const.c (check_call): Fix handling of operands.
4685         (analyze_function): Dump debug output for skipped bodies.
4686         (local_pure_const): Use function_called_by_processed_nodes_p.
4687         * dwarf2out.c (reference_to_unused): Use output.
4688         * passes.c (do_per_function_toporder): Likewise.
4689
4690         2008-11-12  Jan Hubicka  <jh@suse.cz>
4691
4692         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
4693         * ipa-pure-const.c (funct_state_d): Add can throw field; make
4694         state_set_in_source enum
4695         (check_decl): Ignore memory tags; do not set fake looping flags;
4696         dump diagnostics.
4697         (check_operand, check_tree, check_rhs_var, check_lhs_var,
4698         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
4699         (check_call, analyze_function): Rewrite.
4700         (check_stmt): New.
4701         (add_new_function): Update call of analyze_function.
4702         (generate_summary): Add call of analyze_function.
4703         (propagate): Propagate can_throw; handle state_set_in_source correctly.
4704         (local_pure_const): New function.
4705         (pass_local_pure_const): New pass.
4706         * ipa-inline.c (inline_transform): Set after_inlining.
4707         * tree-eh.c (stmt_can_throw_external): New.
4708         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
4709         work with aliasing built.
4710         * tree-flow.h (stmt_can_throw_external): New.
4711         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
4712         and local pure/const pass in early and late optimization queue.
4713
4714 2009-03-28  Martin Jambor  <mjambor@suse.cz>
4715
4716         * fold-const.c (get_pointer_modulus_and_residue): New parameter
4717         allow_func_align.
4718         (fold_binary): Allow function decl aligment consideration is the
4719         second argument is integer constant one.
4720         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
4721         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
4722         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
4723
4724 2009-03-28  Jan Hubicka  <jh@suse.cz>
4725
4726         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
4727         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
4728         * function.h (rtl_data): Add nothrow flag.
4729         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
4730         set DECL_NOTHROW for AVAILABLE functions.
4731
4732 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
4733
4734         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
4735         following vector keyword has expansion starting with pixel or bool
4736         keyword, expand vector to __vector and pixel or bool to __pixel or
4737         __bool.
4738
4739         PR c++/39554
4740         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
4741         warn_if_disallowed_function_p): Removed.
4742         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
4743         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
4744         warning_if_disallowed_function_p.
4745         * flags.h (warn_if_disallowed_function_p,
4746         warn_disallowed_functions): Removed.
4747         * common.opt (Wdisallowed-function-list=): Removed.
4748         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
4749
4750 2009-03-28  Richard Guenther  <rguenther@suse.de>
4751
4752         PR tree-optimization/38723
4753         * tree-ssa-pre.c (compute_avail): Add all default definitions to
4754         the entry block.
4755
4756 2009-03-28  Jan Hubicka  <jh@suse.cz>
4757
4758         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
4759         test introduced by my previous patch.
4760
4761 2009-03-28  Richard Guenther  <rguenther@suse.de>
4762
4763         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
4764         the PHIs value undefined.
4765
4766 2009-03-28  Jan Hubicka  <jh@suse.cz>
4767
4768         * tree-pass.h (pass_fixup_cfg): New pass.
4769         * ipa-inline.c (inline_transform): Set
4770         always_inline_functions_inlined/after_inlining.
4771         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
4772         (pass_fixup_cfg): New pass.
4773         * passes.c (init_optimization_passes): Add fixup_cfg.
4774
4775 2009-03-28  Richard Guenther  <rguenther@suse.de>
4776
4777         PR tree-optimization/38458
4778         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
4779         argument use the arguments copy-of value.
4780
4781 2009-03-28  Richard Guenther  <rguenther@suse.de>
4782
4783         PR tree-optimization/38180
4784         * tree-ssa-ccp.c (get_default_value): Simplify.
4785         (likely_value): Likewise.
4786         (surely_varying_stmt_p): Properly handle VOP case.
4787         (ccp_initialize): Likewise.
4788         (ccp_fold): Handle propagating through *&.
4789         (fold_const_aggregate_ref): Also handle decls.
4790
4791 2009-03-28  Jan Hubicka  <jh@suse.cz>
4792
4793         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
4794         * cgraph.h (cgraph_node): Likewise.
4795         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
4796         (cgraph_reset_node): Use process flag.
4797         (cgraph_mark_functions_to_output): Likewise.
4798         (cgraph_expand_function): Likewise.
4799         (cgraph_expand_all_functions): Likewise.
4800         (cgraph_output_in_order): Likewise.
4801         * dwarf2out.c (reference_to_unused): Likewise.
4802         * passes.c do_per_function_toporder): Likewise.
4803
4804 2009-03-28  Jan Hubicka  <jh@suse.cz>
4805
4806         Bring from lto-branch:
4807
4808         2008-09-03  Doug Kwan  <dougkwan@google.com>
4809
4810         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
4811         enums instead of reason strings.
4812         * cgraph.c (cgraph_create_edge): Same.
4813         (cgraph_inline_failed_string): New function.
4814         * cgraph.h (cgraph_inline_failed_t): New enum type.
4815         (cgraph_inline_failed_string): New prototype.
4816         (struct cgraph_edge): Change type of INLINED_FAILED from constant
4817         char pointer to cgraph_inline_failed_t.
4818         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
4819         (cgraph_default_inline_p): Ditto.
4820         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
4821         to cgraph_inline_failed_t pointer.
4822         * cif-code.def: New file.
4823         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
4824         reason string.
4825         (cgraph_check_inline_limits): Change type of REASON to pointer to
4826         cgraph_inline_failed_t.  Replace reason strings with enums.
4827         (cgraph_default_inline_p): Ditto.
4828         (cgraph_recursive_inlining_p): Ditto.
4829         (update_caller_keys): Change type of FAILED_REASON to
4830         cgraph_inline_failed_t.
4831         (cgraph_set_inline_failed): Change type of REASON to pointer to
4832         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
4833         convert enums to strings for text output.
4834         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
4835         to be of type cgraph_inline_failed_t.  Replace reason strings with
4836         enums.  Call cgraph_inline_failed_string to covert enums
4837         to strings for text output.
4838         (cgraph_decide_inlining): Replace reason strings with enums.
4839         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
4840         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
4841         for text output.
4842         * tree-inline.c (expand_call_inline): Change type of REASON
4843         to cgraph_inline_failed_t.  Replace reason strings with enums.
4844         Call cgraph_inline_failed_string for text output.
4845         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
4846         (cgraph.o): Ditto.
4847
4848 2009-03-28  Jan Hubicka  <jh@suse.cz>
4849
4850         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
4851         cgraph_clone_node): Remove master clone handling.
4852         (cgraph_is_master_clone, cgraph_master_clone): Remove.
4853         * cgraph.h (master_clone): Remove.
4854         (cgraph_is_master_clone, cgraph_master_clone): Remove.
4855         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
4856         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4857
4858 2009-03-28  Jan Hubicka  <jh@suse.cz>
4859
4860         * cgraph.c (cgraph_function_body_availability): Functions declared
4861         inline are always safe to assume that it is not going to be replaced.
4862
4863 2009-03-28  Richard Guenther  <rguenther@suse.de>
4864
4865         PR tree-optimization/38513
4866         * tree-ssa-pre.c (eliminate): Remove redundant stores.
4867         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
4868         EXC_PTR_EXPR and FILTER_EXPR.
4869         (get_ref_from_reference_ops): Likewise.
4870
4871 2009-03-28  Richard Guenther  <rguenther@suse.de>
4872
4873         PR tree-optimization/38968
4874         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
4875         Use FLOOR_MOD_EXPR to compute misalignment.
4876
4877 2009-03-28  Richard Guenther  <rguenther@suse.de>
4878
4879         PR tree-optimization/37795
4880         * tree.h (combine_comparisons): Declare.
4881         * fold-const.c (combine_comparisons): Export.
4882         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
4883         comparisons.
4884         (ifcombine_iforif): Use combine_comparisons.
4885
4886 2009-03-28  Jan Hubicka  <jh@suse.cz>
4887
4888         * tree-eh.c (inlinable_call_p): New function.
4889         (make_eh_edges): Use it.
4890         (verify_eh_edges): Use it.
4891         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
4892         * except.c (reachable_next_level): Add inlinable_function argument
4893         (sjlj_find_directly_reachable_regions): Update.
4894         (add_reachable_handler): Do not set saw_any_handlers.
4895         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
4896         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
4897         Add new inlinable call parameter.
4898         (can_throw_internal, can_throw_external): Update.
4899         * except.h (can_throw_internal_1, can_throw_external_1,
4900         foreach_reachable_handler): Update declaration.
4901
4902 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
4903
4904         * config/arm/t-arm-coff, config/h8300/coff.h,
4905         config/i386/i386-aout.h, config/i386/i386-coff.h,
4906         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
4907         config/pdp11/2bsd.h, config/rs6000/aix41.h,
4908         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
4909         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
4910         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
4911         sys-types.h: Remove.
4912         * Makefile.in: Remove protoize and fixproto support and references
4913         in comments.
4914         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
4915         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
4916         Remove.
4917         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
4918         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
4919         unprotoize$(exeext).
4920         (rest.encap): Don't depend on $(STMP_FIXPROTO)
4921         (.PHONY): Don't depend on proto.
4922         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
4923         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
4924         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
4925         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
4926         build/gen-protos.o, build/scan.o, xsys-protos.h,
4927         build/fix-header$(build_exeext), build/fix-header.o,
4928         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
4929         stmp-install-fixproto): Remove.
4930         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
4931         SYSCALLS.c or fixproto files.
4932         (install-common): Don't install protoize.
4933         (install-headers-tar, install-headers-cpio, install-headers-cp):
4934         Don't depend on $(STMP_FIXPROTO).
4935         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
4936         install fixproto files or write out fixproto settings.
4937         (uninstall): Don't uninstall protoize.
4938         * config.gcc (use_fixproto): Remove.
4939         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
4940         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
4941         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
4942         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
4943         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
4944         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
4945         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
4946         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
4947         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
4948         * config/t-vxworks (STMP_FIXPROTO): Remove.
4949         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
4950         STMP_FIXPROTO): Remove.
4951         * config.in, configure: Regenerate.
4952         * crtstuff.c (gid_t, uid_t): Don't undefine.
4953         * doc/install.texi: Change m68k-coff to m68k-elf in example.
4954         (arm-*-coff, arm-*-aout: Remove target entries.
4955         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
4956         Remove mention of AIX 4.1.
4957         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
4958         * doc/invoke.texi (Running Protoize): Remove.
4959         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
4960         (Protoize Caveats): Remove.
4961         * tsystem.h: Update comments on headers assumed to exist.
4962
4963 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
4964
4965         * genautomata.c: Add a new year to the copyright.  Add a new
4966         reference.
4967         (struct insn_reserv_decl): Add comments for member bypass_list.
4968         (find_bypass): Remove.
4969         (insert_bypass): New.
4970         (process_decls): Use insert_bypass.
4971         (output_internal_insn_latency_func): Output all bypasses with the
4972         same input insn in one switch case.
4973
4974         * rtl.def (define_bypass): Describe bypass choice.
4975         * doc/md.texi (define_bypass): Ditto.
4976
4977 2009-03-27  Richard Guenther  <rguenther@suse.de>
4978
4979         * gimplify.c (mark_addressable): Export.
4980         * tree-flow.h (mark_addressable): Declare.
4981         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
4982         * tree-ssa.c (verify_phi_args): Verify that address taken
4983         variables have TREE_ADDRESSABLE set.
4984
4985 2009-03-27  Richard Guenther  <rguenther@suse.de>
4986
4987         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
4988         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
4989         Do not mark decls TREE_ADDRESSABLE.
4990         (build_fold_addr_expr): Adjust.
4991         (fold_addr_expr): Remove.
4992         (fold_unary): Use build_fold_addr_expr.
4993         (fold_comparison): Likewise.
4994         (split_address_to_core_and_offset): Likewise.
4995         * coverage.c (tree_coverage_counter_addr): Mark the array decl
4996         TREE_ADDRESSABLE.
4997         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
4998         (gimplify_modify_expr_to_memcpy): Mark source and destination
4999         addressable.
5000         * omp-low.c (create_omp_child_function): Mark the object decl
5001         TREE_ADDRESSABLE.
5002         (lower_rec_input_clauses): Mark the var we take the address of
5003         TREE_ADDRESSABLE.
5004         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
5005
5006 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5007
5008         PR middle-end/39315
5009         * cfgexpand.c (expand_one_stack_var_at): Change alignment
5010         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
5011
5012 2009-03-27  Richard Guenther  <rguenther@suse.de>
5013
5014         PR tree-optimization/39120
5015         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
5016         constraints.
5017         (handle_lhs_call): Process return constraints.  Add escape
5018         constraints if necessary.
5019         (handle_const_call): Fill out return constraints.  Make nested
5020         case more precise.  Avoid consttmp if possible.
5021         (handle_pure_call): Fill out return constraints.  Avoid
5022         callused if possible.
5023         (find_func_aliases): Simplify call handling.
5024
5025 2009-03-27  Richard Guenther  <rguenther@suse.de>
5026
5027         PR tree-optimization/39120
5028         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
5029         as a representative.
5030         (solve_graph): Do propagate CALLUSED.
5031         (handle_pure_call): Use a scalar constraint from CALLUSED for
5032         the return value.
5033         (find_what_p_points_to): CALLUSED shall not appear in poins-to
5034         solutions.
5035
5036 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5037
5038         PR c/39323
5039         * c-common.c (handle_aligned_attribute): Properly check alignment
5040         overflow.  Use (1U << i) instead of (1 << i).
5041
5042         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
5043
5044         * expr.h (get_mem_align_offset): Updated.
5045
5046         * tree.h (tree_decl_common): Change align to "unsigned int" and
5047         move it before pointer_alias_set.
5048
5049 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5050             Jakub Jelinek  <jakub@redhat.com>
5051
5052         PR target/38034
5053         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
5054         gr_register_operand with gr_reg_or_0_operand.
5055         (cmpxchg_rel_di): Likewise.
5056         (sync_lock_test_and_set<mode>): Likewise.
5057
5058 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5059
5060         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
5061         (true_regnum): Likewise.
5062
5063         * rtlanal.c (subreg_info): Moved to ...
5064         * rtl.h (subreg_info): Here.  New.
5065         (subreg_get_info): New.
5066
5067         * rtlanal.c (subreg_get_info): Make it extern.
5068
5069 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5070
5071         PR target/39472
5072         * config/i386/i386.c (ix86_abi): New.
5073         (override_options): Handle -mabi=.
5074         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
5075         (ix86_call_abi_override): Likewise.
5076         (init_cumulative_args): Likewise.
5077         (function_arg_advance): Likewise.
5078         (function_arg_64): Likewise.
5079         (function_arg): Likewise.
5080         (ix86_pass_by_reference): Likewise.
5081         (ix86_function_value_regno_p): Likewise.
5082         (ix86_build_builtin_va_list_abi): Likewise.
5083         (setup_incoming_varargs_64): Likewise.
5084         (is_va_list_char_pointer): Likewise.
5085         (ix86_init_machine_status): Likewise.
5086         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
5087         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
5088         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
5089         (ix86_function_abi): Make it static and return enum calling_abi.
5090         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
5091         with ix86_abi.
5092         (ix86_fn_abi_va_list): Updated.
5093
5094         * config/i386/i386.h (ix86_abi): New.
5095         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
5096         (CONDITIONAL_REGISTER_USAGE): Likewise.
5097         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
5098         (machine_function): Likewise.
5099
5100         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
5101         with ix86_abi.
5102         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
5103         (STACK_BOUNDARY): Likewise.
5104         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
5105
5106         * config/i386/i386.opt (mabi=): New.
5107
5108         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
5109         return enum calling_abi.
5110         (ix86_function_type_abi): Likewise.
5111         (ix86_function_abi): Removed.
5112
5113         * doc/invoke.texi: Document -mabi= option for x86.
5114
5115 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5116
5117         * builtins.c (real_dconstp): Delete.
5118         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
5119
5120 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
5121             Jakub Jelinek  <jakub@redhat.com>
5122
5123         PR debug/37959
5124         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
5125         (gen_subprogram_die): When a function is explicit, generate the
5126         DW_AT_explicit attribute.
5127         * langhooks.h (struct lang_hooks_for_decls): Add
5128         function_decl_explicit_p langhook.
5129         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
5130         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
5131
5132 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
5133
5134         * builtins.c (fold_builtin_memory_op): Optimize memmove
5135         into memcpy if we can prove source and destination don't overlap.
5136
5137         * tree-inline.c: Include gt-tree-inline.h.
5138         (clone_fn_id_num): New variable.
5139         (clone_function_name): New function.
5140         (tree_function_versioning): Use it.
5141         * Makefile.in (GTFILES): Add tree-inline.c.
5142
5143 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
5144
5145         * BASE-VER: Change to 4.5.0.
5146
5147 2009-03-27  Xinliang David Li  <davidxl@google.com>
5148
5149         PR tree-optimization/39557
5150         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
5151
5152 2009-03-27  Xinliang David Li  <davidxl@google.com>
5153
5154         PR tree-optimization/39548
5155         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
5156         candidate check.
5157
5158 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5159
5160         * c-common.c (pointer_int_sum): Use %wd on return from
5161         tree_low_cst.
5162
5163 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5164
5165         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
5166         on return from tree_low_cst.
5167
5168 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5169
5170         PR c++/36799
5171         * ginclude/stdarg.h (va_copy): Define also for
5172         __GXX_EXPERIMENTAL_CXX0X__.
5173
5174 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5175
5176         PR c++/35652
5177         * builtins.h (c_strlen): Do not warn here.
5178         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5179         * c-common.c (pointer_int_sum): Take an explicit location.
5180         Warn about offsets out of bounds.
5181         * c-common.h (pointer_int_sum): Adjust declaration.
5182
5183 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5184
5185         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
5186         markup glitch.
5187
5188 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
5189
5190         PR c++/39554
5191         * opts.c (warn_if_disallowed_function_p): Don't assume
5192         get_callee_fndecl must return non-NULL.
5193
5194 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
5195
5196         PR rtl-optimization/39522
5197         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
5198         when reg_reloaded_valid is set.
5199
5200 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5201
5202         * config/spu/divv2df3.c: New file.
5203         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
5204         (DPBIT_FUNCS): Filter out _div_df.
5205
5206 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
5207
5208         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
5209         a jump insn, count that jump in the distance to the loop start.
5210
5211 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
5212
5213         PR target/39523
5214         * config/sh/sh.c (calc_live_regs): Fix condition for global
5215         registers except PIC_OFFSET_TABLE_REGNUM.
5216
5217 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
5218
5219         PR/39518
5220         * doc/invoke.texi (-mconsole): New.
5221         (-mcygwin): New.
5222         (-mno-cygwin): New.
5223         (-mdll): New.
5224         (-mnop-fun-dllimport): New.
5225         (-mthread): New.
5226         (-mwin32): New.
5227         (-mwindows): New.
5228         (sub section "i386 and x86-64 Windows Options"): New.
5229
5230 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
5231
5232         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
5233         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
5234
5235 2009-03-25  Richard Guenther  <rguenther@suse.de>
5236
5237         PR middle-end/39497
5238         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
5239         of -Wno-error.
5240
5241 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
5242
5243         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
5244         neither of haifa/selective schedulers are working.
5245
5246 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5247
5248         * doc/invoke.texi (Debugging Options): Fix description of
5249         -fno-merge-debug-strings.
5250
5251 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
5252
5253         * config/cris/libgcc.ver: New version-script.
5254         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
5255
5256         * configure.ac <GAS features, nop mnemonic>: Add pattern
5257         crisv32-*-* for "nop".
5258         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
5259         * configure: Regenerate.
5260
5261 2009-03-24  Ira Rosen  <irar@il.ibm.com>
5262
5263         PR tree-optimization/39529
5264         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
5265         mark_sym_for_renaming for the tag copied to the new vector
5266         pointer.
5267
5268 2009-03-24  Arthur Loiret  <aloiret@debian.org>
5269
5270         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
5271         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
5272         EXTRA_SPEC_FUNCTIONS.
5273         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
5274         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
5275         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
5276         -march and -mtune options.
5277
5278 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
5279
5280         * config/m68k/t-rtems: Add m5329 multilib.
5281
5282 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
5283             Jakub Jelinek  <jakub@redhat.com>
5284
5285         PR debug/39524
5286         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
5287         nodes.
5288
5289 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
5290
5291         PR c/39495
5292         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
5293         instead of c_parser_expression_conv, if original_code isn't one of the
5294         4 allowed comparison codes, fail.
5295
5296 2009-03-23  Richard Guenther  <rguenther@suse.de>
5297
5298         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
5299         * tree.h (struct tree_type): Likewise.
5300         * reload.h (struct insn_chain): Likewise.
5301         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
5302         * function.h (struct function): Likewise.
5303         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
5304
5305 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
5306
5307         PR tree-optimization/39516
5308         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
5309
5310 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
5311
5312         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
5313         should be set true if BITS_PER_WORD of target is bigger than 32
5314
5315 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
5316
5317         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
5318         Translate -B-options to -rpath-link.  Correct existing
5319         rpath-link and conditionalize on !nostdlib.
5320
5321 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5322
5323         * doc/extend.texi (Function Attributes, Variable Attributes):
5324         Fix typos.
5325         * doc/invoke.texi (Debugging Options, Optimize Options)
5326         (i386 and x86-64 Options, MCore Options): Likewise.
5327
5328 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
5329
5330         PR debug/37890
5331         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
5332         it for block local namespace aliases.
5333         (gen_decl_die): Pass context_die to gen_namespace_die.
5334
5335 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
5336
5337         PR c/39495
5338         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
5339         minimum or maximum value.
5340
5341 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
5342
5343         * reginfo.c (globalize_reg): Recompute derived reg sets.
5344
5345 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
5346
5347         PR target/39063
5348         * libgcc2.c (mprotect): Do not use signed arguments for
5349         VirtualProtect, use DWORD arguments.  Also fix the 'may
5350         be used uninitialized' warning for the np variable.
5351
5352 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
5353
5354         PR target/39496
5355         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
5356         functions using regparm calling conventions when not optimizing.
5357         (ix86_function_sseregparm): Similarly for sseregparm calling
5358         conventions.
5359
5360 2009-03-19  Li Feng  <nemokingdom@gmail.com>
5361
5362         PR middle-end/39500
5363         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
5364         dependence if the first conflict is after niter iterations.
5365
5366 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
5367
5368         PR middle-end/38609
5369         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
5370         functions with dynamic stack-pointer adjustments.
5371
5372 2009-03-19  Ben Elliston  <bje@au.ibm.com>
5373
5374         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
5375         option; change to -msdata=data.
5376
5377 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5378
5379         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
5380         and -fopenmp.
5381
5382 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
5383
5384         PR target/35180
5385         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
5386
5387 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
5388
5389         * doc/invoke.texi (Code Gen Options): Expand discussion of
5390         -fno-common.
5391
5392 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
5393
5394         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
5395         * matrix-reorg.c (struct matrix_info): Likewise.
5396         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
5397         * rtl.h (struct mem_attrs): Likewise.
5398         * df.h (struct df): Likewise.
5399         * tree-data-ref.h (struct data_dependence_relation): Likewise.
5400         * ira-int.h (struct ira_allocno): Likewise.
5401         * df-scan.c (struct df_collection_rec): Likewise.
5402         * ira.c (struct equivalence): Likewise.
5403         * function.c (struct temp_slot): Likewise.
5404         * cfgloop.h (struct loop): Likewise.
5405
5406         PR debug/39485
5407         * function.c (use_register_for_decl): When not optimizing, disregard
5408         register keyword for variables with types containing methods.
5409
5410 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
5411
5412         PR middle-end/39447
5413         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
5414         (is_simple_operand): Call contains_component_ref_p before calling data
5415         reference analysis that would fail on COMPONENT_REFs.
5416
5417         * tree-vrp.c (search_for_addr_array): Fix formatting.
5418
5419 2009-03-18  Richard Guenther  <rguenther@suse.de>
5420
5421         * tree-vect-transform.c (vect_loop_versioning): Fold the
5422         generated comparisons.
5423         * tree-vectorizer.c (set_prologue_iterations): Likewise.
5424         (slpeel_tree_peel_loop_to_edge): Likewise.
5425
5426 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5427
5428         PR middle-end/37805
5429         * opts.c (print_specific_help): In addition to `undocumented',
5430         accept `separate' and `joined' flags if passed alone.  Describe
5431         output by the first matched one of those.
5432         (common_handle_option): Skip over empty strings.
5433         * gcc.c (display_help): Fix help string for `--help='.
5434         * doc/invoke.texi (Option Summary, Overall Options): With
5435         `--help=', classes and qualifiers can both be repeated, but
5436         only the latter can be negated.  One should not pass only
5437         negated qualifiers.  Fix markup and examples.
5438
5439         Revert
5440         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
5441         PR middle-end/37805
5442         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
5443         and -fhelp=separate.
5444
5445 2009-03-17  Jing Yu  <jingyu@google.com>
5446
5447         PR middle-end/39378
5448         * function.h (struct rtl_data): Move is_thunk from here...
5449         (struct function): ...to here.
5450         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
5451         * varasm.c (assemble_start_function): Change is_thunk from crtl to
5452         cfun.
5453         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
5454         cfun.
5455         (alpha_does_function_need_gp, alpha_start_function): Likewise.
5456         (alpha_output_function_end_prologue): Likewise.
5457         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
5458         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
5459         (rs6000_output_function_epilogue): Likewise.
5460         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
5461
5462 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
5463
5464         PR target/39482
5465         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
5466         from different units in a single alternative.
5467         (*truncdfsf_i387): Ditto.
5468         (*truncxfsf2_mixed): Ditto.
5469         (*truncxfdf2_mixed): Ditto.
5470
5471 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
5472
5473         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
5474         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
5475
5476         PR debug/39474
5477         * tree-ssa-live.c (remove_unused_locals): Don't remove local
5478         unused non-artificial variables when not optimizing.
5479
5480         PR debug/39471
5481         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
5482         DW_TAG_imported_module even if decl is IMPORTED_DECL with
5483         NAMESPACE_DECL in its DECL_INITIAL.
5484
5485         PR middle-end/39443
5486         * optabs.c (set_user_assembler_libfunc): New function.
5487         * expr.h (set_user_assembler_libfunc): New prototype.
5488         * c-common.c: Include libfuncs.h.
5489         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
5490         for memcmp, memset, memcpy, memmove and abort.
5491         * Makefile.in (c-common.o): Depend on libfuncs.h.
5492
5493         PR debug/39412
5494         * dwarf2out.c (gen_inlined_enumeration_type_die,
5495         gen_inlined_structure_type_die, gen_inlined_union_type_die,
5496         gen_tagged_type_instantiation_die): Removed.
5497         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
5498         do nothing.
5499
5500 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
5501
5502         PR testsuite/38526
5503         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
5504         its use.
5505         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
5506         (check-parallel-%): Ditto.
5507         (check-consistency): Ditto.
5508
5509 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
5510
5511         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
5512         local variable rhs by NULL_TREE.
5513
5514 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5515
5516         PR target/39477
5517         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
5518
5519 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5520
5521         PR target/39476
5522         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
5523
5524 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5525
5526         PR target/39473
5527         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
5528         for ms->sysv ABI calls only in 64bit mode.
5529
5530         * config/i386/i386.md (untyped_call): Support 32bit.
5531
5532 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
5533
5534         * doc/extend.texi: Replace x86_65 with x86_64.
5535
5536 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
5537
5538         PR tree-optimization/39455
5539         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
5540         mismatches for POINTER_TYPE_P (type).
5541         (number_of_iterations_le): Likewise.
5542
5543 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
5544
5545         * config/picochip/picochip.c: Removed profiling support.
5546         * config/picochip/picochip.md: Removed profiling instruction.
5547         * config/picochip/picochip.h: Removed profiling builtin.
5548
5549 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
5550
5551         * doc/install.texi (--with-host-libstdcxx): Document.
5552
5553 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
5554
5555         PR target/34299
5556         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
5557         generate a warning if the function name does not begin with
5558         "__vector" and the function has either the 'signal' or 'interrupt'
5559         attribute, from here to ...
5560         (avr_declare_function_name): ...here. New function.
5561         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
5562         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
5563
5564 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
5565
5566         PR bootstrap/39454
5567         * cse.c (fold_rtx): Don't modify original const_arg1 when
5568         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
5569         separate variable instead.
5570         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
5571         from out of range shift counts.
5572         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
5573
5574 2009-03-13  Catherine Moore  <clm@codesourcery.com>
5575
5576         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
5577         diagnostic.h with $(DIAGNOSTIC_H).
5578
5579 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
5580
5581         PR target/39431
5582         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
5583         predicate.
5584         * config/i386/sync.md (sync_compare_and_swap<mode>,
5585         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
5586         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
5587         into a register.
5588         (sync_double_compare_and_swapdi_pic,
5589         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
5590         cmpxchg8b_pic_memory_operand instead of just memory_operand.
5591
5592 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5593
5594         PR target/39445
5595         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
5596
5597 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5598
5599         PR target/39327
5600         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5601         (avx_addsubv4df3): Likewise.
5602         (*avx_addsubv4sf3): Likewise.
5603         (sse3_addsubv4sf3): Likewise.
5604
5605 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
5606
5607         PR target/38824
5608         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
5609
5610 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
5611
5612         PR debug/39432
5613         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
5614         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5615         registers for allocnos created from user-defined variables.
5616
5617 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5618
5619         PR target/39181
5620         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
5621         of non-integer mode as well.
5622
5623 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
5624
5625         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
5626         for functions for which the parameter types are unknown.
5627
5628 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
5629
5630         PR target/39137
5631         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
5632         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
5633         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
5634         * config/i386/i386.c (ix86_local_alignment): For
5635         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
5636         long long variables on the stack to avoid dynamic realignment.
5637         Allow the first argument to be a decl rather than type.
5638         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
5639
5640 2009-03-11  Nick Clifton  <nickc@redhat.com>
5641
5642         PR target/5362
5643         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
5644         options.
5645         Add description to mno-lsim option.
5646         * config/mcore/mcore.h: Remove comment about deprecated m4align
5647         option.
5648         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
5649         * doc/invoke.texi: Add description of mno-lsim and
5650         mstack-increment options.
5651
5652         * config/fr30/fr30.opt: Document the -mno-lsim option.
5653         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
5654         and -mno-lsim options.
5655
5656 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5657
5658         * fold-const.c (fold_comparison): Only call fold_inf_compare
5659         if the mode supports infinities.
5660
5661 2009-03-11  Jason Merrill  <jason@redhat.com>
5662
5663         PR debug/39086
5664         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
5665         end already did.  Notice GIMPLE_CALL modifications of the result.
5666         Don't copy debug information from an ignored decl or a decl from
5667         another function.
5668
5669 2009-03-10  Richard Guenther  <rguenther@suse.de>
5670             Nathan Froyd  <froydnj@codesourcery.com>
5671
5672         PR middle-end/37850
5673         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
5674         (__divMODE3): Likewise.
5675
5676 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
5677
5678         PR tree-optimization/39394
5679         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
5680         DECL_SIZE_UNIT of variable length FIELD_DECLs.
5681
5682 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5683
5684         * recog.c (verfiy_changes): Disallow renaming of hard regs in
5685         inline asms for register asm ("") declarations.
5686
5687 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
5688
5689         * fold-const.c (fold_unary): Fix comment.
5690
5691 2009-03-07  Jan Hubicka  <jh@suse.cz>
5692
5693         PR target/39361
5694         * tree-inline.c (setup_one_parameter): Do replacement of const
5695         argument by constant in SSA form.
5696
5697 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5698
5699         PR middle-end/38028
5700         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
5701         determine alignment passed to assign_stack_local.
5702         (assign_parms_unsplit_complex): Likewise.
5703         * except.c (sjlj_build_landing_pads): Likewise.
5704
5705 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
5706
5707         PR middle-end/39360
5708         * tree-flow.h (add_referenced_var): Return bool instead of void.
5709         * tree-dfa.c (add_referenced_var): Return result of
5710         referenced_var_check_and_insert call.
5711         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
5712         of referenced_var_check_and_insert.
5713
5714         PR debug/39372
5715         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
5716         (gen_variable_die): Emit DW_AT_location on abstract static variable's
5717         DIE, don't emit it if abstract origin already has it.
5718         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
5719         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
5720
5721 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5722
5723         * genpreds.c (needs_variable): Fix parentheses at variable name
5724         detection.
5725         (write_tm_constrs_h): Indent generated code.
5726
5727 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5728
5729         * doc/extend.texi (Function Attributes): Add documentation
5730         for isr attributes.
5731
5732 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
5733
5734         PR debug/39387
5735         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
5736         take locus from its DECL_SOURCE_LOCATION instead of input_location.
5737
5738 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5739
5740         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
5741         the loop as bad.
5742
5743 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
5744
5745         PR debug/39379
5746         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
5747         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
5748
5749 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
5750
5751         * config/i386/i386.md (R8_REG, R9_REG): New constants.
5752         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
5753         constants instead of magic numbers.
5754         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
5755         (QI_REG_P): Ditto.
5756         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
5757         (x86_64_ms_abi_int_parameter_registers): Ditto.
5758         (x86_64_int_return_registers): Ditto.
5759         (ix86_maybe_switch_abi): Ditto.
5760         (ix86_expand_call): Ditto for clobbered_registers array.
5761         (ix86_hard_regno_mode_ok): Ditto.
5762         (x86_extended_QIreg_mentioned_p): Ditto.
5763
5764 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
5765
5766         PR tree-optimization/39349
5767         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
5768
5769         * combine.c (gen_lowpart_for_combine): Use omode when generating
5770         clobber.
5771
5772 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
5773
5774         PR rtl-optimization/39235
5775         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
5776
5777 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
5778
5779         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
5780
5781 2009-03-04  Richard Guenther  <rguenther@suse.de>
5782
5783         PR tree-optimization/39362
5784         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
5785         that occur in abnormal PHIs should be varying.
5786
5787 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
5788
5789         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
5790         Extend comments.
5791         (simple_iv):  Take loop as an argument instead of statement.
5792         * tree-scalar-evolution.h (simple_iv): Declaration changed.
5793         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
5794         to simple_iv.
5795         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
5796         Ditto.
5797         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
5798         * matrix-reorg.c (analyze_transpose): Ditto.
5799         * tree-data-ref.c (dr_analyze_innermost): Ditto.
5800         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
5801         * tree-predcom.c (ref_at_iteration): Ditto.
5802         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
5803
5804 2009-03-04  Richard Guenther  <rguenther@suse.de>
5805
5806         PR tree-optimization/39358
5807         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
5808         escaped_id and callused_id.
5809         (solve_graph): Likewise.
5810
5811 2009-03-04  Richard Guenther  <rguenther@suse.de>
5812
5813         PR tree-optimization/39339
5814         * tree-sra.c (try_instantiate_multiple_fields): Make it
5815         no longer ICE on the above.
5816
5817 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
5818
5819         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
5820         that fits within Pmode.
5821
5822 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
5823
5824         PR middle-end/10109
5825         * tm.texi (LIBCALL_VALUE): Update description.
5826
5827 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
5828
5829         PR middle-end/34443
5830         * doc/extend.texi (section): Update description.
5831
5832 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
5833
5834         PR middle-end/39345
5835         * tree-inline.c (remapped_type): New.
5836         (can_be_nonlocal): Call remapped_type instead of remap_type.
5837
5838 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
5839
5840         PR fortran/39354
5841         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
5842         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
5843
5844 2009-03-03  Richard Guenther  <rguenther@suse.de>
5845
5846         PR middle-end/39272
5847         * tree.c (tree_nonartificial_location): New function.
5848         * tree.h (tree_nonartificial_location): Declare.
5849         * builtins.c (expand_builtin_memory_chk): Provide location
5850         of the call location for artificial function pieces.
5851         (maybe_emit_chk_warning): Likewise.
5852         (maybe_emit_sprintf_chk_warning): Likewise.
5853         (maybe_emit_free_warning): Likewise.
5854         * expr.c (expand_expr_real_1): Likewise.
5855
5856 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
5857
5858         PR tree-optimization/39343
5859         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
5860         COMPONENT_REF t has ARRAY_TYPE.
5861
5862 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
5863
5864         PR middle-end/39335
5865         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
5866         when the type precision of the induction variable should be
5867         larger than the type precision of nit.
5868         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
5869         * graphite.c (graphite_loop_normal_form): Same.
5870         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
5871
5872 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
5873
5874         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
5875         (*call_1_rex64_ms_sysv): Use named constants instead of magic
5876         numbers to describe clobbered registers.
5877         (*call_value_0_rex64_ms_sysv): Ditto.
5878         * config/i386/mmx.md (mmx_emms): Ditto.
5879         (mmx_femms): Ditto.
5880
5881 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
5882
5883         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
5884         of ABI_64.
5885
5886 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5887
5888         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
5889         (spu_section_type_flags): New function.
5890
5891 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
5892
5893         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
5894         reg_class_contents of FLOAT_REGS into a temporary.
5895
5896 2009-03-02  Richard Guenther  <rguenther@suse.de>
5897             Ira Rosen  <irar@il.ibm.com>
5898
5899         PR tree-optimization/39318
5900         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
5901         information to the vectorized statement.
5902
5903 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
5904
5905         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
5906         variable.  Use defined names instead of magic constants for REX SSE
5907         registers.
5908
5909 2009-03-01  Richard Guenther  <rguenther@suse.de>
5910
5911         PR tree-optimization/39331
5912         * omp-low.c (lower_send_shared_vars): Do not receive new
5913         values for the reference of DECL_BY_REFERENCE parms or results.
5914
5915 2009-03-01  Jan Hubicka  <jh@suse.cz>
5916
5917         PR debug/39267
5918         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
5919         BLOCK_NONLOCALIZED_VAR): New macros.
5920         (tree_block): Add nonlocalized_vars.
5921         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
5922         gen_decl_die): Add origin argument.  Allow generation of die with
5923         origin at hand only.
5924         (gen_member_die, gen_type_die_with_usage, force_decl_die,
5925         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
5926         of gen_*.
5927         (gen_block_die): Fix checking for unused blocks.
5928         (process_scope_var): Break out from .... ; work with origins only.
5929         (decls_for_scope) ... here; process nonlocalized list.
5930         (dwarf2out_ignore_block): Look for nonlocalized vars.
5931         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
5932         vars.
5933         (dump_scope_block): Dump them.
5934         * tree-inline.c (remap_decls): Handle nonlocalized vars.
5935         (remap_block): Likewise.
5936         (can_be_nonlocal): New predicate.
5937         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
5938
5939 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5940
5941         * configure: Regenerate.
5942
5943 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5944
5945         * optc-gen.awk: No need to duplicate option flags twice.
5946         Reuse help texts for duplicate options which do not have any.
5947
5948         * gcc.c (display_help): Document --version.
5949
5950         * gcc.c (main): If print_help_list and verbose_flag, ensure
5951         driver output comes before subprocess output.
5952
5953         * optc-gen.awk: Assign all remaining fields to help string,
5954         space-separated, for multi-line help in *.opt.
5955
5956         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
5957         -Wno-pedantic-ms-format is for MinGW targets only.
5958
5959         * doc/options.texi (Option file format): Fix bad indentation,
5960         restoring dropped sentence.
5961
5962 2009-02-28  Jan Hubicka  <jh@suse.cz>
5963
5964         * tree-inline.c (tree_function_versioning): Output debug info.
5965
5966 2009-02-28  Jan Hubicka  <jh@suse.cz>
5967
5968         PR debug/39267
5969         * tree-inline.c (setup_one_parameter): Do not copy propagate
5970         arguments when not optimizing.
5971
5972 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
5973
5974         PR target/39327
5975         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
5976         (avx_addsubv4df3): Likewise.
5977         (*avx_addsubv4sf3): Likewise.
5978         (sse3_addsubv4sf3): Likewise.
5979         (*avx_addsubv2df3): Likewise.
5980         (sse3_addsubv2df3): Likewise.
5981         (avx_unpckhps256): Correct item selectors.
5982         (avx_unpcklps256): Likewise.
5983         (avx_unpckhpd256): Likewise.
5984         (avx_unpcklpd256): Likewise.
5985
5986 2009-02-28  Jan Hubicka  <jh@suse.cz>
5987
5988         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
5989         static vars.
5990         (copy_arguments_for_versioning): If var is declared don't declare it.
5991         (tree_function_versioning): First setup substitutions and then copy
5992         args.
5993
5994 2009-02-27  Jan Hubicka  <jh@suse.cz>
5995
5996         PR debug/39267
5997         * cgraph.h (varpool_output_debug_info): Remove.
5998         * cgraphunit.c (varpool_output_debug_info): Remove.
5999         * dwarf2out.c (deferred_locations_struct): New struct
6000         (deferred_locations): New type.
6001         (deferred_locations_list): New static var.
6002         (deffer_location): New function.
6003         (gen_variable_die): Use it.
6004         (decls_for_scope): Output info on local static vars.
6005         (dwarf2out_finish): Process deferred locations.
6006         * varpool.c (varpool_output_debug_info): Remove.
6007
6008 2009-02-27  Jan Hubicka  <jh@suse.cz>
6009
6010         PR debug/39267
6011         * tree.h (TREE_PROTECTED): Fix comment.
6012         (BLOCK_HANDLER_BLOCK): Remove.
6013         (struct tree_block): Remove handler_block add body_block.
6014         (inlined_function_outer_scope_p): New.
6015         (is_body_block): Remove.
6016         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
6017         * dwarf2out.c (is_inlined_entry_point): Remove.
6018         (add_high_low_attributes): Use inlined_function_outer_scope_p.
6019         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
6020         code.
6021         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
6022         * gimplify.c (gimplify_expr): Gimplify body blocks.
6023         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
6024         block with multiple subblocks.
6025         (dump_scope_block): Prettier output; dump more flags and info.
6026         (dump_scope_blocks): New.
6027         (remove_unused_locals): Use dump_scope_blocks.
6028         * tree-flow.h (dump_scope_blocks): Declare.
6029         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
6030         * stmt.c (is_body_block): Remove.
6031         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
6032         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
6033
6034 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
6035
6036         PR middle-end/39308
6037         * graphite.c (graphite_loop_normal_form): Do not call
6038         number_of_iterations_exit from a gcc_assert.
6039
6040 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6041
6042         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
6043         jumps if COND is NULL.
6044         (find_cond_jump): New function.
6045         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
6046         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
6047
6048 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
6049
6050         * config/alpha/alpha.h (alpha_expand_mov): Return false if
6051         force_const_mem returns NULL_RTX.
6052
6053 2009-02-26  Jan Hubicka  <jh@suse.cz>
6054
6055         PR debug/39267
6056         * cgraph.h (varpool_output_debug_info): Remove.
6057         * cgraphunit.c (varpool_output_debug_info): Remove.
6058         * dwarf2out.c (deferred_locations_struct): New struct
6059         (deferred_locations): New type.
6060         (deferred_locations_list): New static var.
6061         (deffer_location): New function.
6062         (gen_variable_die): Use it.
6063         (decls_for_scope): Output info on local static vars.
6064         (dwarf2out_finish): Process deferred locations.
6065         * varpool.c (varpool_output_debug_info): Remove.
6066
6067 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6068
6069         PR rtl-optimization/39241
6070         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
6071         to subreg_offset_representable_p.
6072
6073 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6074
6075         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
6076         execute function prototype.  Get f and nregs from max_reg_num
6077         and get_insns.  Remove the first backward pass as it's dead,
6078         guard the forward pass by flag_expensive_optimizations.
6079         (rest_of_handle_regmove): Delete.
6080         (pass_regmove): Replace it with regmove_optimize.
6081
6082 2009-02-25  Martin Jambor  <mjambor@suse.cz>
6083
6084         PR tree-optimization/39259
6085         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6086         calls_alloca function flags.
6087         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
6088         calls are detected.
6089
6090 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6091
6092         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
6093         flags_set_1_rtx, flags_set_1_set): Delete.
6094         (regmove_optimize): Do not call mark_flags_life_zones.
6095
6096 2009-02-24  Julian Brown  <julian@codesourcery.com>
6097
6098         PR target/35965
6099         * config/arm/arm.c (require_pic_register): Only set
6100         cfun->machine->pic_reg once per function.
6101
6102 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
6103
6104         * doc/invoke.texi (Link Options): Document an easier way to pass
6105         options that take arguments to the GNU linker using -Xlinker and -Wl.
6106
6107 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
6108
6109         PR target/33785
6110         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
6111
6112 2009-02-24  Richard Guenther  <rguenther@suse.de>
6113
6114         PR debug/39285
6115         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
6116
6117 2009-02-24  Richard Guenther  <rguenther@suse.de>
6118             Zdenek Dvorak  <ook@ucw.cz>
6119
6120         PR tree-optimization/39233
6121         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
6122         from converting them to a generic type.
6123
6124 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
6125
6126         PR tree-optimization/39260
6127         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
6128         contains a condition with a real type.
6129         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
6130
6131 2009-02-23  Jason Merrill  <jason@redhat.com>
6132
6133         PR c++/38880
6134         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
6135         narrowing_initializer_constant_valid_p.
6136         (narrowing_initializer_constant_valid_p): Don't return
6137         null_pointer_node for adding a pointer to itself.
6138
6139 2009-02-23  Jan Hubicka  <jh@suse.cz>
6140
6141         PR c/12245
6142         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
6143         resizing.
6144
6145 2009-02-23  Jan Hubicka  <jh@suse.cz>
6146
6147         PR tree-optimization/37709
6148         * tree.c (block_ultimate_origin): Move here from dwarf2out.
6149         * tree.h (block_ultimate_origin): Declare.
6150         * dwarf2out.c (block_ultimate_origin): Move to tree.c
6151         * tree-ssa-live.c (remove_unused_scope_block_p):
6152         Eliminate blocks containig no instructions nor live variables nor
6153         nested blocks.
6154         (dump_scope_block): New function.
6155         (remove_unused_locals): Enable removal of dead blocks by default;
6156         enable dumping at TDF_DETAILS.
6157
6158 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6159
6160         * config/i386/i386.c (classify_argument): Don't allow COImode
6161         and OImode.
6162         (function_arg_advance_32): Don't allow OImode.
6163         (function_arg_32): Likewise.
6164         (function_value_32): Likewise.
6165         (return_in_memory_32): Likewise.
6166         (function_arg_64): Remove OImode comment.
6167
6168 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6169
6170         PR target/39261
6171         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6172         ix86_expand_vector_set for V4DImode in 64bit mode only.
6173         (ix86_expand_vector_init_one_var): Likewise.
6174
6175 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
6176
6177         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
6178
6179 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6180
6181         PR bootstrap/39257
6182         * loop-iv.c: Revert last change.
6183         * emit-rtl.c: Likewise.
6184
6185 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6186
6187         PR target/39256
6188         * config/i386/i386.c (type_natural_mode): Remove an extra
6189         space in the warning message.
6190         (function_value_32): Handle 32-byte vector modes.
6191         (return_in_memory_32): Likewise.
6192
6193 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6194
6195         * loop-iv.c (truncate_value): New function.
6196         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
6197         of lowpart_subreg.
6198         (lowpart_subreg): Move to...
6199         * emit-rtl.c: ...here.
6200
6201 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
6202
6203         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
6204         accidental and undocumented change at revision 140860.
6205
6206 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
6207
6208         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
6209         take gimple_seq * arguments.
6210         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
6211         types_compatible_p langhook.
6212
6213 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
6214             Joseph Myers  <joseph@codesourcery.com>
6215
6216         * config/arm/arm.c (arm_builtin_va_list): New function.
6217         (arm_expand_builtin_va_start): Likewise.
6218         (arm_gimplify_va_arg_expr): Likewise.
6219         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
6220         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
6221         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
6222         (va_list_type): New variable.
6223         (arm_mangle_type): Mangle va_list_type appropriately.
6224
6225 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6226
6227         PR middle-end/39157
6228         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
6229         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
6230         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
6231         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
6232         parameter to 1000 for -O1 by default.
6233         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
6234         parameter.
6235         * loop-invariant.c: Include params.h.
6236         (move_loop_invariants): Don't call move_single_loop_invariants on
6237         very large loops.
6238
6239 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
6240
6241         * calls.c (emit_library_call_value_1): Use slot_offset instead of
6242         offset when calculating bounds for indexing stack_usage_map.  Fixes
6243         a buffer overflow with certain target setups.
6244
6245 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6246
6247         PR target/39240
6248         * calls.c (expand_call): Clear try_tail_call if caller and callee
6249         disagree in promotion of function return value.
6250
6251 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
6252
6253         PR target/39175
6254         * c-common.c (c_determine_visibility): If visibility changed and
6255         DECL_RTL has been already set, call make_decl_rtl to update symbol
6256         flags.
6257
6258 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
6259
6260         PR c++/39188
6261         * varasm.c (assemble_variable): Don't check DECL_NAME when
6262         globalizing a variable.
6263
6264 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
6265
6266         PR c/38483
6267         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
6268         expression before any __builtin_trap call.
6269         * c-typeck.c (build_function_call): Convert and check function
6270         arguments before generating a call to a trap.  Evaluate the
6271         function arguments before the trap.
6272
6273 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
6274
6275         PR target/39228
6276         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
6277         (UNSPEC_FXAM_MEM): New unspec.
6278         (fxam<mode>2_i387_with_temp): New insn and split pattern.
6279         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
6280         memory using fxam<mode>2_i387_with_temp to remove excess precision.
6281
6282 2009-02-19  Richard Guenther  <rguenther@suse.de>
6283
6284         PR tree-optimization/39207
6285         PR tree-optimization/39074
6286         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
6287         storedanything_tree): New.
6288         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
6289         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
6290         (build_succ_graph): Add edges from STOREDANYTHING to all
6291         non-direct nodes.
6292         (init_base_vars): Initialize STOREDANYTHING.
6293         (compute_points_to_sets): Free substitution info after
6294         building the succ graph.
6295         (ipa_pta_execute): Likewise.
6296
6297         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
6298         field.
6299         (do_ds_constraint): Do not add to special var or non-pointer
6300         field solutions.
6301         (type_could_have_pointers): Split out from ...
6302         (could_have_pointers): ... here.  For arrays use the element type.
6303         (create_variable_info_for): Initialize may_have_pointers.
6304         (new_var_info): Likewise.
6305         (handle_lhs_call): Make the HEAP variable unknown-sized.
6306         (intra_create_variable_infos): Use a type with pointers for
6307         PARM_NOALIAS, make it unknown-sized.
6308
6309 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
6310
6311         PR target/39224
6312         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
6313
6314 2009-02-18  Jason Merrill  <jason@redhat.com>
6315
6316         PR target/39179
6317         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
6318         value if DECL_EXTERNAL.
6319         * tree-sra.c (sra_walk_gimple_assign): Likewise.
6320         * target.h (gcc_target::binds_local_p): Clarify "module".
6321         * tree.h (TREE_PUBLIC): Clarify "module".
6322
6323 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
6324
6325         PR target/38891
6326         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
6327         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
6328
6329 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
6330
6331         PR target/39082
6332         * c.opt (Wabi): Support C and ObjC.
6333         (Wpsabi): New.
6334
6335         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
6336
6337         * config/i386/i386.c (classify_argument): Warn once about the ABI
6338         change when passing union with long double.
6339
6340         * doc/invoke.texi: Update -Wabi for warning psABI changes.
6341
6342 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
6343
6344         PR c/35447
6345         * c-parser.c (c_parser_compound_statement): Always enter and leave
6346         a scope.
6347
6348 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6349
6350         PR target/34587
6351         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
6352
6353 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR tree-optimization/36922
6356         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
6357         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
6358         Likewise.
6359
6360 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6361
6362         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
6363         to 0 for EABI64.
6364
6365 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6366
6367         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
6368
6369 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
6370
6371         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
6372         tree sharing.
6373
6374 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
6375             Richard Sandiford  <rdsandiford@googlemail.com>
6376
6377         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
6378         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
6379         (loongson_biadd): ...this.
6380
6381 2009-02-17  Richard Guenther  <rguenther@suse.de>
6382
6383         PR tree-optimization/39202
6384         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
6385         a var make sure to follow existing collapses.
6386
6387 2009-02-17  Richard Guenther  <rguenther@suse.de>
6388
6389         PR middle-end/39214
6390         * langhooks.c (lhd_print_error_function): Check for NULL block.
6391
6392 2009-02-17  Richard Guenther  <rguenther@suse.de>
6393
6394         PR tree-optimization/39204
6395         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
6396         of the PHI arg.
6397
6398 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
6399
6400         * config/soft-fp/double.h: Update from glibc CVS.
6401
6402 2009-02-17  Richard Guenther  <rguenther@suse.de>
6403
6404         PR tree-optimization/39207
6405         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
6406         strict-aliasing warnings for pointers pointing to NULL.
6407
6408 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
6409
6410         PR c/35446
6411         * c-parser.c (c_parser_braced_init): Call pop_init_level when
6412         skipping until next close brace.
6413
6414 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
6415
6416         PR target/37049
6417         * config/i386/i386.c (ix86_expand_push): Set memory alignment
6418         to function argument boundary.
6419
6420 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
6421
6422         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
6423         in the lea_add. Reload eventually constraints it properly.
6424         * config/picochip/constraints.md : Remove the target constraint
6425         "b", since it is not needed anymore.
6426
6427 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
6428
6429         * gthr-dce.h: Uglify function parameter and local variable names.
6430         * gthr-gnat.h: Likewise.
6431         * gthr-mipssde.h: Likewise.
6432         * gthr-nks.h: Likewise.
6433         * gthr-posix95.h: Likewise.
6434         * gthr-posix.h: Likewise.
6435         * gthr-rtems.h: Likewise.
6436         * gthr-single.h: Likewise.
6437         * gthr-solaris.h: Likewise.
6438         * gthr-tpf.h: Likewise.
6439         * gthr-vxworks.h: Likewise.
6440         * gthr-win32.h: Likewise.
6441
6442 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
6443
6444         PR target/39196
6445         * config/i386/i386.md: Restrict the new peephole2 to move
6446         between MMX/SSE registers.
6447
6448 2009-02-15  Richard Guenther  <rguenther@suse.de>
6449
6450         Revert
6451         2009-02-13  Richard Guenther  <rguenther@suse.de>
6452
6453         * configure.ac: Enable LFS.
6454         * configure: Re-generate.
6455         * config.in: Likewise.
6456
6457 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6458
6459         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
6460         spu_srqwbyte, spu_srqwbytebc): Define.
6461         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
6462         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
6463         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
6464         "shrqby_<mode>"): New insn-and-split patterns.
6465         * config/spu/spu.c (expand_builtin_args): Determine and return
6466         number of operands using spu_builtin_description data.
6467         (spu_expand_builtin_1): Use it.
6468
6469 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
6470
6471         PR target/38056
6472         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
6473         TARGET_CONST_GP.
6474
6475 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6476
6477         PR target/39149
6478         * config/i386/i386.c (override_options): Correct warning
6479         messages for -malign-loops, -malign-jumps and -malign-functions.
6480
6481 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6482
6483         PR target/39152
6484         * config/i386/i386.md: Restrict the new peephole2 to move
6485         between the general purpose registers.
6486
6487 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
6488
6489         PR target/39162
6490         * config/i386/i386.c (type_natural_mode): Add a new argument.
6491         Return the original mode and warn ABI change if vector size is 32byte.
6492         (function_arg_advance): Updated.
6493         (function_arg): Likewise.
6494         (ix86_function_value): Likewise.
6495         (ix86_return_in_memory): Likewise.
6496         (ix86_sol10_return_in_memory): Likewise.
6497         (ix86_gimplify_va_arg): Likewise.
6498         (function_arg_32): Don't warn ABX ABI change here.
6499         (function_arg_64): Likewise.
6500
6501 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
6502
6503         * loop-iv.c (implies_p): In the final case, test that operands 0
6504         of the two comparisons match.
6505
6506         * config/bfin/bfin.c (find_prev_insn_start): New function.
6507         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
6508         (find_next_insn_start): Move.
6509
6510 2009-02-13  Richard Guenther  <rguenther@suse.de>
6511
6512         * configure.ac: Enable LFS.
6513         * configure: Re-generate.
6514         * config.in: Likewise.
6515
6516 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
6517
6518         PR c/35444
6519         * c-parser.c (c_parser_parms_list_declarator): Discard pending
6520         sizes on syntax error after some arguments have been parsed.
6521
6522 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
6523
6524         * doc/invoke.texi (-fira): Remove.
6525
6526 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6527
6528         * caller-save.c: Replace regclass.c with reginfo.c in comments.
6529         * recog.c: Likewise.
6530         * rtl.h: Likewise.
6531
6532 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
6533
6534         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
6535         (umul_ppmm): Likewise.
6536         (count_leading_zeros): Likewise.
6537         (count_trailing_zeros): Likewise.
6538         (UMUL_TIME): Likewise.
6539
6540 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6541
6542         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
6543         soft-fp/t-softfp to tmake_file.
6544
6545         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
6546         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
6547         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
6548         IA64_BUILTIN_INFQ]: New.
6549         (ia64_init_builtins): Initialize __builtin_infq,
6550         __builtin_fabsq and __builtin_copysignq if not HPUX.
6551         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
6552         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
6553
6554         * config/ia64/lib1funcs.asm (__divtf3): Define only if
6555         SHARED is defined.
6556         (__fixtfti): Likewise.
6557         (__fixunstfti): Likewise.
6558         (__floattitf): Likewise.
6559
6560         * config/ia64/libgcc-glibc.ver: New.
6561         * config/ia64/t-fprules-softfp: Likewise.
6562         * config/ia64/sfp-machine.h: Likewise.
6563
6564         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
6565         (LIBGCC2_TF_CEXT): Likewise.
6566         (TF_SIZE): Likewise.
6567         (TARGET_INIT_LIBFUNCS): Likewise.
6568
6569         * config/ia64/t-glibc (SHLINB_MAPFILES):
6570         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
6571
6572 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
6573
6574         * config/i386/i386.c (construct_container): Rewrite processing
6575         BLKmode with X86_64_SSE_CLASS.
6576
6577 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
6578
6579         PR target/39152
6580         * config/i386/i386.md: Replace simplify_replace_rtx with
6581         replace_rtx in the new peephole2.
6582
6583 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
6584
6585         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
6586         loop unrolling do not happen at -O2.
6587
6588 2009-02-12  Michael Matz  <matz@suse.de>
6589
6590         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
6591
6592 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
6593
6594         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
6595         for -g3.
6596
6597 2009-02-12  Ben Elliston  <bje@au.ibm.com>
6598
6599         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
6600         patterns when updating the back chain.  Missed in the 2009-02-10
6601         change.
6602
6603 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
6604
6605         * doc/extend.texi (Decimal Floating Types): Update identifier of
6606         draft TR and list of missing support.
6607
6608 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
6609
6610         PR middle-end/39154
6611         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
6612         bit to variable length decl's flags, add it also to its
6613         pointer replacement variable.
6614
6615 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
6616             Jakub Jelinek  <jakub@redhat.com>
6617
6618         PR target/39118
6619         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
6620         (memory_blockage): New expander.
6621         (*memory_blockage): New insn pattern.
6622         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
6623         instead of general blockage at the end of function prologue when
6624         frame pointer is used to access red zone area.  Do not emit blockage
6625         when profiling, it is emitted in generic code.
6626         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
6627         function epilogue when frame pointer is used to access red zone area.
6628
6629 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
6630
6631         PR target/38824
6632         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
6633         by arithmetic with memory operands.
6634         * config/i386/predicates.md (commutative_operator): New.
6635
6636 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
6637
6638         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
6639         bulleted lists.
6640
6641 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
6642
6643         * alias.h (record_alias_subset): Declare.
6644         * alias.c (record_alias_subset): Make global.
6645
6646 2009-02-10  Nick Clifton  <nickc@redhat.com>
6647
6648         * tree-parloops.c: Change license to GPLv3.
6649         * ipa-struct-reorg.c: Change license to GPLv3.
6650         * ipa-struct-reorg.h: Change license to GPLv3.
6651
6652 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
6653
6654         PR c/39084
6655         * c-decl.c (start_struct): Return NULL on error.
6656
6657 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
6658
6659         PR middle-end/39124
6660         * cfgloopmanip.c (remove_path): Call remove_bbs after
6661         cancel_loop_tree, not before it.
6662
6663         PR target/39139
6664         * function.h (struct function): Add has_local_explicit_reg_vars bit.
6665         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
6666         VAR_DECLs were seen.
6667         * tree-ssa-live.c (remove_unused_locals): Recompute
6668         cfun->has_local_explicit_reg_vars.
6669         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
6670         copies or clearings if cfun->has_local_explicit_reg_vars.
6671
6672 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
6673
6674         PR target/39118
6675         * config/i386/i386.c (expand_prologue): Emit blockage at the end
6676         of function prologue when frame pointer is used to access
6677         red zone area.
6678
6679 2009-02-10  Richard Guenther  <rguenther@suse.de>
6680
6681         PR middle-end/39127
6682         * gimplify.c (gimple_regimplify_operands): Always look if
6683         we need to create a temporary.
6684
6685 2009-02-10  Richard Guenther  <rguenther@suse.de>
6686
6687         PR tree-optimization/39132
6688         * tree-loop-distribution.c (todo): New global var.
6689         (generate_memset_zero): Trigger TODO_rebuild_alias.
6690         (tree_loop_distribution): Return todo.
6691
6692 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
6693
6694         PR target/39119
6695         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
6696         (x86_64_reg_class_name): Removed.
6697         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
6698         first one isn't X86_64_SSE_CLASS or any other ones aren't
6699         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
6700         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
6701         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
6702         and 3 X86_64_SSEUP_CLASS.
6703         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
6704         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
6705
6706 2009-02-10  Ben Elliston  <bje@au.ibm.com>
6707
6708         * config/rs6000/rs6000.md (allocate_stack): Always use an update
6709         form instruction to update the stack back chain word, even if the
6710         user has disabled the generation of update instructions.
6711         (movdi_<mode>_update_stack): New.
6712         (movsi_update_stack): Likewise.
6713         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
6714         always use an update form instruction to update the stack back
6715         chain word.
6716
6717 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
6718
6719         PR middle-end/38953
6720         * graphite.c (if_region_set_false_region): After moving a region in
6721         the false branch of a condition, remove the empty dummy basic block.
6722         (gloog): Remove wrong fix for PR38953.
6723
6724 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6725
6726         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
6727         generation due to implicit sign extension.
6728
6729 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
6730
6731         PR middle-end/38981
6732         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
6733         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
6734
6735 2009-02-09  Richard Guenther  <rguenther@suse.de>
6736
6737         PR middle-end/35202
6738         * convert.c (convert_to_real): Disable (float)fn((double)x)
6739         to fnf(x) conversion if errno differences may occur and
6740         -fmath-errno is set.
6741
6742 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
6743
6744         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
6745         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6746         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
6747
6748 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
6749
6750         PR c/35434
6751         * c-common.c (handle_alias_attribute): Disallow attribute for
6752         anything not a FUNCTION_DECL or VAR_DECL.
6753
6754 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
6755
6756         PR c/39035
6757         * real.c (do_compare): Special-case compare of zero against
6758         decimal float value.
6759
6760 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
6761
6762         PR c/36432
6763         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
6764         as indicating flexible array members unless the field itself is
6765         being declarared as the incomplete array.
6766
6767 2009-02-06  Jan Hubicka  <jh@suse.cz>
6768
6769         PR tree-optimization/38844
6770         * ipa-inline.c (try_inline): Stop inlining recursion when edge
6771         is already inlined.
6772
6773 2009-02-06  Richard Guenther  <rguenther@suse.de>
6774
6775         PR middle-end/38977
6776         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
6777         fork because we may expand it as __gcov_fork.
6778
6779 2009-02-06  Nick Clifton  <nickc@redhat.com>
6780
6781         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
6782
6783 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
6784
6785         PR tree-optimization/35659
6786         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
6787         vn_phi_eq): Shortcut if hashcode does not match.
6788         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
6789         NULL operands.
6790         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
6791         and avoid iterative_hash_expr.
6792         (FOR_EACH_VALUE_ID_IN_SET): New.
6793         (value_id_compare): Remove.
6794         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
6795         sort expressions by value id.
6796
6797 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6798
6799         PR target/38991
6800         * config/sh/predicates.md (general_movsrc_operand): Don't check
6801         the subreg of system registers here.
6802
6803 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
6804
6805         PR c++/39106
6806         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
6807         on the copied decl.
6808
6809 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
6810
6811         PR rtl-optimization/39110
6812         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
6813         addresses, not aligned ones.
6814
6815 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
6816             Richard Guenther  <rguenther@suse.de>
6817
6818         PR tree-optimization/39100
6819         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
6820         comment says and add edges.
6821
6822 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
6823
6824         PR c/35435
6825         * c-common.c (handle_tls_model_attribute): Ignore attribute for
6826         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
6827
6828 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
6829
6830         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
6831         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
6832         register_bb_in_sese, new_sese, free_sese): Moved.
6833         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
6834         outermost_loop_in_scop, build_scop_iteration_domain,
6835         expand_scalar_variables_ssa_name, get_vdef_before_scop,
6836         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
6837         Use loop_in_sese_p instead of loop_in_scop_p.
6838         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
6839         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
6840         (scopdet_basic_block_info): Fix bug in scop detection.
6841         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
6842         eq_loop_to_cloog_loop): Remove.
6843         (nb_loops_around_loop_in_scop, nb_loop
6844         ref_nb_loops): Moved here...
6845         * graphite.h (ref_nb_loops): ... from here.
6846         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
6847         (loop_domain_dim, loop_iteration_vector_dim): Remove.
6848         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
6849         * testsuite/gcc.dg/graphite/scop-19.c: New
6850
6851 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
6852             Hans-Peter Nilsson  <hp@axis.com>
6853
6854         PR rtl-optimization/37889
6855         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
6856         Move offset handling from PLUS to before the switch.  Use new
6857         arguments when considering SYMBOL_REFs too.
6858         (rtx_addr_can_trap_p): Pass dummy offset and size.
6859         (enum may_trap_p_flags): Remove.
6860         (may_trap_p_1): Pass size from MEM_SIZE.
6861
6862         PR rtl-optimization/38921
6863         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
6864         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
6865         * rtlanal.c (may_trap_after_code_motion_p): Delete.
6866         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
6867
6868 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
6869
6870         AVX Programming Reference (January, 2009)
6871         * config/i386/sse.md (*vpclmulqdq): New.
6872
6873 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
6874
6875         PR tree-optimization/38977
6876         PR gcov-profile/38292
6877         * calls.c (special_function_p): Disregard __builtin_ prefix.
6878
6879 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
6880
6881         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
6882         non-indexable addresses even before reload.
6883
6884 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
6885
6886         PR c/29129
6887         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
6888         as having variable size.  Do not give an error for unnamed
6889         parameters with [*] declarators.  Give a warning for type names
6890         with [*] declarators and mark them as variable size.
6891         * c-parser.c (c_parser_sizeof_expression): Do not give an error
6892         for sizeof applied to [*] type names.
6893
6894 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6895
6896         PR C++/36607
6897         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
6898
6899 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
6900
6901         * gcc.c (process_command): Update copyright notice dates.
6902         * gcov.c (print_version): Likewise.
6903         * gcov-dump.c (print_version): Likewise.
6904         * mips-tfile.c (main): Likewise.
6905         * mips-tdump.c (main): Likewise.
6906
6907 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
6908
6909         PR c/35433
6910         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
6911         for composite type involving a zero-length array type.
6912
6913 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
6914
6915         PR target/35318
6916         * function.c (match_asm_constraints_1): Skip over
6917         initial optional % in the constraint.
6918
6919         PR inline-asm/39059
6920         * c-parser.c (c_parser_postfix_expression): If fixed point is not
6921         supported, don't accept FIXED_CSTs.
6922         * c-decl.c (finish_declspecs): Error if fixed point is not supported
6923         and _Sat is used without _Fract/_Accum.  Set specs->type to
6924         integer_type_node for cts_fract/cts_accum if fixed point is not
6925         supported.
6926
6927 2009-02-02  Catherine Moore  <clm@codesourcery.com>
6928
6929         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
6930
6931 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
6932
6933         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
6934         (ABI_HAS_64BIT_SYMBOLS): Use it.
6935         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
6936
6937 2009-02-02  Paul Brook  <paul@codesourcery.com>
6938
6939         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
6940
6941 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
6942
6943         PR inline-asm/39058
6944         * recog.h (asm_operand_ok): Add constraints argument.
6945         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
6946         recurse on matching constraint.
6947         (check_asm_operands): Pass constraints as 3rd argument to
6948         asm_operand_ok.  Don't look up matching constraint here.
6949         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
6950         to asm_operand_ok.
6951
6952 2009-02-02  Ben Elliston  <bje@au.ibm.com>
6953
6954         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
6955         TARGET_NARROW_VOLATILE_BITFIELD macro names.
6956
6957 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6958
6959         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
6960         information.  Remove some obsolete information.  Reorganize.
6961
6962         * config/pa/fptr.c: Revert license to GPL 2.
6963         * config/pa/milli64.S: Likewise.
6964
6965 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
6966
6967         PR target/38904
6968         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
6969         LIBRARY name in, instead of hard-coding it.
6970         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
6971         extra target make frag to tmake_files according to EH model.
6972         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
6973         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
6974         frags that define makefile variable EH_MODEL appropriately.
6975         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
6976         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
6977         to "-sjlj" according to type of EH configured.
6978         (LIBGCC_SONAME):  Concatenate it to shared library base name.
6979         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
6980         to "_sjlj" according to type of EH configured.
6981         (LIBGCC_SONAME):  Concatenate it to shared library base name.
6982         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
6983         (SHLIB_LINK):  Add missing semicolon to if-else construct.
6984         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
6985         string value of "pe_dll" command-line option.
6986         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
6987         (SHLIB_SONAME):  Use it when overriding t-cygming default.
6988         (SHLIB_IMPLIB):  Override t-cygming default.
6989         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
6990         string value of "pe_dll" command-line option.
6991
6992 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
6993
6994         PR target/38952
6995         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6996         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
6997
6998 2009-01-31  Richard Guenther  <rguenther@suse.de>
6999
7000         PR tree-optimization/38937
7001         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
7002         computing the transitive closure.
7003
7004 2009-01-30  Richard Guenther  <rguenther@suse.de>
7005
7006         PR tree-optimization/39041
7007         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
7008         Propagate variable indices only if the types match for this stmt.
7009
7010 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
7011
7012         PR target/39013
7013         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
7014         inline but never defined.
7015
7016 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
7017
7018         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
7019         (*insv_h_di_reg_extimm): New insn.
7020         (*insv_l<mode>_reg_extimm): New insn.
7021
7022 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7023
7024         * config/picochip/picochip.c (flag_conserve_stack): set
7025         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
7026         fconserve-stack. Reduce call-overhead used by inliner.
7027
7028 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7029
7030         PR/38157
7031         * common.opt (flag_conserve_stack): Initialised to zero.
7032
7033 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
7034
7035         PR/39002
7036         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
7037         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
7038         method.
7039
7040 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
7041
7042         * ira-color.c (allocno_reload_assign): Update comments.
7043         * regmove.c (regmove_optimize): Likewise.
7044
7045         * ra.h: Removed.
7046
7047 2009-01-29  Robert Millan  <rmh@aybabtu.com>
7048
7049         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
7050         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
7051         `MD_UNWIND_SUPPORT'.
7052         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
7053
7054 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
7055
7056         PR tree-optimization/39007
7057         * tree-loop-distribution.c (generate_builtin): Use
7058         recompute_dominator to compute the immediate dominator of the
7059         basic block just after the loop.
7060
7061 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7062
7063         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
7064         (ASM_OUTPUT_DWARF_PCREL): Define.
7065
7066 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
7067
7068         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
7069         * doc/passes.texi: Remove entries about regclass, local-alloc, and
7070         global.  Modify entries about regmove and IRA.
7071
7072         * ra-conflict.c: Remove the file.
7073
7074         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
7075
7076         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
7077         (pass_regclass_init): Rename to pass_reginfo_init.
7078
7079         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
7080
7081         * toplev.h (flag_ira): Remove.
7082
7083         * caller-save.c (setup_save_areas): Remove flag_ira.
7084
7085         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
7086
7087         * global.c: Remove the file.
7088
7089         * opts.c (decode_options): Remove flag_ira.
7090
7091         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
7092
7093         * regmove.c: Modify file description.
7094         (find_use_as_address, try_auto_increment): Define them only if
7095         AUTO_INC_DEC is defined.
7096         (replacement_quality, replace_in_call_usage, fixup_match_1,
7097         stable_and_no_regs_but_for_p): Remove.
7098         (reg_set_in_bb): Make it static.
7099         (regmove_optimize): Remove flag_ira and code which worked for
7100         !flag_ira.
7101
7102         * local-alloc.c: Remove the file.
7103
7104         * common.opt (fira): Remove.
7105
7106         * ira.c: Include except.h.
7107         (eliminable_regset): Move from global.c.
7108         (mark_elimination): Ditto.  Remove flag_ira.
7109         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
7110         equiv_mem_modified, validate_equiv_mem_from_store,
7111         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
7112         contains_replace_regs, memref_referenced_p, memref_used_between_p,
7113         no_equiv, recorded_label_ref): Move from local-alloc.c.
7114         (update_equiv_regs): Ditto.  Make it static.
7115         (print_insn_chain, print_insn_chains): Move it from global.c.
7116         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
7117         (build_insn_chain): Ditto.  Make it static.
7118         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
7119         Rename to init_live_subregs.
7120         (gate_ira): Remove flag_ira.
7121
7122         * regclass.c: Rename reginfo.c.  Change file description.
7123         (FORBIDDEN_INC_DEC_CLASSES): Remove.
7124         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
7125         (init_reg_sets_1): Remove code for evaluation of
7126         reg_class_superclasses and losing_caller_save_reg_set.
7127         (init_regs): Remove init_reg_autoinc.
7128         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
7129         ok_for_base_p_nonstrict): Remove.
7130         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
7131         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
7132         corresponding entries.
7133         (dump_regclass, record_operand_costs, scan_one_insn,
7134         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
7135         record_address_regs, auto_inc_dec_reg_p): Remove.
7136         (gt-regclass.h): Rename to gt-reginfo.h.
7137
7138         * rtl.h (dump_global_regs, retry_global_alloc,
7139         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
7140
7141         * Makefile.in (RA_H): Remove.
7142         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
7143         Rename regclass.o to reginfo.o.
7144         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
7145         gt-reginfo.h.
7146         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
7147         (GTFILES): Rename regclass.c to reginfo.c.
7148
7149         * passes.c (init_optimization_passes): Remove pass_local_alloc and
7150         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
7151
7152         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7153         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
7154         Remove flag_ira.
7155         (finish_spills): Ditto.  Remove code for !flag_ira.
7156
7157 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
7158
7159         PR middle-end/35854
7160         * doc/invoke.texi (rtl debug options): Complete rewrite.
7161         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
7162         to auto_inc_dec".
7163         * mode-switching.c (pass_mode_switching): Rename pass from
7164         "mode-sw" to "mode_sw".
7165         * except.c (pass_convert_to_eh_ranges): Rename pass from
7166         "eh-ranges" to "eh_ranges".
7167         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
7168         to "subreg1".
7169
7170
7171 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
7172             Alexander Monakov  <amonakov@ispras.ru>
7173
7174         PR middle-end/38857
7175         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
7176         register.
7177         (move_exprs_to_boundary): Change return type and pass through
7178         should_move from move_op.  Relax assert.  Update usage ...
7179         (schedule_expr_on_boundary): ... here.  Use should_move instead of
7180         cant_move.
7181         (move_op_orig_expr_found): Indicate that insn was disconnected from
7182         stream.
7183         (code_motion_process_successors): Do not call after_merge_succs
7184         callback if original expression was not found when traversing any of
7185         the branches.
7186         (code_motion_path_driver): Change return type.  Update prototype.
7187         (move_op): Update comment.  Add a new parameter (should_move).  Update
7188         prototype.  Set *should_move based on indication provided by
7189         move_op_orig_expr_found.
7190
7191 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
7192
7193         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
7194         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
7195         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
7196         * config/rs6000/rs6000.c (rs6000_override_options): Default
7197         avoid-indexed-addresses on for Power6, off for everything else.
7198         (avoiding_indexed_address_p): New function.
7199         (rs6000_legitimize_address): Use it.
7200         (rs6000_legitimate_address): Likewise.
7201         * config/rs6000/rs6000.md (movXX_updateX): Likewise
7202
7203 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
7204
7205         PR tree-optimization/38997
7206         * tree-loop-distribution.c (generate_memset_zero): Use
7207         POINTER_PLUS_EXPR for a pointer addition.
7208
7209 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
7210
7211         * config/s390/s390.md (bswap<mode>2): New pattern added.
7212
7213 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7214
7215         * config/s390/s390.md (*tls_load_31): Added type attribute.
7216
7217 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7218
7219         * config/s390/s390.md: Fix a few comments.
7220
7221 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7222
7223         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
7224         (*tm<mode>_full): Fixed z10prop attribute.
7225         (*tst<mode>_extimm): Fixed z10prop attribute.
7226         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
7227         (*tstqiCCT_cconly): Fixed z10prop attribute.
7228         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
7229         (*movsi_larl): Fixed z10prop attribute.
7230         (*movsi_zarch): Fixed z10prop attribute.
7231         (*movsi_eas): Fixed z10prop attribute.
7232         (*movhi): Fixed z10prop attribute.
7233         (*movqi): Fixed z10prop attribute.
7234         (*movstrictqi): Fixed z10prop attribute.
7235         (*mov<mode>): Fixed z10prop attribute.
7236         (*movcc): Fixed z10prop attribute.
7237         (*sethighpartdi_64): Fixed z10prop attribute.
7238         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
7239         (*negdi2_sign_cc): Fixed z10prop attribute.
7240         (*negdi2_sign): Fixed z10prop attribute.
7241         (*absdi2_sign_cc): Fixed z10prop attribute.
7242         (*absdi2_sign): Fixed z10prop attribute.
7243         (*negabsdi2_sign_cc): Fixed z10prop attribute.
7244         (*negabsdi2_sign): Fixed z10prop attribute.
7245         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
7246         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
7247         (doloop_si64): Fixed z10prop attribute.
7248         (doloop_si31): Fixed z10prop attribute.
7249         (doloop_long): Fixed z10prop attribute.
7250         (indirect_jump): Fixed z10prop attribute.
7251         (nop): Fixed z10prop attribute.
7252         (main_base_64): Fixed z10prop attribute.
7253         (reload_base_64): Fixed z10prop attribute.
7254
7255 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
7256
7257         PR rtl-optimization/38740
7258         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
7259         if !optimize.
7260         * config/mips/mips.c (mips_reorg): Likewise.
7261
7262 2009-01-28  Richard Guenther  <rguenther@suse.de>
7263
7264         PR tree-optimization/38926
7265         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
7266         with the correct value id to a value.
7267         (do_regular_insertion): Use the value number of edoubleprime
7268         for the value number of the expr.
7269
7270         Revert
7271         2008-08-21  Richard Guenther  <rguenther@suse.de>
7272
7273         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
7274         a PHI ask VN if it is already available.
7275         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
7276         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
7277
7278 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
7279
7280         PR middle-end/38934
7281         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
7282         set to varying whenever max has TREE_OVERFLOW set, similarly
7283         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
7284
7285 2009-01-28  Richard Guenther  <rguenther@suse.de>
7286
7287         PR middle-end/38908
7288         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
7289         uninitialized aggregate uses in call arguments.
7290
7291 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
7292
7293         PR tree-optimization/38984
7294         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
7295         the nothing_id variable if -fno-delete-null-pointer-checks.
7296
7297 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
7298
7299         PR target/38988
7300         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
7301         (set_got_offset_rex64): Ditto.
7302
7303 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
7304
7305         PR target/38941
7306         * doc/extend.texi: Improve local variable with asm reg.
7307
7308 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
7309
7310         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
7311         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
7312         was not supplied then set warn_packed_bitfield_compat to the
7313         default value of 1.
7314         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
7315         against 1.
7316
7317 2009-01-27  Richard Guenther  <rguenther@suse.de>
7318
7319         PR tree-optimization/38503
7320         * cfgexpand.c (expand_gimple_basic_block): Ignore
7321         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
7322         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
7323         variables that cannot have TBAA applied.
7324         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
7325         statements.
7326
7327 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
7328
7329         PR middle-end/38969
7330         * calls.c (initialize_argument_information): Do not wrap complex
7331         arguments in SAVE_EXPR.
7332
7333 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
7334
7335         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
7336         (INSTALL_LIBGCC): Revert typo commit.
7337
7338 2009-01-26  Richard Guenther  <rguenther@suse.de>
7339
7340         PR tree-optimization/38745
7341         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
7342         from special handling.
7343
7344 2009-01-26  Richard Guenther  <rguenther@suse.de>
7345
7346         PR tree-optimization/38745
7347         * tree-ssa.c (execute_update_addresses_taken): Do not include
7348         variables that cannot possibly be a register in not_reg_needs.
7349         Do not clear TREE_ADDRESSABLE on vars that may not become
7350         registers.
7351         * tree-ssa.c (update_alias_info_1): Include those in the set
7352         of addressable vars.
7353
7354 2009-01-26  Richard Guenther  <rguenther@suse.de>
7355
7356         PR middle-end/38851
7357         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
7358         * tree-ssa-dse.c: Include langhooks.h
7359         (execute_simple_dse): Remove stores with zero size.
7360
7361 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
7362
7363         PR c/38957
7364         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
7365         as PLUS_EXPR.
7366
7367 2009-01-24  Julian Brown  <julian@codesourcery.com>
7368
7369         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
7370         config/arm/linux-atomic.c.
7371         * config/arm/linux-atomic.c: New.
7372
7373 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
7374
7375         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
7376         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
7377         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
7378
7379 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
7380
7381         PR c/38938
7382         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
7383         properly.
7384
7385 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
7386
7387         PR tree-optimization/38953
7388         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
7389         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
7390         (gloog): Split the exit of the scop when the scop exit is a loop exit.
7391         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
7392         changed the CFG.
7393
7394 2009-01-24  Paul Brook  <paul@codesourcery.com>
7395
7396         * config/arm/neon.md (neon_type): Move to arm.md.
7397         (neon_mov<VSTRUCT>): Add neon_type attribute.
7398         * config/arm/arm.md (neon_type): Move to here.
7399         (conds): Add "unconditioal" and use as default for NEON insns.
7400
7401 2009-01-24  Ben Elliston  <bje@au.ibm.com>
7402
7403         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
7404         void *' warning from -Wc++-compat.
7405         * Makefile.in (dominance.o-warn): Remove.
7406
7407 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
7408
7409         PR tree-optimization/38932
7410         * fold-const.c (fold_unary_ignore_overflow): New.
7411         * tree.h (fold_unary_ignore_overflow): Declare.
7412         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
7413         * tree-ssa-sccvn.c (visit_reference_op_load,
7414         simplify_unary_expression): Likewise.
7415
7416 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
7417
7418         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
7419         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
7420         regardless of their type.
7421         * c-common.c (handle_packed_attribute): Don't ignore packed on
7422         bitfields.
7423         * c.opt (Wpacked-bitfield-compat): New warning option.
7424         * stor-layout.c (place_field): Warn if offset of a field changed.
7425         * doc/extend.texi (packed): Mention the ABI change.
7426         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
7427         (Warning Options): Add it to the list.
7428
7429 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
7430
7431         * c-opts.c (c_common_post_options): Fix a typo in comments.
7432
7433 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
7434
7435         PR middle-end/38615
7436         * gimplify.c (gimplify_init_constructor): Fix promotion of const
7437         variables to static.
7438         * doc/invoke.texi (-fmerge-all-constants): Update description.
7439
7440 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
7441
7442         PR target/38931
7443         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
7444         (*movdi_1_rex64): Use type "mmx" for alternative 5.
7445
7446 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
7447
7448         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
7449         a word boundary.
7450         (LOCAL_ALIGNMENT): Similarly.
7451
7452 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
7453             Joseph Myers  <joseph@codesourcery.com>
7454
7455         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
7456         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
7457         * config/arm/arm-tune.md: Regenerate.
7458         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
7459         -march=iwmmxt2.
7460
7461 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
7462
7463         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
7464         version number to five.
7465
7466 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
7467
7468         PR c++/38930
7469         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
7470         * c-common.c (set_underlying_type): Likewise.
7471         (is_typedef_decl ): Likewise
7472         * tree.h: Likewise
7473         (set_underlying_type): Likewise.
7474         (is_typedef_type): Likewise.
7475
7476 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
7477
7478         PR middle-end/38587
7479         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
7480         crossing setjmps.
7481
7482 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
7483
7484         PR bootstrap/37660
7485         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
7486         (LIBGCC_SPEC):  Don't define.
7487         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
7488
7489 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
7490
7491         PR rtl-optimization/38879
7492         * alias.c (base_alias_check): Unaligned access via AND address can
7493         alias all surrounding object types except those with sizes equal
7494         or wider than the size of unaligned access.
7495
7496 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
7497
7498         PR c++/26693
7499         * c-decl.c (clone_underlying_type): Move this ...
7500         * c-common.c (set_underlying_type): ... here.
7501         Also, make sure the function properly sets TYPE_STUB_DECL() on
7502         the newly created typedef variant type.
7503         (is_typedef_decl ): New entry point.
7504         * tree.h: Added a new member member_types_needing_access_check to
7505         struct tree_decl_non_common.
7506         (set_underlying_type): New entry point.
7507         (is_typedef_type): Likewise.
7508
7509 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
7510
7511         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
7512         Check whether two instructions have memory references that
7513         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
7514         are helper functions for traversing.
7515         * alias.h (insn_alias_sets_confilict_p): New prototypes.
7516         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
7517         not to draw dependency edge for instructions with non-conflicting
7518         alias sets.
7519
7520 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
7521
7522         PR other/38758
7523         * longlong.h: Update copyright years.  Use soft-fp license notice.
7524         Sync __clz_tab declaration with glibc.
7525
7526 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
7527
7528         PR target/30687
7529         * doc/extend.texi (syscall_linkage): New.
7530         (version_id): Modify.
7531
7532 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7533             Richard Guenther  <rguenther@suse.de>
7534
7535         PR tree-optimization/38747
7536         PR tree-optimization/38748
7537         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
7538         conversion if the base address is an indirect reference and the
7539         aliasing sets could cause issues.
7540
7541 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
7542
7543         * common.opt (fgraphite, fgraphite-identity): Add comment for
7544         explaining why these options are not documented.
7545
7546 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
7547
7548         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
7549         gimple_call_lhs is NULL.
7550
7551 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
7552
7553         PR target/38868
7554         * emit-rtl.c (adjust_address_1): Make sure memref is never
7555         overwritten.
7556
7557 2009-01-20  Ben Elliston  <bje@au.ibm.com>
7558
7559         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
7560         const qualifier from arg parameter. Remove unnecessary cast to char *.
7561         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
7562         const qualifier from arg 2.
7563
7564 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7565
7566         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
7567
7568 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
7569
7570         PR c/38869
7571         * rtl.h (reinit_regs): New prototype.
7572         * regclass.c: Include ira.h.
7573         (reinit_regs): New.
7574         * Makefile.in (regclass.o): Add ira.h.
7575         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
7576
7577 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
7578
7579         PR target/38736
7580         * c-common.c (handle_aligned_attribute): Use
7581         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
7582         default alignment value.
7583
7584         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
7585
7586         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
7587         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
7588
7589         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
7590         __BIGGEST_ALIGNMENT__.
7591
7592         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
7593
7594 2009-01-18  Richard Guenther  <rguenther@suse.de>
7595
7596         PR tree-optimization/38819
7597         * tree-flow.h (operation_could_trap_helper_p): Declare.
7598         * tree-eh.c (operation_could_trap_helper_p): Export.
7599         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
7600         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
7601         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
7602         are about to insert a possibly trapping instruction and fail
7603         in this case.
7604
7605 2009-01-18  Andreas Schwab  <schwab@suse.de>
7606
7607         * doc/install.texi (Configuration): Remove obsolete paragraph
7608         about use of --with-gnu-ld with --with-gnu-as.
7609
7610 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
7611
7612         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
7613         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
7614         Follow spelling conventions.
7615
7616 2009-01-18  Ben Elliston  <bje@au.ibm.com>
7617
7618         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
7619         C++ warning about implicit conversion from void * to struct
7620         bitmap_head_def *.
7621         (bitmap_obstack_free): Likewise for bitmap_element *.
7622         * Makefile.in (bitmap.o-warn): Remove.
7623
7624 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
7625
7626         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
7627
7628 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
7629             Tobias Grosser  <tobi.grosser@amd.com>
7630
7631         * graphite.c (graphite_trans_scop_block): Do not block single
7632         nested loops.
7633
7634 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
7635
7636         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
7637         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
7638         test with assertion.
7639
7640 2009-01-16  Richard Guenther  <rguenther@suse.de>
7641
7642         PR tree-optimization/38835
7643         PR middle-end/36227
7644         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
7645         and INT + PTR -> (INT)(PTR p+ INT) folding.
7646         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
7647
7648 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
7649
7650         PR target/38554
7651         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
7652         the subreg from a lowpart subreg if it is also casting the value.
7653
7654 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7655             Tobias Grosser  <tobi.grosser@amd.com>
7656
7657         * graphite.c (compare_prefix_loops): New.
7658         (build_scop_canonical_schedules): Rewritten.
7659         (graphite_transform_loops): Move build_scop_canonical_schedules
7660         after build_scop_iteration_domain.
7661
7662 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
7663             Tobias Grosser  <tobi.grosser@amd.com>
7664
7665         * graphite.c (add_conditions_to_domain): Add the loops to
7666         the dimension of the iteration domain.  Do copy the domain
7667         only when it exists.
7668         (build_scop_conditions_1): Do not call add_conditions_to_domain.
7669         (add_conditions_to_constraints): New.
7670         (can_generate_code_stmt, can_generate_code): Removed.
7671         (gloog): Do not call can_generate_code.
7672         (graphite_transform_loops): Call add_conditions_to_constraints
7673         after building the iteration domain.
7674
7675 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
7676
7677         PR tree-optimization/38789
7678         * tree-ssa-threadedge.c
7679         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
7680         __builtin_constant_p.
7681
7682 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
7683
7684         * dce.c (delete_unmarked_insns): Reversed the order that insns are
7685         examined before deleting them.
7686
7687 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
7688
7689         * function.c (aggregate_value_p): Correctly extract the function
7690         type from CALL_EXPR_FN lookup.
7691
7692 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7693
7694         * config/picochip/picochip.c (picochip_override_options): Revert
7695         CFI asm flag disable commited previously.
7696
7697 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
7698             Tobias Grosser  <tobi.grosser@amd.com>
7699             Jan Sjodin  <jan.sjodin@amd.com>
7700
7701         * graphite.c (scan_tree_for_params): On substractions negate
7702         all the coefficients of the term.
7703         (clast_to_gcc_expression_red): New.  Handle reduction expressions
7704         of more than two operands.
7705         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
7706         (get_vdef_before_scop): Handle also the case of default definitions.
7707
7708 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
7709
7710         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
7711         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
7712         Also use them when walking CALL_INSN_FUNCTION_USAGE.
7713
7714 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
7715             Joey Ye  <joey.ye@intel.com>
7716
7717         PR middle-end/37843
7718         * cfgexpand.c (expand_stack_alignment): Don't update stack
7719         boundary nor check incoming stack boundary here.
7720         (gimple_expand_cfg): Update stack boundary and check incoming
7721         stack boundary here.
7722
7723 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
7724
7725         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
7726
7727 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
7728
7729         PR rtl-optimization/38245
7730         * calls.c (expand_call): Add stack arguments to
7731         CALL_INSN_FUNCTION_USAGE even for pure calls (when
7732         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
7733         in regs and partially in memory or BLKmode arguments.
7734         (emit_library_call_value_1): Add stack arguments to
7735         CALL_INSN_FUNCTION_USAGE even for pure calls (when
7736         ACCUMULATE_OUTGOING_ARGS).
7737         * dce.c: Include tm_p.h.
7738         (find_call_stack_args): New function.
7739         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
7740         argument.
7741         (mark_insn): Call find_call_stack_args for CALL_Ps.
7742         (prescan_insns_for_dce): Walk insns backwards in bb rather than
7743         forwards.  Allocate and free arg_stores bitmap if needed, pass it
7744         down to deletable_insn_p, don't mark stores set in arg_stores
7745         bitmap, clear the bitmap at the beginning of each bb.
7746         * Makefile.in (dce.o): Depend on $(TM_P_H).
7747
7748 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
7749
7750         PR target/22599
7751         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
7752         to make sure the insn is a conditional test (bug 22599).  Reformat a
7753         few long lines.
7754
7755 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
7756
7757         PR middle-end/38431
7758         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
7759         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
7760         (gloog): Do not call cleanup_tree_cfg.
7761         (graphite_transform_loops): Call cleanup_tree_cfg after all
7762         scops have been code generated.
7763
7764 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
7765         * doc/gty.texi (Invoking the garbage collector): Added new node
7766         and section documenting ggc_collect.
7767
7768 2009-01-14  Richard Guenther  <rguenther@suse.de>
7769
7770         PR tree-optimization/38826
7771         PR middle-end/38477
7772         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
7773         initialization notes only if we actually emitted a warning.
7774         (intra_create_variable_infos): Add constraints for a result decl
7775         that is passed by hidden reference.
7776         (build_pred_graph): Mark all related variables non-direct on
7777         address-taking.
7778
7779 2009-01-14  Nick Clifton  <nickc@redhat.com>
7780
7781         * ira-conflicts.c: Include addresses.h for the definition of
7782         base_reg_class.
7783         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
7784         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
7785
7786 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
7787
7788         PR target/38811
7789         * Makefile.in (ira-lives.o): Add except.h.
7790
7791         * ira-lives.c: Include except.h.
7792         (process_bb_node_lives): Process can_throw_internal.
7793
7794 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
7795
7796         PR rtl-optimization/38774
7797         * combine.c (simplify_set): When undoing cc_use change, don't do
7798         PUT_CODE on the newly created comparison, but instead put back the
7799         old comparison.
7800
7801 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
7802
7803         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
7804         values.  Remove duplicate arm8 entry.
7805
7806 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
7807
7808         PR tree-optimization/38786
7809         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
7810         the SSA_NAME case of expand_scalar_variables_expr.
7811         Set the type of an expression to the type of its assign statement.
7812         (expand_scalar_variables_expr): Also gather the scalar computation
7813         used to index the memory access.  Do not pass loop_p.
7814         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
7815         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
7816         the gimple_stmt_iterator where it inserts new code.
7817         Do not pass loop_p.
7818         (copy_bb_and_scalar_dependences): Do not pass loop_p.
7819         (translate_clast): Update call to copy_bb_and_scalar_dependences.
7820
7821 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
7822
7823         * graphite.h (debug_value): Removed.
7824         * graphite.c (debug_value): Removed.
7825
7826 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
7827
7828         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
7829         ldrd/strd with two 32-bit instructions.
7830
7831 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
7832
7833         * config/arm/arm.c (struct processors): Pass for speed down into
7834         cost helper functions.
7835         (const_ok_for_op): Handle COMPARE and inequality nodes.
7836         (arm_rtx_costs_1): Rewrite.
7837         (arm_size_rtx_costs): Update prototype.
7838         (arm_rtx_costs): Pass speed down to helper functions.
7839         (arm_slowmul_rtx_costs): Rework cost calculations.
7840         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
7841         (arm_9e_rtx_costs): Likewise.
7842
7843 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
7844
7845         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
7846         relocations of local symbols wider than UNITS_PER_WORD are not valid.
7847         (alpha_legitimize_address): Do not split local symbols wider than
7848         UNITS_PER_WORD into HIGH/LO_SUM parts.
7849
7850 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
7851
7852         PR bootstrap/38580
7853         * gcc.c (process_command): Replace call to execvp with calls
7854         to pex_one and exit.
7855
7856 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
7857
7858         PR target/29141
7859         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
7860         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
7861         variant for devices with 3-byte PC.
7862         (__tablejump_elpm__): New.
7863
7864 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
7865
7866         PR c/32041
7867         * c-parser.c (c_parser_postfix_expression): Allow `->' in
7868         offsetof member-designator, handle it as `[0].'.
7869
7870 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7871
7872         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
7873         function when not using named sections on targets with named sections
7874         if branch distance is less than 262132.
7875
7876 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
7877
7878         * combine.c (combine_instructions):  Recompute
7879         optimize_this_for_speed_p  for each BB in the main combine loop.
7880
7881 2009-01-12  Tomas Bily  <tbily@suse.cz>
7882
7883         PR middlend/38385
7884         * tree-loop-distribution.c (prop_phis): New function.
7885         (generate_builtin): Call prop_phis.
7886         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
7887
7888 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
7889
7890         PR tree-optimization/38807
7891         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
7892         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
7893
7894 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
7895
7896         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
7897         subreg of op0 to the original op0.
7898
7899 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
7900
7901         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
7902
7903 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
7904
7905         PR debug/7055
7906         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
7907         starting with digits.
7908
7909 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
7910
7911         PR target/38695
7912         * config/arm/arm.c (arm_is_long_call_p): Don't call
7913         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
7914
7915 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
7916
7917         * regrename.c (regrename_optimize): Fix dumping.
7918         (find_oldest_value_reg): Preserve REG_POINTER.
7919         (copy_hardreg_forward_1): Likewise.
7920
7921 2009-01-09  Diego Novillo  <dnovillo@google.com>
7922
7923         * gimple.h (struct gimple_statement_base) <uid>: Document
7924         the restrictions on its use.
7925         (gimple_uid): Tidy.
7926         (gimple_set_uid): Tidy.
7927
7928 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7929
7930         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
7931         zero guard even if align_bytes != 0 and count is smaller than
7932         size_needed.
7933
7934 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
7935
7936         PR rtl-optimization/38495
7937         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
7938         (add_range_and_copies_from_move_list): Print all added ranges.
7939         Add ranges to memory optimized destination.
7940
7941 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7942
7943         PR target/38686
7944         PR target/38708
7945         * config/i386/i386.c (override_options): Reject
7946         -mstringop-strategy=rep_8byte with -m32.
7947         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
7948         to 1.  Do count comparison against epilogue_size_needed at compile
7949         time even when count_exp was constant forced into register.  For
7950         size_needed don't jump to epilogue, instead just avoid aligning
7951         and invoke the body algorithm.  If need_zero_guard, add zero guard
7952         even if count is non-zero, but smaller than size_needed + number of
7953         bytes that could be stored for alignment.
7954         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
7955         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
7956         but smaller than size_needed + number of bytes that could be stored
7957         for alignment.  Compare size_needed with epilogue_size_needed instead
7958         of desired_align - align, don't adjust size_needed, pass
7959         epilogue_size_needed to the epilogue expanders.
7960
7961         PR c/35742
7962         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
7963
7964 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7965
7966         * pa.c (last_address): Change to unsigned.
7967         (update_total_code_bytes): Change argument to unsigned.  Don't
7968         check if insn addresses are set.
7969         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
7970         addresses are not set.
7971         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
7972
7973 2009-01-09  Nick Clifton  <nickc@redhat.com>
7974
7975         * config/sh/symbian.c: Replace uses of DECL_INLINE with
7976         DECL_DECLARED_INLINE_P.
7977
7978 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
7979
7980         PR middle-end/38347
7981         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
7982         GET_MODE (op0) in operand_subword_force calls.
7983
7984         PR middle-end/38771
7985         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
7986         fold_convert arg0 operands to TREE_TYPE (op0) first.
7987
7988 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
7989
7990         * params.def (ira-max-conflict-table-size): Decrease default value
7991         to 1000.
7992
7993 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
7994
7995         PR tree-optimization/37031
7996         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
7997         on parameter_set.
7998         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
7999         allocate it using gc instead of heap, use VEC_quick_push instead of
8000         VEC_safe_push.
8001         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
8002         instead of heap, use VEC_quick_push instead of VEC_safe_push.
8003         * tree-data-ref.h (struct access_matrix): Change matrix to gc
8004         allocated vector from heap allocated.
8005         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
8006         * tree-loop-linear.c (linear_transform_loops): Allocate nest
8007         vector only after perfect_loop_nest_depth call.
8008
8009 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
8010             Jan Sjodin  <jan.sjodin@amd.com>
8011
8012         PR tree-optimization/38559
8013         * graphite.c (debug_value, copy_constraint,
8014         swap_constraint_variables, scale_constraint_variable, ): New.
8015         (get_lower_bound, get_upper_bound): Removed.
8016         (graphite_trans_bb_strip_mine): Clean up this code that works
8017         only for constant number of iterations.  Fully copy upper and
8018         lower bound constraints, not only the constant part of them.
8019         * graphite.h (debug_value): Declared.
8020
8021 2009-01-08  Ira Rosen  <irar@il.ibm.com>
8022
8023         PR tree-optimization/37194
8024         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
8025         Don't add the cost of cost model guard in prologue to scalar
8026         outside cost in case of known number of iterations.
8027
8028 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8029             Alan Modra  <amodra@bigpond.net.au>
8030
8031         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
8032         non-word-aligned REG+CONST addressing.
8033
8034 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8035
8036         PR target/38706
8037         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
8038         free_after_compilation when outputting a thunk.
8039         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
8040         Do not call free_after_compilation here.
8041
8042 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8043
8044         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
8045         (ix86_valid_target_attribute_inner_p): Ditto.
8046
8047 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
8048
8049         PR tree-optimization/38492
8050         PR tree-optimization/38498
8051         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
8052         * tree-chrec.h (scev_is_linear_expression): Declared.
8053         * graphite.c (graphite_cannot_represent_loop_niter): New.
8054         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
8055         (graphite_loop_normal_form): Use gcc_assert.
8056         (scan_tree_for_params): Use CASE_CONVERT.
8057         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
8058         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
8059         Use gcc_assert.  Discard scops that contain unhandled cases.
8060         (build_scop_conditions): Return a boolean status for unhandled cases.
8061         (strip_mine_profitable_p): Print the loop number, not its depth.
8062         (is_interchange_valid): Pass the depth of the loop nest, don't
8063         recompute it wrongly.
8064         (graphite_trans_bb_block): Same.
8065         (graphite_trans_bb_block): Print tentative of loop blocking.
8066         (graphite_trans_scop_block): Do not print that the loop has been
8067         blocked.
8068         (graphite_transform_loops): Do not handle scops that contain condition
8069         scalar phi nodes.
8070
8071 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
8072
8073         AVX Programming Reference (December, 2008)
8074         * config/i386/avxintrin.h (_mm256_stream_si256): New.
8075         (_mm256_stream_pd): Likewise.
8076         (_mm256_stream_ps): Likewise.
8077
8078         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
8079         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
8080         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
8081         (bdesc_special_args): Add __builtin_ia32_movntdq256,
8082         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
8083         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
8084         (ix86_expand_special_args_builtin): Likewise.
8085
8086         * config/i386/sse.md (AVXMODEDI): New.
8087         (avx_movnt<mode>): Likewise.
8088         (avx_movnt<mode>): Likewise.
8089         (<sse>_movnt<mode>): Remove AVX support.
8090         (sse2_movntv2di): Likewise.
8091
8092 2009-01-07  Richard Guenther  <rguenther@suse.de>
8093
8094         PR middle-end/38751
8095         * fold-const.c (extract_muldiv): Remove obsolete comment.
8096         (fold_plusminus_mult_expr): Undo MINUS_EXPR
8097         to PLUS_EXPR canonicalization for the canonicalization.
8098
8099 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
8100
8101         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
8102         hosted cross-compilers generating less efficient code.
8103
8104 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8105
8106         * function.h (rtl_data): Add a dbr_scheduled_p field.
8107         * reorg.c (dbr_schedule): Set it.
8108         (gate_handle_delay_slots): Check it.
8109         * config/mips/mips.c (mips_base_delayed_branch): Delete.
8110         (mips_reorg): Check flag_delayed_branch instead of
8111         mips_base_delayed_branch.
8112         (mips_override_options): Don't set mips_base_delayed_branch
8113         or flag_delayed_branch.
8114
8115 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8116
8117         PR rtl-optimization/38426.
8118         * ira.c (ira): Set current_function_is_leaf earlier.
8119
8120 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
8121
8122         PR rtl-optimization/38722
8123         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
8124         too early, only set a flag and modify after last possible
8125         undo_all point.
8126
8127 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
8128
8129         PR c/34252
8130         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
8131         * real.c (decimal_single_format): Correct values of emin and emax.
8132         (decimal_double_format): Ditto.
8133         (decimal_quad_format): Ditto.
8134         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
8135         computation of DECnn_MIN and DECnn_MAX for corrected values of
8136         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
8137         __DECnn_MIN__, and adjust its computation for the corrected value
8138         of emin.
8139
8140 2009-01-06  Jan Hubicka  <jh@suse.cz>
8141
8142         PR target/38744
8143         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
8144
8145 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
8146
8147         * doc/contrib.texi (Contributors): Slightly adjust the end note.
8148         Add Robert Clark to the list of testers.
8149
8150 2009-01-06  Jan Hubicka  <jh@suse.cz>
8151             Kai Tietz  <kai.tietz@onevision.com>
8152
8153         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
8154         * config/i386/i386.c (ix86_expand_call): Add clobbers.
8155
8156 2009-01-06  Jan Hubicka  <jh@suse.cz>
8157             Kai Tietz  <kai.tietz@onevision.com>
8158
8159         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
8160         for w64 ABI.
8161         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
8162         (ix86_nsaved_regs): Count only general purpose regs.
8163         (ix86_nsaved_sseregs): New.
8164         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
8165         to 16 for w64; compute padding and size of sse reg save area.
8166         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
8167         general purpose regs.
8168         (ix86_emit_save_sse_regs_using_mov): New.
8169         (ix86_expand_prologue): Save SSE regs if needed.
8170         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
8171         (ix86_emit_restore_sse_regs_using_mov): New.
8172         (ix86_expand_epilogue): Save SSE regs if needed.
8173
8174 2009-01-06  Jan Hubicka  <jh@suse.cz>
8175             Kai Tietz  <kai.tietz@onevision.com>
8176
8177         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
8178         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
8179         functions when accumulate outgoing args is off.
8180
8181 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8182
8183         PR bootstrap/38742
8184         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
8185         before using pseudos_have_intersected_live_ranges_p.
8186
8187         * ira-int.h (ira_assert): Always define.
8188
8189 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8190
8191         AVX Programming Reference (December, 2008)
8192         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
8193         (_mm256_permute2_pd): Likewise.
8194         (_mm_permute2_ps): Likewise.
8195         (_mm256_permute2_ps): Likewise.
8196         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
8197         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
8198
8199         * config/i386/i386.c (ix86_builtins): Remove
8200         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8201         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
8202         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
8203         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
8204         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8205         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
8206         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
8207         __builtin_ia32_vpermil2ps256.
8208         (ix86_init_mmx_sse_builtins): Updated.
8209         (ix86_expand_args_builtin): Likewise.
8210
8211 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8212
8213         * pa.c (output_call): Relocate non-jump insns in the delay slot of
8214         long absolute calls when generating PA 2.0 code.
8215
8216 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
8217
8218         PR rtl-optimization/38583
8219         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
8220
8221         * params.def (ira-max-conflict-table-size): New.
8222
8223         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
8224
8225         * ira.h (ira_conflicts_p): New external definition.
8226
8227         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
8228         table.  Report this.  Return result of building.
8229         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
8230         building conflict table.
8231
8232         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
8233         (ira_color): Use ira_conflicts_p.
8234
8235         * global.c: Include ira.h.
8236         (pseudo_for_reload_consideration_p, build_insn_chain): Use
8237         ira_conflicts_p.
8238
8239         * Makefile.in (global.o): Add ira.h.
8240
8241         * ira-build.c (mark_all_loops_for_removal,
8242         propagate_some_info_from_allocno): New.
8243         (remove_unnecessary_allocnos): Call
8244         propagate_some_info_from_allocno.
8245         (remove_low_level_allocnos): New.
8246         (remove_unnecessary_regions): Add parameter.  Call
8247         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
8248         parameter to remove_unnecessary_regions.
8249         (ira_build): Remove all regions but root if the conflict table was
8250         not built.  Update conflict hard regs for allocnos crossing calls.
8251
8252         * ira.c (ira_conflicts_p): New global.
8253         (ira): Define and use ira_conflicts_p.
8254
8255         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
8256         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
8257         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
8258
8259 2009-01-06  Ben Elliston  <bje@au.ibm.com>
8260
8261         * gengtype-lex.l (YY_NO_INPUT): Define.
8262
8263 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8264
8265         PR c/34911
8266         * c-common.c (handle_vector_size_attribute): Also reject
8267         BOOLEAN_TYPE types.
8268
8269 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
8270
8271         PR tree-optimization/38492
8272         * graphite.c (rename_map_elt, debug_rename_elt,
8273         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
8274         rename_map_elt_info, eq_rename_map_elts,
8275         get_new_name_from_old_name, bb_in_sese_p): Moved around.
8276         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
8277         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
8278         (sese_build_livein_liveouts): New.
8279         (new_sese, free_sese): New.
8280         (new_scop): Call new_sese.
8281         (free_scop): Call free_sese.
8282         (rename_variables_from_edge, rename_phis_end_scop): Removed.
8283         (register_old_new_names): Renamed register_old_and_new_names.
8284         (register_scop_liveout_renames, add_loop_exit_phis,
8285         insert_loop_close_phis, struct igp,
8286         default_liveout_before_guard, add_guard_exit_phis,
8287         insert_guard_phis, copy_renames): New.
8288         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
8289         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
8290         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
8291         (scop_adjust_phis_for_liveouts): New.
8292         (gloog): Call scop_adjust_phis_for_liveouts.
8293
8294         * graphite.h (struct sese): Documented.  Added fields liveout,
8295         num_ver and livein.
8296         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
8297         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
8298         (struct scop): Added field liveout_renames.
8299         (SCOP_LIVEOUT_RENAMES): New.
8300
8301 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
8302
8303         PR tree-optimization/38510
8304         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
8305         (translate_clast): Call recompute_all_dominators before
8306         graphite_verify.
8307         (gloog): Call recompute_all_dominators before graphite_verify.
8308
8309 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
8310             Jan Sjodin  <jan.sjodin@amd.com>
8311
8312         PR tree-optimization/38500
8313         * graphite.c (create_sese_edges): Call fix_loop_structure after
8314         splitting blocks.
8315
8316 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
8317
8318         * config.gcc: Add m32r*-*-rtems*.
8319         * config/m32r/rtems.h: New file.
8320
8321 2009-01-05  Ben Elliston  <bje@au.ibm.com>
8322
8323         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
8324         (.po.pox): Likewise.
8325         (po/gcc.pot): Likewise.
8326
8327 2009-01-04  David S. Miller  <davem@davemloft.net>
8328
8329         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
8330         (STARTING_FRAME_OFFSET): Always set to zero.
8331
8332 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
8333
8334         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
8335         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
8336         fixed-point types, and vectors of the same.
8337
8338 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
8339
8340         * config/mips/sync.md (*mb_barrier): Rename to...
8341         (*memory_barrier): ...this.
8342
8343 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
8344
8345         * doc/extend.texi (Function Attributes): Move @cindex after @item
8346         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
8347         and put in alphabetical order. Fix 'target' name and put in order.
8348         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
8349         typos.
8350
8351 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
8352
8353         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
8354         (memory_barrier): Expand as unspec instead of unspec_volatile.
8355         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8356         (*memory_barrier): Define as unspec instead of unspec_volatile.
8357         Use (match_dup 0) as input operand.
8358
8359         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
8360         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
8361         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
8362         scratch register.  Remove operand 1.
8363         (*stbar): Define as unspec instead of unspec_volatile.
8364         Use (match_dup 0) as input operand, remove (const_int 8).
8365         (*membar): Define as unspec instead of unspec_volatile.
8366         Use (match_dup 0) as input operand, remove input operand 2.
8367
8368         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
8369         (memory_barrier): Expand as unspec instead of unspec_volatile.
8370         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8371         (*memory_barrier): Define as unspec instead of unspec_volatile.
8372         Use (match_dup 0) as input operand.
8373
8374         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
8375         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8376         Set volatile flag on operand 0.
8377         (*memory_barrier): New insn pattern.
8378
8379         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
8380         insn operands.
8381         (*memory_barrier): Use (match_dup 0) as input operand.
8382
8383         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
8384         Remove mem:BLK from insn operands.  Use Pmode scratch register.
8385         Set volatile flag on operand 0.
8386         (*mb_internal): New insn pattern.
8387
8388         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
8389
8390 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
8391
8392         PR middle-end/38586
8393         * function.c (struct temp_slot): Move to the section of the file
8394         that deals with temp slots.  Remove field 'address'.
8395         (temp_slot_address_table): New hash table of address -> temp slot.
8396         (struct temp_slot_address_entry): New struct, items for the table.
8397         (temp_slot_address_compute_hash, temp_slot_address_hash,
8398         temp_slot_address_eq, insert_temp_slot_address): Support functions
8399         for the new table.
8400         (find_temp_slot_from_address): Rewrite to use the new hash table.
8401         (remove_unused_temp_slot_addresses): Remove addresses of temp
8402         slots that have been made available.
8403         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
8404         worker function for remove_unused_temp_slot_addresses.
8405         (assign_stack_temp_for_type): Don't clear the temp slot address list.
8406         Add the temp slot address to the address -> temp slot map.
8407         (update_temp_slot_address): Update via insert_temp_slot_address.
8408         (free_temp_slots): Call remove_unused_temp_slot_addresses.
8409         (pop_temp_slots): Likewise.
8410         (init_temp_slots): Allocate the address -> temp slot map, or empty
8411         the map if it is already allocated.
8412         (prepare_function_start): Initialize temp slot processing.
8413
8414 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
8415
8416         PR middle-end/38584
8417         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
8418         Calculate the size of all stack vars assuming no packing of stack
8419         vars will happen, replacing a quadratic algorithm with a linear one.
8420
8421 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
8422
8423         PR target/38707
8424         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
8425         can't be used.
8426
8427 2009-01-03  Diego Novillo  <dnovillo@google.com>
8428
8429         * doc/contrib.texi: Update contributions.
8430
8431 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
8432
8433         PR c++/38705
8434         * builtins.c (fold_builtin_memory_op): Give up if either operand
8435         is volatile.  Set srctype or desttype to non-qualified version
8436         of the other type.
8437
8438         PR c/38700
8439         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
8440         and FUNCTION_DECLs.
8441
8442 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
8443
8444         PR rtl-optimization/35805
8445         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
8446         problem if fast dce is able to remove any instructions.
8447         * dce.c (dce_process_block): Fix dump message.
8448
8449 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
8450
8451         PR 33649
8452         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
8453
8454 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
8455
8456         PR middle-end/38690
8457         * tree-flow.h (op_code_prio, op_prio): New prototypes.
8458         * tree-pretty-print.c (op_code_prio): New function.
8459         (op_prio): No longer static.  Use op_code_prio.
8460         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
8461         Use op_prio and op_code_prio to determine if () should be
8462         printed around operand(s) or not.
8463
8464         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
8465         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
8466         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
8467         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
8468         pp_character instead of pp_string for single letter printing.
8469
8470 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
8471
8472         * doc/extend.texi: Fix '#pragma GCC option' typo.
8473
8474 2009-01-02  Richard Guenther  <rguenther@suse.de>
8475
8476         * doc/install.texi (--enable-checking): Mention different
8477         default for stage1.
8478         (--enable-stage1-checking): Document.
8479
8480 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
8481
8482         PR middle-end/30142
8483         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
8484         case to be an error.
8485
8486 2009-01-02  Ben Elliston  <bje@au.ibm.com>
8487
8488         * config/fp-bit.h (pack_d): Constify argument.
8489         * config/fp-bit.c (makenan): Constify return type. Remove casts.
8490         (isnan): Constify argument.
8491         (isinf): Likewise.
8492         (iszero): Likewise.
8493         (pack_d): Likewise.
8494         (_fpadd_parts): Constify return type.
8495         (_fpmul_parts): Likewise.
8496         (_fpdiv_parts): Likewise.
8497
8498 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
8499
8500         PR c/36489
8501         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
8502         warn about overwriting initializer with side-effects or
8503         -Woverride-init if !IMPLICIT.
8504         (output_init_element): Likewise.  Pass IMPLICIT down to
8505         add_pending_init.
8506         (process_init_element): Add IMPLICIT argument.  Pass it down
8507         to output_init_element.
8508         (push_init_element, pop_init_level, set_designator): Adjust
8509         process_init_element callers.
8510         (set_nonincremental_init, set_nonincremental_init_from_string):
8511         Adjust add_pending_init callers.
8512         (output_pending_init_elements): Adjust output_init_element callers.
8513         * c-tree.h (process_init_element): Adjust prototype.
8514         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
8515         process_init_element callers.
8516
8517 \f
8518 Copyright (C) 2009 Free Software Foundation, Inc.
8519
8520 Copying and distribution of this file, with or without modification,
8521 are permitted in any medium without royalty provided the copyright
8522 notice and this notice are preserved.