OSDN Git Service

misaligned store support
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-05  Revital Eres  <eres@il.ibm.com>
2             Leehod Baruch  <leehod@il.ibm.com>
3
4         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
5         (expand_expr_real_1): Remove comment.
6         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7         Vectorize misaligned access when the target supports it.
8         (vect_supportable_dr_alignment): Check for unaligned access
9         support.
10         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
11         and remove asset.
12
13 2009-06-05  Julian Brown  <julian@codesourcery.com>
14
15         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
16         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
17
18 2009-06-05  Richard Guenther  <rguenther@suse.de>
19
20         PR bootstrap/40350
21         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
22         as possibly unused.
23
24 2009-06-04  Jakub Jelinek  <jakub@redhat.com>
25
26         * config/s390/s390.c (global_not_special_regno_p): New static inline.
27         (save_gprs): Don't tell unwinder when a global register is saved.
28         (s390_emit_epilogue): Emit needed epilogue unwind info.
29
30 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
31
32         * dwarf2out.c (deferred_asm_name): New.
33         (add_name_and_src_coords_attributes): Defer creation of
34         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
35         computed yet.
36         (move_linkage_attr): New.
37         (dwarf2out_finish): Revisit deferrals and emit attributes at the
38         right place.
39
40 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
41
42         * tree-nested.c (finalize_nesting_tree_1): Declare the
43         frame_decl in the binding tree.
44
45 2009-06-04  Cary Coutant  <ccoutant@google.com>
46
47         * basic-block.h (struct basic_block_def): Add discriminator field.
48         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
49         callers.
50         * debug.c (do_nothing_debug_hooks): Add additional entry.
51         (debug_nothing_int_charstar_int): New function.
52         * debug.h (struct gcc_debug_hooks): Add parameter to source_line
53         hook.
54         (debug_nothing_int_charstar_int): New declaration.
55         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
56         discriminator value in .loc directive.
57         * final.c (last_discriminator): New variable.
58         (discriminator): New variable.
59         (final_start_function): Initialize above variables, pass current
60         discriminator to debug hook.
61         (notice_source_line): Check for discriminator change.
62         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
63         * sdbout.c (sdbout_source_line): New parameter.
64         * tree-cfg.c (struct locus_discrim_map): New structure type.
65         (discriminator_per_locus): New hash table.
66         (build_gimple_cfg): Allocate and free discriminator hash table.
67         (make_edges): Call assign_discriminator.
68         (locus_map_hash): New function.
69         (locus_map_eq): New function.
70         (next_discriminator_for_locus): New function.
71         (same_line_p): New function.
72         (assign_discriminator): New function.
73         (make_cond_expr_edges): Call assign_discriminator.
74         (make_gimple_switch_edges): Likewise.
75         (first_non_label_stmt): New function.
76         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
77         all callers.
78         * xcoffout.c (xcoffout_source_line): Add new parameter.
79
80         * configure.ac (gcc_cv_as_discriminator): New configury check for
81         gas support for discriminator.
82         * configure: Regenerate.
83         * config.in: Regenerate.
84
85 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
86
87         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
88         val after checking for integers.
89
90 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
91
92         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
93         X64_REGPARM_MAX.
94         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
95         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
96         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
97         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
98         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
99         X64_SSE_REGPARM_MAX.
100         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
101         X64_SSE_REGPARM_MAX.
102
103 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
104
105         * gcc.c (report_times_to_file): New.
106         (execute): Implement it.
107         (process_command): Support -time=.
108         * doc/invoke.texi: Document it.
109
110 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
111
112         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
113         that have value exprs.
114
115 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
116
117         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
118         declarations for constants until...
119         (dw2_output_indirect_constant_1): ... this point.
120
121 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
122
123         PR target/10242
124         * arm.md (arm_addsi3): Don't try to split an add with an
125         eliminable register until after reload has completed.
126
127 2009-06-03  Ian Lance Taylor  <iant@google.com>
128
129         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
130         * genattrtab.c (write_length_unit_log): Likewise.
131         * genchecksum.c (dosum): Likewise.
132         * gengtype.c (write_rtx_next): Likewise.
133         (finish_root_table, write_roots): Likewise.
134         * gimple.c (gimple_ops_offset_): Likewise.
135         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
136         * config/arc/arc.c (arc_attribute_table): Likewise.
137         * config/arm/arm.c (arm_attribute_table): Likewise.
138         * config/avr/avr.c (avr_attribute_table): Likewise.
139         * config/crx/crx.c (crx_attribute_table): Likewise.
140         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
141         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
142         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
143         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
144         * config/sh/sh.c (sh_attribute_table): Likewise.
145         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
146         * config/spu/spu.c (spu_attribute_table): Likewise.
147         * config/v850/v850.c (v850_attribute_table): Likewise.
148
149         * config/alpha/alpha.c (vms_attribute_table): Make static.
150         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
151         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
152         * config/mips/mips.c (mips_attribute_table): Likewise.
153
154         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
155         $(SYSTEM_H).
156         (cc1-checksum.o): Likewise.
157
158 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
159
160         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
161
162 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
163
164         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
165         insn if it is changing sp.  Use gen_add3_insn instead of
166         conditionally gen_addsi3 and gen_adddi3.
167         (offset_below_red_zone_p): New static inline function.
168         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
169         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
170         * config/rs6000/ppc-asm.h: Include auto-host.h.
171         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
172         CFI_RESTORE): Define.
173         * config/rs6000/crtresxgpr.asm: Add unwind info.
174         * config/rs6000/crtresxfpr.asm: Likewise.
175         * config/rs6000/crtresgpr.asm: Likewise.
176         * config/rs6000/crtresfpr.asm: Likewise.
177         * config/rs6000/crtsavgpr.asm: Likewise.
178         * config/rs6000/crtsavfpr.asm: Likewise.
179
180         * dwarf2out.c (output_cfi_directive): Pass 1 instead of
181         0 to second argument of DWARF2_FRAME_REG_OUT macros.
182
183 2009-06-03  Julian Brown  <julian@codesourcery.com>
184
185         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
186         words or less (including TImode) in core registers.
187
188 2009-06-03  Richard Guenther  <rguenther@suse.de>
189
190         PR middle-end/40328
191         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
192
193 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
194
195         * statistics.c (statistics_counter_event): Do not record event 
196         in pass dump if its number == -1.
197         (curr_statistics_hash): Add assert that we never get passes 
198         with static number == -1.
199
200 2009-06-03  Richard Guenther  <rguenther@suse.de>
201             Andrey Belevantsev  <abel@ispras.ru>
202
203         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
204         non-BLKmode arrays addressable.
205
206 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
207
208         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
209         * config/m68k/m68k.h: ... here.
210         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
211         m68k and fido.
212
213 2009-06-03  Martin Jambor  <mjambor@suse.cz>
214
215         PR tree-optimization/40323
216         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
217         assignment.
218
219 2009-06-03  Richard Guenther  <rguenther@suse.de>
220
221         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
222         consistently.
223
224 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
225
226         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
227         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
228         JUMP_TABLE_DATA_P where applicable.
229         * config/sh/sh.c: Ditto.
230         * config/sh/sh.h: Ditto.
231         * config/sh/sh.md: Ditto.
232         * config/sh/symbian.c: Ditto.
233
234 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
235
236         * config/i386/driver-i386.c (describe_cache): Optimize
237         concatenation of strings.  Use snprintf instead of sprintf.
238         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
239         target when not compiling with GCC.
240
241 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
242
243         * config/sh/sh.c: Revert last change.
244         (sh_expand_epilogue): Emit a blockage insn before the frame
245         pointer adjustment unconditionally.
246
247 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
248
249         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
250         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
251         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
252         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
253         to COLLECT_GCC_OPTIONS.
254
255 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
256
257         * collect2.c (target_system_root): New variable.
258         (main): Handle --sysroot=.
259         (ignore_library): Strip the sysroot from the library path.
260
261 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
262
263         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
264         (collect2.o): Depend on collect2-aix.h.
265         (collect2-aix.o): New rule.
266         * collect2-aix.h: New file.
267         * collect2-aix.c: Likewise.
268         * collect2.c: Include collect2-aix.h.  Don't undefine
269         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
270         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
271         Use TARGET_AIX_VERSION instead of _AIX51.
272         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
273         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
274         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
275         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
276         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
277
278 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
279
280         * collect2.c (ignore_library): Avoid premature post-increment
281         and null deference.
282
283 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
284
285         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
286         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
287         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
288         CROSS_DIRECTORY_STRUCTURE too.
289         (LINK_LIBG_SPEC): Likewise.
290         (LIB_SPEC): Add %R to sysroot paths.
291         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
292         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
293         * config/rs6000/aix51.h: As for aix43.h.
294         * config/rs6000/aix52.h: Likewise.
295         * config/rs6000/aix53.h: Likewise.
296         * config/rs6000/aix61.h: Likewise.
297         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
298         to the beginning of sysroot paths.
299
300 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
301
302         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
303         INSN_LISTs that are out of the REG_NOTE range.
304
305 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
306
307         * loop-unroll.c (struct iv_to_split): Add pointer to next.
308         (struct var_to_expand): Likewise.
309         (struct opt_info): Add head and tail for linked lists of the above.
310         (analyze_insn_to_expand_var): Initialize next.
311         (analyze_iv_to_split_insn): Likewise.
312         (analyze_insns_in_loop): Create linked lists.
313         (allocate_basic_variable): Simplify for use without hash table.
314         (insert_var_expansion_initialization): Likewise, make it type-safer.
315         (combine_var_copies_in_loop_exit): Likewise.
316         (apply_opt_in_copies): Walk lists rather than hash tables.
317         (release_var_copies): Simplified and inlined by hand into...
318         (free_opt_info): ... this function.
319
320 2009-06-02  Richard Guenther  <rguenther@suse.de>
321
322         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
323         for field decls.
324
325 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
326
327         * cfgexpand.c (gimple_expand_cfg): Discard the source location
328         only for builtins that are not overridden.
329
330 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
331
332         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
333         label string.
334
335 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
336
337         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
338
339 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
340
341         * combine.c (move_deaths): Compare LUIDs within the same BB only.
342
343 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
344
345         * common.opt (fdump-unnumbered-links): New.
346         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
347         * print-rtl.c (flag_dump_unnumbered_links): New.
348         (print_rtx): Test it.
349
350 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
351
352         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
353         push/pop multiple to 8-byte alignment.
354
355 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
356
357         * config/i386/i386.c (queued_cfa_restores): New static variable.
358         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
359         functions.
360         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
361         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
362         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
363         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
364         note unconditionally.
365         (ix86_emit_restore_regs_using_mov): Likewise.
366         (ix86_emit_restore_sse_regs_using_mov): Likewise.
367         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
368         it through to ix86_emit_restore_reg_using_pop.
369         (ix86_emit_leave): Add RED_OFFSET argument.  Call
370         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
371         instead of adding REG_CFA_OFFSET note unconditionally.
372         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
373         the above functions.  Call ix86_add_queued_cfa_restore_notes when
374         needed.
375
376         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
377         force output of the label even for dwarf2out_do_cfi_asm.
378         (add_fde_cfi): If -g2 and above and cfi might change CFA,
379         force creation of CFI label and chain DW_CFA_set_loc jumping to it
380         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
381         caller.
382         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
383         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
384         dwarf2out_cfi_label callers.
385         * tree.h (dwarf2out_cfi_label): Adjust prototype.
386         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
387         Adjust dwarf2out_cfi_label callers.
388         * config/vax/vax.c (vax_output_function_prologue): Likewise.
389
390         * config/i386/i386.h (struct machine_cfa_state,
391         struct machine_function): Guard with ifndef USED_FOR_TARGET
392         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
393
394         PR other/40024
395         * emutls.c (__emutls_get_address): Change arr->size to mean number
396         of allocated arr->data entries instead of # of slots + 1.
397
398         PR middle-end/40316
399         * recog.c (peep2_reinit_state): New function.
400         (peephole2_init_state): Use it at the end of a basic block and also
401         when seeing a RTX_FRAME_RELATED_P insn.
402
403 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
404
405         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
406         fixuns_truncrfdi2): New.
407         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
408         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
409         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
410         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
411         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
412         *recip_approx): Remove.
413         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
414         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
415         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
416         move to div.md.
417         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
418         setf_exp_rf): New.
419
420 2009-06-01  Ian Lance Taylor  <iant@google.com>
421
422         * attribs.c (register_attribute): Use CONST_CAST.
423         * collect2.c (main): Use CONST_CAST2.
424         (scan_prog_file): Likewise.
425         * gcc.c (process_command, main): Likewise.
426         * toplev.c (toplev_main): Likewise.
427
428         * c-typeck.c (handle_warn_cast_qual): New static function,
429         partially broken out of build_c_cast.
430         (build_c_cast): Call handle_warn_cast_qual.
431         * doc/invoke.texi (Warning Options): Document new effect of
432         -Wcast-qual.
433
434 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
435
436         * diagnostic.c (diagnostic_build_prefix): Always print columns.
437         (diagnostic_report_current_module): Print columns.
438         * common.opt (flag_show_column): Enable by default.
439
440 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
441
442         * alias.c (find_base_term): Check for NULL term before returning.
443
444 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
445
446         Revert due to PR40320:
447         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
448         * calls.c (emit_library_call_value_1): Don't force_operand for move
449         and push insns.
450
451 2009-06-01  Olivier Hainque  <hainque@adacore.com>
452             Eric Botcazou  <ebotcazou@adacore.com>
453
454         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
455         to be processed as a bitfield for constructor output purposes.
456         * output.h (initializer_constant_valid_for_bitfield_p): Declare
457         new function.
458         * varasm.c (oc_local_state): New type, output_constructor
459         local state to support communication with helpers.
460         (oc_outer_state): New type, output_constructor outer state of
461         relevance in recursive calls.
462         (output_constructor_array_range): New output_constructor helper,
463         extracted code for an array range element.
464         (output_constructor_regular_field): New output_constructor helper,
465         extracted code for an element that is not a bitfield.
466         (output_constructor_bitfield): New output_constructor helper,
467         extracted code for a bitfield element.  Accept an OUTER state
468         argument for recursive processing.  Recurse on record or array
469         CONSTRUCTOR values, possibly past noop conversions.
470         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
471         VALUE is a valid constant-valued expression for use in a static
472         bit-field initializer.
473         (output_constructor): Rework to use helpers.  Accept and honor an
474         OUTER state argument for recursive calls.  Return total size.  Be
475         prepared for nested constructors initializing bitfields.
476         (output_constant): Feed OUTER in calls to output_constructor.
477
478 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
479
480         * calls.c (emit_library_call_value_1): Don't force_operand for move
481         and push insns.
482
483 2009-06-01  Nick Clifton  <nickc@redhat.com>
484
485         * doc/invoke.texi (IA-64 Options): Fix typo.
486
487 2009-06-01  Ira Rosen  <irar@il.ibm.com>
488
489         PR tree-optimization/39129
490         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
491         printed message.
492         (vect_do_peeling_for_loop_bound): Use 
493         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
494         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
495         (vect_loop_versioning): Likewise.
496         (vect_create_cond_for_alias_checks): Fix indentation.
497         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
498         macros.
499         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
500         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
501         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
502         "control flow in loop".
503         (vect_estimate_min_profitable_iters): Use 
504         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
505         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
506         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
507         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
508         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
509         statement belongs to a group of strided accesses with the exact code 
510         check.
511         (vectorizable_load): Likewise.
512         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
513         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
514
515 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
516
517         * config/freebsd-stdint.h: New file.
518         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
519         Add freebsd-stdint.h to tm_file.
520
521 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
522
523         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
524         (thumb2_extendhidi2): Likewise.
525
526 2009-05-31  Ian Lance Taylor  <iant@google.com>
527
528         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
529
530 2009-05-31  Ian Lance Taylor  <iant@google.com>
531
532         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
533         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
534         (ipa-reference.o): Depend upon gt-ipa-reference.h.
535
536 2009-05-31  Jason Merrill  <jason@redhat.com>
537
538         * tree-pretty-print.c (print_call_name): Take the callee, not the
539         call itself.  Make non-static.  Use dump_function_name for functions.
540         (dump_generic_node): Adjust.
541         * diagnostic.h: Declare print_call_name.
542         * gimple-pretty-print.c (dump_gimple_call): Use it.
543
544 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
545
546         * config/sh/sh.md (ashldi3_std): New define_expand.
547         (ashldi3): Use it.
548
549 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
550
551         PR target/40313
552         * config/sh/sh.c: Include debug.h.
553         (sh_expand_epilogue): Emit a blockage insn before the frame
554         pointer adjustment also when dwarf2out_do_frame returns true.
555
556 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
557
558         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
559         (thumb2_extendqidi2): New pattern.
560
561 2009-05-31  Ira Rosen  <irar@il.ibm.com>
562
563         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
564         mark phis for renaming.
565         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
566         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
567         Call mark_sym_for_renaming.
568         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
569         * tree-vect-loop.c (vect_transform_loop): Remove
570         vect_memsyms_to_rename initialization and a call to
571         mark_set_for_renaming.
572
573 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
574
575         PR middle-end/40304
576         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
577         frame related even if !set_cfa && style < 0.
578
579 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
580
581         * config/i386/mingw-tls.c: New file.
582         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
583         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
584         defining _WIN32 but not __CYGWIN__.
585
586 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
587
588         * configure.ac: Add MPC support.
589         
590         * config.in, configure: Regenerate.     
591
592 2009-05-29  Richard Henderson  <rth@redhat.com>
593
594         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
595         NOTE_INSN_BASIC_BLOCK.
596         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
597         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
598         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
599         to be deleted.
600         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
601         add in_use field.
602         (add_cfi): Disable check redefining cfa away from drap.
603         (lookup_cfa_1): Add remember argument; handle remember/restore.
604         (lookup_cfa): Pass remember argument.
605         (cfa_remember): New.
606         (compute_barrier_args_size_1): Remove sibcall check.
607         (dwarf2out_frame_debug_def_cfa): New.
608         (dwarf2out_frame_debug_adjust_cfa): New.
609         (dwarf2out_frame_debug_cfa_offset): New.
610         (dwarf2out_frame_debug_cfa_register): New.
611         (dwarf2out_frame_debug_cfa_restore): New.
612         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
613         (dwarf2out_begin_epilogue): New.
614         (dwarf2out_frame_debug_restore_state): New.
615         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
616         DW_CFA_restore_state.
617         (output_cfi_directive): Likewise.
618         (convert_cfa_to_fb_loc_list): Likewise.
619         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
620         * dwarf2out.h: Update.
621         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
622         (copy_insn_1): Early out for null.
623         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
624         and dwarf2out_frame_debug_restore_state.
625         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
626         (prologue_insn_hash, epilogue_insn_hash): New.
627         (free_after_compilation): Adjust freeing accordingly.
628         (record_insns): Create hash table if needed; push insns into
629         hash instead of array.
630         (maybe_copy_epilogue_insn): New.
631         (contains): Search hash table instead of array.
632         (sibcall_epilogue_contains): Remove.
633         (thread_prologue_and_epilogue_insns): Split eh_return insns
634         and mark them as epilogues.
635         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
636         scanning in terms of basic blocks.
637         * insn-notes.def (CFA_RESTORE_STATE): New.
638         * jump.c (returnjump_p_1): Accept EH_RETURN.
639         (eh_returnjump_p_1, eh_returnjump_p): New.
640         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
641         CFA_REGISTER, CFA_RESTORE): New.
642         * rtl.def (EH_RETURN): New.
643         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
644
645         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
646         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
647
648         * config/i386/i386.c (gen_push): Update cfa state.
649         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
650         add a CFA_ADJUST_CFA note.
651         (ix86_dwarf_handle_frame_unspec): Remove.
652         (ix86_expand_prologue): Update cfa state.
653         (ix86_emit_restore_reg_using_pop): New.
654         (ix86_emit_restore_regs_using_pop): New.
655         (ix86_emit_leave): New.
656         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
657         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
658         * config/i386/i386.h (struct machine_cfa_state): New.
659         (ix86_cfa_state): New.
660         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
661         (eh_return_internal): Merge from eh_return_<mode>,
662         use eh_return rtx, split w/ epilogue.
663
664 2009-05-29  Ian Lance Taylor  <iant@google.com>
665
666         * builtins.c (validate_gimple_arglist): Don't use va_arg with
667         enum type.
668         * calls.c (emit_library_call_value_1): Likewise.
669
670         * c-typeck.c (c_build_va_arg): New function.
671         * c-tree.h (c_build_va_arg): Declare.
672         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
673         instead of build_va_arg.
674
675 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
676
677         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
678         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
679         (ptr_difference_cost): Use affine combinations to compute it.
680         (difference_cost): Likewise.
681         (get_computation_cost_at): Compute more accurate cost for addresses
682         if the ratio is a multiplier allowed in addresses.
683         For non-addresses, consider that an additional offset or symbol is
684         added only once.
685
686 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
687
688         * config/i386/i386.c (ix86_decompose_address): Avoid useless
689         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
690
691         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
692         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
693         (prefix_rex): For UNIT_MMX don't imply the prefix by default
694         if MODE_DI.
695         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
696         to 1 for TYPE_SSE{IADD1,CVT1}.
697         (prefix_vex_imm8): Removed.
698         (length_vex): Only pass 1 as second argument to
699         ix86_attr_length_vex_default if prefix_extra is 0.
700         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
701         (length): For prefix vex computation use length_immediate
702         attribute instead of prefix_vex_imm8.
703         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
704         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
705         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
706         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
707         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
708         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
709         a space in between the operands.
710         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
711         if one operand is 0xff and the other one si, di, bp or sp.
712         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
713         other one si, di, bp or sp.
714         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
715         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
716         type and mode attributes.
717         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
718         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
719         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
720         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
721         prefix_data16 attribute iff MODE_DF.
722         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
723         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
724         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
725         constm128_operand in length_immediate computation.
726         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
727         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
728         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
729         length_immediate attribute to 1.
730         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
731         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
732         for certain alternatives.
733         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
734         prefix_data16 attribute if MODE_V1DF.
735         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
736         length_immediate to 1.
737         (set_got_rex64, set_rip_rex64): Remove length attribute, set
738         length_address to 4, set mode attribute to MODE_DI.
739         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
740         (fxam<mode>2_i387): Set length attribute to 4.
741         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
742         *prefetch_3dnow_rex): Override length_address attribute.
743         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
744         attributes.
745         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
746         (constm128_operand): Removed.
747         * config/i386/i386.c (memory_address_length): For
748         disp && !index && !base in 64-bit mode account for SIB byte if
749         print_operand_address can't optimize disp32 into disp32(%rip)
750         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
751         for fs: or gs: segment.
752         (ix86_attr_length_immediate_default): When checking if shortform
753         is possible, truncate immediate to the length of the non-shortened
754         immediate.
755         (ix86_attr_length_address_default): Ignore MEM_P operands
756         with X constraint.
757         (ix86_attr_length_vex_default): Only check for DImode on
758         GENERAL_REG_P operands.
759         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
760         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
761         (sse_cvttps2pi): Clear prefix_rep attribute.
762         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
763         attribute.
764         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
765         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
766         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
767         iff operand 2 is const_int_operand.
768         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
769         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
770         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
771         instead of vex.
772         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
773         prefix_data16.
774         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
775         prefix_data16 attribute for movlpd and movhpd instructions.
776         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
777         length_immediate for shufpd instruction.
778         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
779         (avx_cmpp<avxmodesuffixf2c><mode>3,
780         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
781         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
782         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
783         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
784         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
785         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
786         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
787         prefix_data16 attribute for the first alternative to 1.
788         (*avx_loadlps): Override length_immediate for the first alternative.
789         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
790         attributes for second alternative.
791         (*vec_concatv2sf_sse4_1): Override length_immediate and
792         prefix_data16 attributes for second alternative.
793         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
794         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
795         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
796         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
797         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
798         prefix_data16 and length_immediate to 1.
799         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
800         to 1.
801         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
802         prefix_extra attribute for variants that don't have 0f prefix alone.
803         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
804         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
805         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
806         *sse4_1_pextrd): Set length_immediate to 1.
807         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
808         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
809         to 1.
810         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
811         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
812         length_immediate to 1 for second alternative.
813         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
814         prefix_extra and length_immediate attributes for the first
815         alternative.
816         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
817         first alternative.
818         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
819         to 1 for the first and third alternative.
820         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
821         alternative.
822         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
823         attribute.
824         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
825         attribute to 0.
826         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
827         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
828         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
829         *avx_psign<mode>3): Set prefix_extra attribute to 1.
830         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
831         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
832         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
833         ssse3_psign<mode>3): Override prefix_rex attribute.
834         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
835         (ssse3_palignrti): Override length_immediate to 1.
836         (ssse3_palignrdi): Override length_immediate to 1, override
837         prefix_rex attribute.
838         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
839         (sse4a_extrqi): Override length_immediate to 2.
840         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
841         (sse4a_insertq): Override prefix_data16 to 0.
842         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
843         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
844         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
845         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
846         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
847         and length_immediate to 1.
848         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
849         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
850         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
851         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
852         and length_immediate to 1.
853         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
854         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
855         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
856         avx_ptest256): Override prefix_extra to 1.
857         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
858         Override prefix_data16 and length_immediate to 1.
859         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
860         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
861         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
862         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
863         prefix_data16 to 0 and prefix_extra to 2.
864         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
865         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
866         attribute.
867         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
868         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
869         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
870         and prefix_extra to 2.
871         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
872         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
873         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
874         avx_vpermilvar<mode>3,
875         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
876         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
877         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
878         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
879         Override prefix_extra to 1.
880         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
881         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
882         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
883         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
884         prefix_extra and length_immediate to 1.
885         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
886         modrm to 0.
887         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
888         to 1 for the first alternative.
889         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
890         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
891         cases.
892         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
893         *movv2sf_internal_avx, *movv2sf_internal): Override
894         prefix_rep attribute for certain alternatives.
895         (*mov<mode>_internal): Override prefix_rep or prefix_data16
896         attributes for certain alternatives.
897         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
898         attributes for certain alternatives.
899         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
900         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
901         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
902         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
903         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
904         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
905         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
906         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
907         length_immediate to 1 if operand 2 is const_int_operand.
908         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
909         *vec_extractv2si_1): Set length_immediate attribute to 1.
910         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
911         using old 3DNOW insn rather than SSE/3DNOW_A.
912         (mmx_emms, mmx_femms): Clear modrm attribute.
913
914 2009-05-29  Martin Jambor  <mjambor@suse.cz>
915
916         * tree-sra.c:  New implementation of SRA.
917
918         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
919         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
920         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
921         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
922         (SRA_MAX_STRUCTURE_COUNT): Removed.
923         (SRA_FIELD_STRUCTURE_RATIO): Removed.
924         * doc/invoke.texi (sra-max-structure-size): Removed.
925         (sra-field-structure-ratio): Removed.
926
927 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
928
929         PR middle-end/40291
930         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
931         before expansion.
932
933 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
934
935         PR rtl-optimization/40101
936         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
937         seqno.  Adjust comment.
938         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
939         inserting bookkeeping before a jump, the jump is not scheduled.
940         When no positive seqno found, provide a value.  Add comment.
941
942 2009-05-29  Richard Guenther  <rguenther@suse.de>
943
944         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
945         short-cutting on the first component.
946
947 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
948
949         PR middle-end/39958
950         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
951         for trees other than decls/types.
952
953 2009-05-29  Richard Guenther  <rguenther@suse.de>
954
955         * tree-ssa-operands.c (get_expr_operands): Do not handle
956         INDIRECT_REFs in the handled-component case.  Remove
957         unused get_ref_base_and_extent case.
958         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
959         tree_low_cst and host_integerp where possible.
960         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
961         codes for equivalence.
962         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
963
964 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
965
966         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
967         to tmake_file for i[34567]86-*-cygwin*. 
968
969 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
970
971         PR target/40017
972         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
973         (altivec_categorize_keyword, init_vector_keywords,
974         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
975         similar to bool.
976
977 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
978
979         * tree.c (handle_dll_attribute): Check if node is
980         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
981
982 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
983
984         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
985         component.
986         (thumb2_zero_extendqidi2): Likewise.
987
988 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
989
990         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
991         instead of gen_movrt.
992         * config/sh/sh.md (movrt): Remove.
993
994 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
995
996         * doc/invoke.texi (IA-64 Options):
997         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
998         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
999         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
1000         -msched-prefer-non-control-spec-insns,
1001         -msched-stop-bits-after-every-cycle,
1002         -msched-count-spec-in-critical-path,
1003         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
1004         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
1005         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
1006         and -msched-spec-verbose.
1007
1008 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
1009
1010         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
1011         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
1012         error if used.
1013         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
1014
1015 2009-05-28  Richard Guenther  <rguenther@suse.de>
1016
1017         * tree-ssa-alias.c (ao_ref_init): New function.
1018         (ao_ref_base): Likewise.
1019         (ao_ref_base_alias_set): Likewise.
1020         (ao_ref_alias_set): Likewise.
1021         (refs_may_alias_p_1): Change signature.
1022         (refs_may_alias_p): Adjust.
1023         (refs_anti_dependent_p): Likewise.
1024         (refs_output_dependent_p): Likewise.
1025         (call_may_clobber_ref_p_1): Change signature.
1026         (call_may_clobber_ref_p): Adjust.
1027         (stmt_may_clobber_ref_p_1): New function split out from ...
1028         (stmt_may_clobber_ref_p): ... here.
1029         (maybe_skip_until): Adjust signature.
1030         (get_continuation_for_phi): Likewise.
1031         (walk_non_aliased_vuses): Likewise.
1032         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
1033         (ao_ref_init): Declare.
1034         (ao_ref_base): Likewise.
1035         (ao_ref_alias_set): Likewise.
1036         (stmt_may_clobber_ref_p_1): Likewise.
1037         (walk_non_aliased_vuses): Adjust.
1038         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
1039         (get_ref_from_reference_ops): remove.
1040         (vn_reference_lookup_2): Adjust signature.
1041         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
1042         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
1043         (vn_reference_lookup): Adjust.
1044         (vn_reference_insert): Likewise.
1045         (vn_reference_insert_pieces): Adjust signature.
1046         (visit_reference_op_call): Adjust.
1047         * tree-ssa-pre.c (get_expr_type): Simplify.
1048         (phi_translate_1): Adjust.
1049         (compute_avail): Likewise.
1050         (translate_vuse_through_block): Do not re-build trees.
1051         (value_dies_in_block_x): Likewise.
1052         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
1053         fields.
1054         (vn_reference_lookup_pieces): Adjust declaration.
1055         (vn_reference_insert_pieces): Likewise.
1056
1057 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
1058
1059         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
1060         with checking disabled.
1061
1062 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
1063
1064         PR target/37216
1065
1066         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
1067         macro definition for support of three-operand format aligned
1068         .comm directive in assembler on cygwin/pe/mingw target OS.
1069         * configure:  Regenerate.
1070         * config.h:  Regenerate.
1071
1072         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
1073         aligned form of .comm directive if -mpe-aligned-commons is in effect.
1074         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
1075
1076         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
1077         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
1078
1079 2009-05-28  Ira Rosen  <irar@il.ibm.com>
1080
1081         PR tree-optimization/40254
1082         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
1083         in analysis of basic blocks.
1084
1085 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
1086
1087         PR middle-end/33699
1088         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
1089         * target-def.h (TARGET_CONST_ANCHOR): New macro.
1090         (TARGET_INITIALIZER): Use it.
1091         * cse.c (CHEAPER): Move it up to the other macros.
1092         (insert): Rename this ...
1093         (insert_with_costs): ... to this.  Add cost parameters.  Update
1094         function comment.
1095         (insert): New function.  Call insert_with_costs.
1096         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
1097         find_reg_offset_for_const, try_const_anchors): New functions.
1098         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
1099         when using a const-anchor.  Call insert_const_anchors.
1100         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
1101         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
1102
1103 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
1104
1105         * tree-inline.c (remap_decls): Enable nonlocalized variables
1106         when not optimizing.
1107
1108 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
1109
1110         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
1111         Simplify other tests involving optimize.
1112
1113 2009-05-27  Tom Tromey  <tromey@redhat.com>
1114
1115         * unwind-dw2.c (_Unwind_DebugHook): New function.
1116         (uw_install_context): Call _Unwind_DebugHook.
1117
1118 2009-05-27  Tom Tromey  <tromey@redhat.com>
1119
1120         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
1121
1122 2009-05-27  Ian Lance Taylor  <iant@google.com>
1123
1124         * Makefile.in (LINKER, LINKER_FLAGS): Define.
1125         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
1126         (ALL_LINKERFLAGS): Define.
1127         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
1128         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1129         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
1130         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1131         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
1132         $(LINKER_FOR_BUILD).
1133         (build/gcov-iov$(build_exeext)): Likewise.
1134
1135 2009-05-27  Julian Brown  <julian@codesourcery.com>
1136
1137         * gcse.c (target.h): Include.
1138         (can_assign_to_reg_without_clobbers_p): Check that the target allows
1139         copy of argument to a pseudo register.
1140
1141 2009-05-27  Diego Novillo  <dnovillo@google.com>
1142
1143         * tree-ssa-live.c (dump_scope_block): Document arguments.
1144         (dump_scope_blocks): Document.
1145         (debug_scope_blocks): New.
1146         * tree-flow.h (debug_scope_blocks): Declare.
1147
1148 2009-05-21  Denis Chertykov  <denisc@overta.ru>
1149
1150         * doc/contrib.texi (Contributors): Add myself to the list.
1151
1152 2009-05-27  Olivier Hainque  <hainque@adacore.com>
1153
1154         * expr.c (target_align): New function.  Alignment the TARGET of an
1155         assignment may be assume to have.
1156         (highest_pow2_factor_for_target): Use it instead of relying on
1157         immediate tree attributes of TARGET, not necessarily honored when
1158         intermediate bitfields are involved.
1159         
1160 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1161
1162         PR target/40266
1163         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1164         AVX, SSE4, AES, PCLMUL and POPCNT.
1165
1166 2009-05-27  Diego Novillo  <dnovillo@google.com>
1167
1168         * tree-pretty-print.c (dump_location): New.
1169         (dump_generic_node): Call it.
1170         Factor code to handle BLOCK nodes ...
1171         (dump_block_node): ... here.
1172
1173 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
1174
1175         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
1176         with it.
1177         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
1178         included.
1179         * gcc-plugin.h: Include config.h and system.h.
1180         (IN_GCC): Define if not defined.
1181
1182 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
1183
1184         PR middle-end/40249
1185         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
1186         with -fno-inline.
1187
1188 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
1189
1190         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
1191         applicable.
1192         * config/m32r/m32r.h: Ditto.
1193         * config/m32r/m32r.md: Ditto.
1194         * config/m32r/predicates.md: Ditto.
1195
1196 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
1197
1198         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
1199
1200 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
1201
1202         * doc/plugins.texi
1203         (Loading plugins): typo.
1204         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
1205         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1206         (Interacting with the GCC Garbage Collector): Added new section.
1207         (Giving information about a plugin): Added new section for
1208         PLUGIN_INFO.
1209         * ggc.h (ggc_register_root_tab): Added declaration.
1210         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
1211         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
1212         (register_callback): Improved comment in declaration.
1213         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
1214         (extra_root_vec) Added static variable for dynamic roots registration.
1215         (ggc_register_root_tab) Added new routine.
1216         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
1217         PLUGIN_GGC_MARKING event.
1218         * ggc-zone.c: Include plugin.h.
1219         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1220         * ggc-page.c: Include plugin.h.
1221         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
1222         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
1223         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
1224         (register_callback): check lack of callbacks for
1225         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
1226         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
1227         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
1228         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
1229         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
1230         dependency on plugin.h.
1231         (plugin.o): Added dependency on ggc.h...
1232
1233 2009-05-26  Richard Guenther  <rguenther@suse.de>
1234
1235         PR middle-end/40248
1236         Revert
1237         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1238         with mismatched comparison modes.
1239
1240         * expr.c (expand_expr_real_1): Expand the operand of a
1241         VIEW_CONVERT_EXPR in its natural mode.
1242
1243 2009-05-26  Ian Lance Taylor  <iant@google.com>
1244
1245         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
1246         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
1247         (ALL_COMPILERFLAGS): Define.
1248         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
1249         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
1250         (collect2$(exeext), collect2.o): Likewise.
1251         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
1252         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
1253         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
1254         (libbackend.o, intl.o, cppdefault.o): Likewise.
1255         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
1256         (build/%.o): Use $(COMPILER_FOR_BUILD).
1257         (build/gen%$(build_exeext)): Likewise.
1258         (build/gcov-iov$(build_exeext)): LIkewise.
1259         * config/t-darwin (darwin.o): Use $(COMPILER).
1260         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
1261         * config/t-sol2 (sol2-c.o): Likewise.
1262         (sol2.o): Likewise.
1263         * config/t-vxworks (vxworks.o): Likewise.
1264         * config/x-darwin (host-darwin.o): Likewise.
1265         * config/x-hpux (host-hpux.o): Likewise.
1266         * config/x-linux (host-linux.o): Likewise.
1267         * config/x-solaris (host-solaris.o): Likewise.
1268         * config/alpha/x-alpha (driver-alpha.o): Likewise.
1269         * config/arm/t-arm (arm-c.o): Likewise.
1270         * config/arm/t-pe (pe.o): Likewise.
1271         * config/arm/t-wince-pe (pe.o): Likewise.
1272         * config/i386/t-cygming (winnt.o): Likewise.
1273         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
1274         * config/i386/t-cygwin (cygwin1.o): Likewise.
1275         (cygwin2.o): Likewise.
1276         * config/i386/t-i386 (i386-c.o): Likewise.
1277         * config/i386/t-interix (winnt.o): Likewise.
1278         * config/i386/t-netware (netware.o): Likewise.
1279         * config/i386/t-nwld (nwld.o): Likewise.
1280         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
1281         * config/i386/x-i386 (driver-i386.o): Likewise.
1282         * config/i386/x-cygwin (host-cygwin.o): Likewise.
1283         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
1284         * config/ia64/t-ia64 (ia64-c.o): Likewise.
1285         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
1286         * config/mips/x-native (driver-native.o): Likewise.
1287         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
1288         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
1289         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
1290         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
1291         * config/score/t-score-elf (score7.o): Likewise.
1292         (score3.o): Likewise.
1293         * config/sh/t-sh (sh-c.o): Likewise.
1294         * config/sh/t-symbian (sh-c.o): Likewise.
1295         (symbian.o): Likewise.
1296         * config/spu/t-spu-elf (spu-c.o): Likewise.
1297         * config/v850/t-v850 (v850-c.o): Likewise.
1298         * config/v850/t-v850e (v850-c.o): Likewise.
1299
1300 2009-05-26  Richard Guenther  <rguenther@suse.de>
1301
1302         PR tree-optimization/40122
1303         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
1304         VECTOR_CSTs if possible.
1305         (fold_gimple_assign): Likewise.
1306
1307 2009-05-26  Richard Guenther  <rguenther@suse.de>
1308
1309         PR middle-end/40252
1310         * fold-const.c (fold_binary): Use the correct types for building
1311         rotates.
1312
1313 2009-05-26  Richard Guenther  <rguenther@suse.de>
1314
1315         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
1316         redundant calls to merge_alias_info.
1317         (bump_vector_ptr): Likewise.
1318         * tree-ssa-copy.c (merge_alias_info): Remove.
1319         (replace_exp_1): Remove call to merge_alias_info.
1320         (propagate_tree_value): Likewise.
1321         (fini_copy_prop): Propagate points-to info.
1322         * tree-flow.h (merge_alias_info): Remove.
1323
1324 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1325
1326         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
1327
1328 2009-05-25  Jan Hubicka  <jh@suse.cz>
1329
1330         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1331         * cgraph.h (struct inline_summary): New filed self_wize,
1332         size_inlining_benefit, self_time and time_inlining_benefit.
1333         (struct cgraph_global_info): Replace insns by time ans size fields.
1334         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1335         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1336         (ipcp_update_callgraph): Do not touch function bodies.
1337         * ipa-inline.c: Include except.h
1338         (MAX_TIME): New constant.
1339         (overall_insns): Remove.
1340         (leaf_node_p): New.
1341         (overall_size, max_benefit): New static variables.
1342         (cgraph_estimate_time_after_inlining): New function.
1343         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1344         (cgraph_clone_inlined_nodes): Update size.
1345         (cgraph_mark_inline_edge): Update size.
1346         (cgraph_estimate_growth): Use size info.
1347         (cgraph_check_inline_limits): Check size.
1348         (cgraph_default_inline_p): Likewise.
1349         (cgraph_edge_badness): Compute badness based on benefit and size cost.
1350         (cgraph_decide_recursive_inlining): Check size.
1351         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
1352         and times.
1353         (cgraph_decide_inlining): Likewise.
1354         (cgraph_decide_inlining_incrementally): Likewise; honor
1355         PARAM_EARLY_INLINING_INSNS.
1356         (likely_eliminated_by_inlining_p): New predicate.
1357         (estimate_function_body_sizes): New function.
1358         (compute_inline_parameters): Use it.
1359         * except.c (must_not_throw_labels): New function.
1360         * except.h (must_not_throw_labels): Declare.
1361         * tree-inline.c (init_inline_once): Kill inlining_weigths
1362         * tree-ssa-structalias.c: Avoid uninitialized warning.
1363         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1364         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1365         (PARAM_INLINE_CALL_COST): Remove.
1366         (PARAM_EARLY_INLINING_INSNS): New.
1367
1368 2009-05-25  Richard Guenther  <rguenther@suse.de>
1369
1370         PR tree-optimization/36327
1371         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
1372         callback for reference translation or lookup at the point of may-defs.
1373         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
1374         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
1375         for union COMPONENT_REFs.
1376         (vn_reference_lookup_3): New callback.  Lookup from memset
1377         and CONSTRUCTOR assignment, translate through struct copies.
1378         (vn_reference_lookup_pieces): Make sure to not free the
1379         passed operands array.  Adjust walk_non_aliased_vuses call.
1380         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1381         make sure we do not leak memory.
1382
1383 2009-05-25  Richard Guenther  <rguenther@suse.de>
1384
1385         * tree-ssa-alias.h (dump_points_to_solution): Declare.
1386         * tree-inline.c (expand_call_inline): Reset the escaped and
1387         callused solutions.
1388         * tree-ssa-structalias.c (pass_build_ealias): New.
1389         * tree-pass.h (pass_build_ealias): Declare.
1390         * passes.c (init_optimization_passes): Add PTA during 
1391         early optimizations.
1392         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1393         and CALLUSED solutions.
1394         (dump_points_to_solution): New function, split out from ...
1395         (dump_points_to_info_for): ... here.
1396         * tree-parloops.c (parallelize_loops): Reset the escaped and
1397         callused solutions.
1398
1399 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1400
1401         PR bootstrap/40027
1402         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1403         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1404
1405 2009-05-25  Ira Rosen  <irar@il.ibm.com>
1406
1407         PR tree-optimization/40238
1408         * tree-vect-stmts.c (vect_init_vector): Insert initialization
1409         statements after basic block's labels.
1410         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
1411         to free the allocated memory.
1412
1413 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1414
1415         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1416         return address with a USE.
1417
1418 2009-05-24  Richard Guenther  <rguenther@suse.de>
1419
1420         PR middle-end/40233
1421         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1422         array type from the main variant of the inner type.
1423
1424 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1425
1426         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1427         definition to bool (from int) to un-break build.
1428         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1429
1430 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
1431
1432         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1433         discard_stmt_changes): Delete.
1434         * tree-ssa-operands.c (scb_stack): Delete.
1435         (init_ssa_operands): Do not initialize it.
1436         (fini_ssa_operands): Do not free it.
1437         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1438
1439         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
1440         update_stmt, remove the others.  Fix comments.
1441         * tree-dfa.c (optimize_stack_restore): Likewise.
1442         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1443         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1444         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1445         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1446         Likewise.
1447         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1448         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1449         (dom_opt_finalize_block): Likewise, adjusting access to
1450         stmts_to_rescan.
1451         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1452         (stmts_to_rescan): Change item type to gimple.
1453         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1454
1455 2009-05-24  Ira Rosen  <irar@il.ibm.com>
1456
1457         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1458         * tree-pass.h (pass_slp_vectorize): New pass.
1459         * params.h (SLP_MAX_INSNS_IN_BB): Define.
1460         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1461         * tree-vectorizer.c (timevar.h): Include.
1462         (user_vect_verbosity_level): Declare.
1463         (vect_location): Fix comment.
1464         (vect_set_verbosity_level): Update user_vect_verbosity_level
1465         instead of vect_verbosity_level.
1466         (vect_set_dump_settings): Add an argument. Ignore user defined
1467         verbosity if dump flags require higher level of verbosity. Print to
1468         stderr only for loop vectorization.
1469         (vectorize_loops): Update call to vect_set_dump_settings.
1470         (execute_vect_slp): New function.
1471         (gate_vect_slp): Likewise.
1472         (struct gimple_opt_pass pass_slp_vectorize): New.
1473         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1474         access its members.
1475         (vec_info_for_bb): New function.
1476         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1477         (VECTORIZATION_ENABLED): New macro.
1478         (SLP_ENABLED, SLP_DISABLED): Likewise.
1479         (vect_is_simple_use): Add bb_vec_info argument.
1480         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1481         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1482         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1483         vect_schedule_slp, vect_analyze_slp): Likewise.
1484         (vect_analyze_stmt): Add slp_tree argument.
1485         (find_bb_location): Declare.
1486         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1487         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1488         (vect_analyze_loop_operations, vect_analyze_loop,
1489         get_initial_def_for_induction, vect_create_epilog_for_reduction,
1490         vect_finalize_reduction, vectorizable_reduction,
1491         vectorizable_live_operation, vect_transform_loop): Likewise.
1492         * tree-data-ref.c (dr_analyze_innermost): Update comment,
1493         skip evolution analysis if analyzing a basic block.
1494         (dr_analyze_indices): Likewise.
1495         (initialize_data_dependence_relation): Skip the test whether the
1496         object is invariant for basic blocks.
1497         (compute_all_dependences): Skip dependence analysis for data
1498         references in basic blocks.
1499         (find_data_references_in_stmt): Don't fail in case of invariant
1500         access in basic block.
1501         (find_data_references_in_bb): New function.
1502         (find_data_references_in_loop): Move code to
1503         find_data_references_in_bb and add a call to it.
1504         (compute_data_dependences_for_bb): New function.
1505         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1506         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1507         that STEP is 0.
1508         (vect_analyze_data_ref_dependence): Check for interleaving in case of
1509         unknown dependence in basic block and fail in case of dependence in
1510         basic block.
1511         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1512         dependence instances from either loop or basic block vectorization
1513         info.
1514         (vect_compute_data_ref_alignment): Check if it is loop vectorization
1515         before calling nested_in_vect_loop_p.
1516         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1517         dependence instances from either loop or basic block vectorization
1518         info.
1519         (vect_verify_datarefs_alignment): Likewise.
1520         (vect_enhance_data_refs_alignment): Adjust function calls.
1521         (vect_analyze_data_refs_alignment): Likewise.
1522         (vect_analyze_group_access): Fix printing. Skip different checks if
1523         DR_STEP is 0. Keep strided stores either in loop or basic block
1524         vectorization data structure. Fix indentation.
1525         (vect_analyze_data_ref_access): Fix comments, allow zero step in
1526         basic blocks.
1527         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1528         dependence instances from either loop or basic block vectorization
1529         info.
1530         (vect_analyze_data_refs): Update comment. Call
1531         compute_data_dependences_for_bb to analyze basic blocks.
1532         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1533         case of loop vectorization. In case of basic block vectorization use
1534         data-ref itself as a base.
1535         (vect_create_data_ref_ptr): In case of basic block vectorization:
1536         don't advance the pointer, add new statements before the current
1537         statement.  Adjust function calls.
1538         (vect_supportable_dr_alignment): Support only aligned accesses in
1539         basic block vectorization.
1540         * common.opt (ftree-slp-vectorize): New flag.
1541         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1542         (vect_pattern_recog_1): Likewise.
1543         * tree-vect-stmts.c (process_use): Likewise.
1544         (vect_init_vector): Add new statements in the beginning of the basic
1545         block in case of basic block SLP.
1546         (vect_get_vec_def_for_operand): Adjust function calls.
1547         (vect_finish_stmt_generation): Likewise.
1548         (vectorizable_call): Add assert that it is loop vectorization, adjust
1549         function calls.
1550         (vectorizable_conversion, vectorizable_assignment): Likewise.
1551         (vectorizable_operation): In case of basic block SLP, take
1552         vectorization factor from statement's type and skip the relevance
1553         check. Adjust function calls.
1554         (vectorizable_type_demotion): Add assert that it is loop
1555         vectorization, adjust function calls.
1556         (vectorizable_type_promotion): Likewise.
1557         (vectorizable_store): Check for outer loop only in case of loop
1558         vectorization. Adjust function calls. For basic blocks, skip the
1559         relevance check and don't advance pointers.
1560         (vectorizable_load): Likewise.
1561         (vectorizable_condition): Add assert that it is loop vectorization,
1562         adjust function calls.
1563         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1564         that it is not reduction, get vector type, call only supported
1565         functions, skip loop specific parts.
1566         (vect_transform_stmt): Check for outer loop only in case of loop
1567         vectorization.
1568         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1569         (vect_is_simple_use): Fix comment, add new argument, fix conditions
1570         for external definition.
1571         * passes.c (pass_slp_vectorize): New pass.
1572         * tree-vect-slp.c (find_bb_location): New function.
1573         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1574         check for patterns only in loops.
1575         (vect_build_slp_tree): Add argument, adjust function calls, fail in
1576         case of multiple types in basic block SLP.
1577         (vect_mark_slp_stmts_relevant): New function.
1578         (vect_supported_load_permutation_p): Fix comment.
1579         (vect_analyze_slp_instance): Add argument. In case of basic block
1580         SLP, take vectorization factor from statement's type, check that
1581         unrolling factor is 1. Adjust function call. Save SLP instance in
1582         either loop or basic block vectorization structure. Return FALSE,
1583         if SLP failed.
1584         (vect_analyze_slp): Add argument. Get strided stores groups from
1585         either loop or basic block vectorization structure. Return FALSE
1586         if basic block SLP failed.
1587         (new_bb_vec_info): New function.
1588         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1589         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1590         (vect_schedule_slp): Add argument. Get SLP instances from either
1591         loop or basic block vectorization structure. Set vectorization factor
1592         to be 1 for basic block SLP.
1593         (vect_slp_transform_bb): New function.
1594         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1595
1596 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
1597
1598         * final.c (shorten_branches): Do not align labels for jump tables.
1599         (final_scan_insn): Use JUMP_TABLE_DATA_P.
1600
1601 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1602
1603         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1604         Remove outdated reference to flow.c and fix nits.
1605         * doc/gccint.texi: Tweak RTL description.
1606         * doc/rtl.texi: Likewise.
1607
1608 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
1609
1610         * config/avr/avr.c: Change my email address.
1611         * config/avr/avr.h: Likewise.
1612         * config/avr/avr.md: Likewise.
1613         * config/avr/avr-protos.h: Likewise.
1614         * config/avr/libgcc.S: Likewise.
1615
1616 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1617
1618         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1619         (spu_split_load, spu_split_store): Change return type to int.
1620         (spu_split_convert): Declare.
1621         * config/spu/predicates.md (spu_mem_operand): Remove.
1622         (spu_mov_operand): Update.
1623         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1624         * config/spu/spu.c (regno_aligned_for_load): Remove.
1625         (reg_aligned_for_addr, spu_expand_load): Define.
1626         (spu_expand_extv): Reimplement and handle MEM.
1627         (spu_expand_insv): Handle MEM.
1628         (spu_sched_reorder): Handle insn's with length 0.
1629         (spu_legitimate_address_p): Reimplement.
1630         (store_with_one_insn_p): Return TRUE for any mode with size
1631         larger than 16 bytes.
1632         (address_needs_split): Define.
1633         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1634         operands.
1635         (spu_convert_move): Define.
1636         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
1637         (spu_split_store): Change all MEM's to TImode.
1638         (spu_init_expanders): Preallocate registers that correspond to
1639         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1640         mark_reg_pointer.
1641         (spu_split_convert): Define.
1642         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1643         (_move<mode>, _movdi, _movti): Update predicate and condition.
1644         (load, store): Change to define_split.
1645         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1646         extend<mode>ti2.
1647         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1648         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1649         define_insn_and_split of lshr<mode>3.
1650         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1651         (<v>ashr<mode>3_imm): Define.
1652         (extv, extzv, insv): Allow MEM operands.
1653         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1654         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1655         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1656         (_spu_convert2): Change to define_insn_and_split and remove the
1657         corresponding define_peephole2.
1658         (stack_protect_set, stack_protect_test, stack_protect_test_si):
1659         Change predicates to memory_operand.
1660
1661 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1662
1663         * config/arm/thumb2.md: Add 16-bit multiply instructions.
1664
1665 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1666
1667         PR tree-optimization/40219
1668         * tree.c (iterative_hash_expr): Make sure the builtin function is
1669         a normal builtin function and not a front end or back end builtin
1670         before indexing into the built_in_decls array.
1671
1672 2009-05-22  Richard Guenther  <rguenther@suse.de>
1673
1674         PR middle-end/38964
1675         * alias.c (write_dependence_p): Do not use TBAA for answering
1676         anti-dependence or output-dependence.
1677         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
1678         (emit_pointer_definition): Remove.
1679         (emit_alias_warning): Likewise.
1680         (find_what_var_points_to): Remove TBAA pruning code.
1681         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
1682         violations.
1683         (compute_points_to_sets): Remove code computing the set of
1684         dereferenced pointers.
1685         * tree-data-ref.c (dr_may_alias_p): Properly use the split
1686         oracle for querying anti and output dependencies.
1687         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1688         if TBAA may be applied.
1689         (refs_anti_dependent_p): New function.
1690         (refs_output_dependent_p): Likewise.
1691         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1692         (refs_output_dependent_p): Likewise.
1693         * doc/tree-ssa.texi (Memory model): New section.
1694         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1695         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1696         * cfgexpand.c (expand_gimple_basic_block): Do not handle
1697         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1698         * expr.c (expand_expr_real_1): Likewise.
1699         * gimple-low.c (lower_stmt): Likewise.
1700         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1701         (dump_gimple_cdt): Remove.
1702         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1703         (gimple_size): Likewise.
1704         (walk_gimple_op): Likewise.
1705         (is_gimple_stmt): Likewise.
1706         (walk_stmt_load_store_addr_ops): Likewise.
1707         (gimple_build_cdt): Remove.
1708         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1709         * gimple.h (gimple_cdt_new_type): Remove.
1710         (gimple_cdt_new_type_ptr): Likewise.
1711         (gimple_cdt_set_new_type): Likewise.
1712         (gimple_cdt_location): Likewise.
1713         (gimple_cdt_location_ptr): Likewise.
1714         (gimple_cdt_set_location): Likewise.
1715         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1716         * tree-cfg.c (remove_useless_stmts_1): Do not handle
1717         GIMPLE_CHANGE_DYNAMIC_TYPE.
1718         (verify_types_in_gimple_stmt): Likewise.
1719         * tree-inline.c (estimate_num_insns): Likewise.
1720         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1721         (copy_decl_to_var): Likewise.
1722         (copy_result_decl_to_var): Likewise.
1723         * tree-pretty-print.c (dump_generic_node): Do not handle
1724         CHANGE_DYNAMIC_TYPE_EXPR.
1725         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1726         * tree-ssa-operands.c (get_expr_operands): Likewise.
1727         * tree-ssa-structalias.c (struct variable_info): Remove
1728         no_tbaa_pruning member.
1729         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1730         (unify_nodes): Do not copy it.
1731         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1732         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1733         (set_uids_in_ptset): Do not check it.
1734         (find_what_var_points_to): Likewise.
1735         (compute_tbaa_pruning): Remove.
1736         (compute_points_to_sets): Do not call it.
1737         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1738         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1739         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1740         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1741         (DECL_NO_TBAA_P): Likewise.
1742         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1743         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1744         (expand_omp_atomic_pipeline): Do not set it.
1745         * print-tree.c (print_node): Do not dump it.
1746         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1747         redundant check.
1748
1749 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1750
1751         PR target/39856
1752         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1753         for clobber.
1754
1755 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1756
1757         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1758         non-external.
1759
1760 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1761
1762         * Makefile.in (bversion.h, s-bversion): New targets.
1763         (TOPLEV_H): Add bversion.h.
1764         * toplev.h: Include "bversion.h".
1765         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1766         the __format__ attribute only if compiling with the same version
1767         of GCC as the sources (the "build version").
1768
1769 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1770
1771         * c-format.c (handle_format_attribute): Fix comment typo.
1772
1773 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
1774
1775         PR target/37846
1776         * config/ia64/ia64.opt (mfused-madd): New.
1777         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1778         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1779         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1780         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1781         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1782         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1783         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1784         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
1785         instruction if !TARGET_FUSED_MADD.
1786         (fpma, fpms): Remove colon from name.
1787
1788 2009-05-22  Richard Guenther  <rguenther@suse.de>
1789
1790         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1791         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
1792         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1793         TARGET_MEM_REF.
1794         (create_expression_by_pieces): Only convert if necessary.
1795         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1796         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1797
1798 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
1799
1800         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1801         regular pattern from a template and rename it ...
1802         (*extzv_truncsi_exts): ... to this.
1803
1804 2009-05-21  Richard Guenther  <rguenther@suse.de>
1805
1806         * cgraph.h (struct cgraph_node): Remove inline_decl member.
1807         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1808         (cgraph_default_inline_p): Likewise.
1809         (cgraph_decide_inlining_incrementally): Likewise.
1810
1811 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1812             Uros Bizjak  <ubizjak@gmail.com>
1813
1814         * config/i386/cpuid.h (bit_MOVBE): New.
1815
1816         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1817
1818         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1819         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1820         (ix86_handle_option): Handle OPT_mmovbe.
1821         (ix86_target_string): Add -mmovbe.
1822         (pta_flags): Add PTA_MOVBE.
1823         (processor_alias_table): Add PTA_MOVBE to "atom".
1824         (override_options): Handle PTA_MOVBE.
1825
1826         * config/i386/i386.h (TARGET_MOVBE): New.
1827
1828         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1829         (*bswapsi_movbe): New.
1830         (*bswapdi_movbe): Likewise.
1831         (bswapdi2): Renamed to ...
1832         (*bswapdi_1): This.
1833         (bswapdi2): New expander.
1834
1835         * config/i386/i386.opt (mmovbe): New.
1836
1837         * doc/invoke.texi: Document -mmovbe.
1838
1839 2009-05-21  Taras Glek  <tglek@mozilla.com>
1840
1841         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1842         * gcc-plugin.h (plugin_init): Updated signature.
1843         * gcc-plugin.h (plugin_name_args): Moved to this header.
1844         * doc/plugins.texi (plugin_init): Updated documention to reflect
1845         API change.
1846         * doc/plugins.texi (plugin_name_args): Added to documention.
1847
1848 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
1849
1850         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1851         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1852
1853 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
1854
1855         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1856         JUMP_TABLE_DATA_P predicates where applicable.
1857         * config/i386/predicates.md: Ditto.
1858         * config/i386/sse.md: Ditto.
1859
1860 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
1861
1862         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1863         operand2 -128 override length_immediate attribute to 1.
1864         * config/i386/predicates.md (constm128_operand): New predicate.
1865
1866         * config/i386/i386.c (memory_address_length): Handle %r12
1867         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
1868         also check REGNO.
1869         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1870         mode look through optional ZERO_EXTEND and SUBREG.
1871         * config/i386/i386.md (R12_REG): New define_constant.
1872         (prefix_data16): For sse unit set also for MODE_TI insns.
1873         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
1874         insns set if operand 1 is ext_QIreg_operand.
1875         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
1876         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1877         immediate.
1878         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1879         mode from MODE_DI to MODE_SI.
1880         (movdi_1_rex64): Override modrm and length_immediate attributes
1881         only for movabs (TYPE_IMOV, alternative 2).
1882         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1883         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1884         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1885         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1886         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1887         prefix_rex attribute if DImode.
1888         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1889         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1890         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1891         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1892         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1893         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1894         Likewise.  For TYPE_IMOV clear length_immediate attribute.
1895         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1896         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1897         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1898         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1899         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1900         or one operand TYPE_ISHIFT.
1901         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1902         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1903         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1904         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1905         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1906         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1907         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1908         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1909         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1910         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1911         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1912         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1913         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1914         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1915         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1916         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1917         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1918         set mode attribute, don't override length attribute.
1919         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1920         to 1.
1921         (return_internal_long): Set length attribute to 2 instead of 1.
1922         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1923         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1924         prefix_rex attribute.
1925         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1926         New predicates.
1927         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
1928
1929 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1930
1931         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1932
1933 2009-05-20  Ian Lance Taylor  <iant@google.com>
1934
1935         * tree.c (build_tree_list_vec_stat): New function.
1936         (ctor_to_vec): New function.
1937         (build_nt_call_vec): New function.
1938         (build_call_array): Change args to be a const pointer.
1939         (build_call_vec): New function.
1940         * tree.h (build_nt_call_vec): Declare.
1941         (build_tree_list_vec_stat): Declare.
1942         (build_tree_list_vec): Define.
1943         (build_call_array): Update declaration.
1944         (build_call_vec): Declare.
1945         (ctor_to_vec): Declare.
1946         * c-common.c (tree_vector_cache): New static variable.
1947         (make_tree_vector): New function.
1948         (release_tree_vector): New function.
1949         (make_tree_vector_single): New function.
1950         (make_tree_vector_copy): New function.
1951         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1952         (make_tree_vector_single, make_tree_vector_copy): Declare.
1953         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1954         (c_parser_expr_list): Don't manage cache here, instead call
1955         make_tree_vector.
1956         (c_parser_release_expr_list): Remove static function.
1957         (c_parser_vec_to_tree_list): Remove static function.
1958         (c_parser_attributes): Call build_tree_list_vec instead of
1959         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
1960         c_parser_release_expr_list.
1961         (c_parser_postfix_expression_after_primary): Likewise.
1962         (c_parser_objc_keywordexpr): Likewise.
1963
1964 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1965
1966         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1967         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1968         TARGET_CONVERT_TO_TYPE.
1969         * hooks.c (hook_tree_const_tree_null): Define.
1970         * hooks.h (hook_tree_const_tree_null): Declare.
1971         * target.h (struct gcc_target):  Add invalid_parameter_type,
1972         invalid_return_type, promoted_type, and convert_to_type fields.
1973         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1974         (TARGET_INVALID_RETURN_TYPE): Define.
1975         (TARGET_PROMOTED_TYPE): Define.
1976         (TARGET_CONVERT_TO_TYPE): Define.
1977         (TARGET_INITIALIZER): Update for new fields.
1978         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1979         (grokparms): Check targetm.invalid_parameter_type.
1980         * c-typeck.c (default_conversion): Check targetm.promoted_type.
1981         * c-convert.c (convert): Check targetm.convert_to_type.
1982
1983 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
1984
1985         * config/mips/mips.md (*extenddi_truncate<mode>,
1986         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
1987         defintions.
1988         (*extendhi_truncateqi): New define_insn_and_sptit.
1989
1990 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1991
1992         PR middle-end/40204
1993         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
1994         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
1995
1996 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1997
1998         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1999         the operand of VIEW_CONVERT_EXPR.
2000
2001 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2002
2003         * config/i386/driver-i386.c (host_detect_local_cpu): Check
2004         extended family and model for Intel processors.  Support Intel Atom.
2005
2006 2009-05-20  Olivier Hainque  <hainque@adacore.com>
2007
2008         * gstab.h (stab_code_type): Define, to be used instead of the
2009         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
2010         notice.
2011         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
2012         occurrences by stab_code_type.
2013         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
2014
2015 2009-05-20  Martin Jambor  <mjambor@suse.cz>
2016
2017         * tree-flow.h (insert_edge_copies_seq): Undeclare.
2018         (sra_insert_before): Likewise.
2019         (sra_insert_after): Likewise.
2020         (sra_init_cache): Likewise.
2021         (sra_type_can_be_decomposed_p): Likewise.
2022         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
2023         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
2024         (sra_insert_before): Likewise.
2025         (sra_insert_after): Likewise.
2026         (sra_init_cache): Likewise.
2027         (insert_edge_copies_seq): Made static and moved upwards.
2028
2029         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
2030         case.
2031
2032         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
2033
2034         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
2035         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
2036         simple copies.
2037
2038 2009-05-20  Richard Guenther  <rguenther@suse.de>
2039
2040         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2041         with mismatched comparison modes.
2042
2043 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2044
2045         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
2046         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
2047         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
2048         with shifts for Thumb2.
2049         (orsi_notsi): New for orn.
2050         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
2051         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
2052         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
2053         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
2054         Don't invert remainder for IOR.
2055         
2056 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
2057
2058         PR tree-optimization/40087
2059         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
2060         number_of_iterations_ne): Rename never_infinite argument.
2061         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
2062         number_of_iterations_le): Handle pointer-type ivs when
2063         exit_must_be_taken is false.
2064         (number_of_iterations_cond):  Do not always assume that
2065         exit_must_be_taken if the control variable is a pointer.
2066
2067 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2068
2069         * c-typeck.c (build_binary_op): Allow % on integal vectors.
2070         * doc/extend.texi (Vector Extension): Document that % is allowed too.
2071
2072 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2073
2074         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
2075         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
2076
2077 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2078
2079         PR c/40172
2080         * c.opt (Wlogical-op): Disabled by default.
2081         * c-opt (c_common_post_options): Do not enable Wlogical-op with
2082         Wextra.
2083         * doc/invoke.texi (Wlogical-op): Likewise.
2084         
2085 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2086
2087         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
2088         into CASE_CONVERT.
2089         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
2090         Propagate the type of the first operand.
2091         <ASSERT_EXPR>: Simplify.
2092         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
2093         Rewrite using the RHS code as discriminant.
2094         <NOP_EXPR>: Turn into CASE_CONVERT.
2095         <PLUS_EXPR>: Propagate the type of the first operand.
2096
2097 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
2098
2099         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
2100         (ia64_dconst_0_375): New.
2101         * config/ia64/ia64.c (ia64_override_options): Remove
2102         -minline-sqrt-min-latency warning.
2103         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
2104         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
2105         * config/ia64/ia64.md (*sqrt_approx): Remove.
2106         (sqrtsf2): Remove #if 0.
2107         (sqrtsf2_internal_thr): Rewrite and move to div.md.
2108         (sqrtdf): Remove assert.
2109         (sqrtdf2_internal_thr): Rewrite and move to div.md.
2110         (sqrtxf2): Remove #if 0.
2111         (sqrtxf2_internal_thr): Rewrite and move to div.md.
2112         * div.md (sqrt_approx_rf): New.
2113         (sqrtsf2_internal_thr): New implementation.
2114         (sqrtsf2_internal_lat): New.
2115         (sqrtdf2_internal_thr: New implementation.
2116         (sqrtxf2_internal): New implementation.
2117
2118 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
2119             Hans-Peter Nilsson  <hp@axis.com>
2120
2121         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
2122         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
2123         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
2124         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
2125         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
2126         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
2127         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
2128         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
2129         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
2130         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
2131         * c-common.c: ...from here.
2132
2133 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2134
2135         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
2136
2137 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2138
2139         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
2140
2141 2009-05-19  Ben Elliston  <bje@au.ibm.com>
2142
2143         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
2144         assignments with memcpy calls.
2145         (add_fdes): Likewise.
2146         (binary_search_unencoded_fdes): Likewise.
2147         (linear_search_fdes): Eliminate type puns.
2148         
2149 2009-05-19  Richard Guenther  <rguenther@suse.de>
2150
2151         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
2152         not falsely claim to have propagated into all uses.
2153
2154 2009-05-19  Ben Elliston  <bje@au.ibm.com>
2155
2156         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
2157         version to v3.0.
2158
2159 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2160
2161         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
2162         * config/sh/sh.c (sh_legitimate_address_p): Make static.
2163         (TARGET_LEGITIMATE_ADDRESS_P): New.
2164         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2165         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2166         
2167 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
2168
2169         PR debug/40109
2170         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
2171         child of the containing namespace's DIE.
2172
2173 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
2174
2175         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
2176         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
2177         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
2178         extend patterns.
2179
2180 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
2181
2182         PR target/39942
2183         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
2184         gen_align with gen_pad.
2185         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
2186         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
2187
2188         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
2189         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
2190
2191         * config/i386/i386.md (align): Renamed to ...
2192         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
2193         ASM_OUTPUT_MAX_SKIP_PAD.
2194
2195 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
2196
2197         * config.gcc: Fix variable syntax.
2198
2199         PR target/39531
2200         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
2201         before calling exact_log2.
2202         (output_iorsi3): Likewise.
2203         (output_xorsi3): Likewise.
2204
2205 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2206
2207         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
2208         for the none zero constant operand except for EQ and NE
2209         comprisons even when the first operand is R0.
2210
2211 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2212
2213         * config/s390/2064.md: Remove trailing whitespaces.
2214         * config/s390/2084.md: Likewise.
2215         * config/s390/constraints.md: Likewise.
2216         * config/s390/fixdfdi.h: Likewise.
2217         * config/s390/libgcc-glibc.ver: Likewise.
2218         * config/s390/s390-modes.def: Likewise.
2219         * config/s390/s390-protos.h: Likewise.
2220         * config/s390/s390.c: Likewise.
2221         * config/s390/s390.h: Likewise.
2222         * config/s390/s390.md: Likewise.
2223         * config/s390/tpf-unwind.h: Likewise.
2224
2225 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2226
2227         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
2228
2229 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2230
2231         M68K TLS support.
2232         * configure.ac (m68k-*-*): Check if binutils support TLS.
2233         * configure: Regenerate.
2234         * config/m68k/predicates.md (symbolic_operand): Extend comment.
2235         * config/m68k/constraints.md (Cu): New constraint.
2236         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
2237         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
2238         (movsi): Handle TLS symbols.
2239         (addsi3_5200): Handle XTLS symbols, indent.
2240         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
2241         (m68k_tls_reference_p): Declare.
2242         (m68k_legitimize_address): Declare.
2243         (m68k_unwrap_symbol): Declare.
2244         * config/m68k/m68k.opt (mxtls): New option.
2245         * config/m68k/m68k.c (ggc.h): Include.
2246         (m68k_output_dwarf_dtprel): Implement hook.
2247         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2248         (m68k_expand_prologue): Load GOT pointer when function needs it.
2249         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
2250         (m68k_legitimate_constant_address_p): Same.
2251         (m68k_decompose_address): Handle TLS references.
2252         (m68k_get_gp): New static function.
2253         (enum m68k_reloc): New contants.
2254         (TLS_RELOC_P): New macro.
2255         (m68k_wrap_symbol): New static function.
2256         (m68k_unwrap_symbol): New function.
2257         (m68k_final_prescan_insn_1): New static function.
2258         (m68k_final_prescan_insn): New function.
2259         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
2260         functions.
2261         (legitimize_pic_address): Handle TLS references..
2262         (m68k_tls_get_addr, m68k_get_tls_get_addr)
2263         (m68k_libcall_value_in_a0_p)
2264         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
2265         (m68k_call_m68k_read_tp): Helper variables and functions for ...
2266         (m68k_legitimize_tls_address): Handle TLS references.
2267         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
2268         New functions.
2269         (m68k_legitimize_address): Handle TLS symbols.
2270         (m68k_get_reloc_decoration): New static function.
2271         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
2272         UNSPEC_RELOC32.
2273         (m68k_output_dwarf_dtprel): Implement hook.
2274         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
2275         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
2276         m68k_call_* routines.
2277         (sched_attr_op_type): Handle TLS symbols.
2278         (gt-m68k.h): Include.
2279         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2280         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
2281
2282 2009-05-18  Martin Jambor  <mjambor@suse.cz>
2283
2284         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
2285         (visit_store_addr_for_mod_analysis): New function.
2286         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
2287         (determine_cst_member_ptr): Use gimple_assign_single_p.
2288         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
2289         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
2290         operands.  Don't check number of operands of a NOP_EXPR.
2291
2292 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
2293
2294         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
2295
2296 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2297
2298         PR c/40172
2299         * c-common.c (warn_logical_operator): Don't warn if one of
2300         expression isn't always true or false.
2301
2302 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
2303
2304         * config/i386/biarch32.h: New file.
2305         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
2306
2307 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
2308
2309         * config/mips/mips.md (*zero_extend<mode>_trunchi,
2310         *zero_extend<mode>_truncqi): Merge these into ...
2311         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
2312         Name the pattern following this as *zero_extendhi_truncqi.
2313
2314 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
2315
2316         PR middle-end/39301
2317         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
2318         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
2319         (output_info): Make field HOST_WIDEST_INT.
2320         (print_statistics): Use HOST_WIDEST_INT_PRINT.
2321         (dump_bitmat_statistics): Same.
2322
2323 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
2324
2325         * config.gcc (use_gcc_stdint):  Set to wrap.
2326         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2327         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2328         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2329         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2330         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2331         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2332         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2333         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2334
2335 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
2336
2337         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
2338         tune_64.
2339         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
2340         Move definitions earlier.
2341         (OPT_ARCH64, OPT_ARCH32): Define.
2342         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
2343         and tune_64.
2344
2345 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
2346
2347         PR target/40153
2348         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
2349         implies.
2350
2351 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
2352
2353         * arm.md (movdi2): Copy non-reg values to DImode registers.
2354
2355 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
2356
2357         PR target/39942
2358         * final.c (label_to_max_skip): New function.
2359         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
2360         CODE_LABEL_NUMBER <= max_labelno.
2361         * output.h (label_to_max_skip): New prototype.
2362         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
2363         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
2364         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
2365         Handle CODE_LABELs with >= 16 byte alignment or with
2366         max_skip == (1 << align) - 1.
2367         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
2368         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
2369
2370         PR target/39942
2371         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
2372         .p2align 3 if MAX_SKIP is smaller than 7.
2373         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2374
2375 2009-05-15  Ian Lance Taylor  <iant@google.com>
2376
2377         * alias.c (struct alias_set_entry_d): Rename from struct
2378         alias_set_entry.  Change all uses.
2379         * except.c (struct call_site_record_d): Rename from struct
2380         call_site_record.  Change all uses.
2381         * except.h (struct eh_region_d): Rename from struct eh_region.
2382         Change all uses.
2383         * gcse.c (struct hash_table_d): Rename from struct hash_table.
2384         Change all uses.
2385         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2386         ivtype_map_elt.  Change all uses.
2387         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2388         Change all uses.
2389         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
2390         * graphite.h (struct name_tree_d): Rename from struct name_tree.
2391         Change all uses.
2392         (struct sese_d): Rename from struct sese.  Change all uses.
2393         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
2394         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
2395         * optabs.h (struct optab_d): Rename from struct optab.  Change all
2396         uses.
2397         (struct convert_optab_d): Rename from struct convert_optab.
2398         Change all uses.
2399         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2400         ipa_opt_pass.  Change all uses.
2401         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
2402         all uses.
2403
2404         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2405         defined as a typedef.
2406         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2407         defined as a tag.
2408
2409 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2410
2411         PR 16302
2412         * fold-const.c (make_range,build_range_check,merge_ranges): Move
2413         declaration to...
2414         (merge_ranges): Returns bool. 
2415         * tree.h (make_range): .. to here.
2416         (build_range_check): Likewise.
2417         (merge_ranges): Likewise. Renamed from merge_ranges.
2418         * c-typeck.c (parser_build_binary_op): Update calls to
2419         warn_logical_operator.
2420         * c-common.c (warn_logical_operator): Add new warning.
2421         * c-common.h (warn_logical_operator): Update declaration.
2422         
2423 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2424
2425         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2426         
2427 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2428
2429         * doc/install.texi: Document MPC requirements, flags etc.
2430
2431         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2432         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2433         Evaluate constant arguments.
2434         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2435         (fold_builtin_1): Likewise, also evaluate constant arguments.
2436         Remove superfluous break.
2437         (do_mpc_ckconv): New.
2438         * real.h: Include mpc.h.
2439         * toplev.c (print_version): Output MPC version info if available.
2440
2441 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2442
2443         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2444
2445 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2446
2447         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2448         only once.
2449
2450 2009-05-15  Jan Hubicka  <jh@suse.cz>
2451
2452         * doc/invoke.texi (max-early-inliner-iterations): New flag.
2453         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2454         (try_inline): Fix return value.
2455         (cgraph_decide_inlining_incrementally): Honor new value.
2456         (cgraph_early_inlining): Handle indirect inlining.
2457         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2458
2459 2009-05-15  Jan Hubicka  <jh@suse.cz>
2460
2461         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2462         * cgraphunit.c (cgraph_finalize_function): Set it.
2463         (cgraph_expand_function): Use it.
2464
2465 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2466
2467         * real.c (encode_ieee_half): Define.
2468         (decode_ieee_half): Define.
2469         (ieee_half_format): Define.
2470         (arm_half_format): Define.
2471         * real.h (ieee_half_format): Declare.
2472         (arm_half_format): Declare.
2473
2474 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2475
2476         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
2477         swapped, and reversed optabs exist before trying to use them.
2478
2479 2009-05-15  Paul Brook  <paul@codesourcery.com>
2480             Sandra Loosemore  <sandra@codesourcery.com>
2481
2482         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2483         loads.  Allow PRE_DEC.
2484         (output_move_neon): Handle PRE_DEC.
2485         (arm_print_operand): Add 'A' for neon structure loads.
2486         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2487         * config/arm/neon.md (neon_mov): Update comment.
2488         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2489         calls.
2490         (Um): New constraint.
2491
2492 2009-05-15  Jan Hubicka  <jh@suse.cz>
2493
2494         Revert the following patch until testsuite fallout is fixed:
2495         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2496         * cgraph.h (struct inline_summary): New filed self_wize,
2497         size_inlining_benefit, self_time and time_inlining_benefit.
2498         (struct cgraph_global_info): Replace insns by time ans size fields.
2499         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2500         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2501         (ipcp_update_callgraph): Do not touch function bodies.
2502         * ipa-inline.c: Include except.h
2503         (MAX_TIME): New constant.
2504         (overall_insns): Remove
2505         (overall_size, max_benefit): New static variables.
2506         (cgraph_estimate_time_after_inlining): New function.
2507         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2508         (cgraph_clone_inlined_nodes): Update size.
2509         (cgraph_mark_inline_edge): Update size.
2510         (cgraph_estimate_growth): Use size info.
2511         (cgraph_check_inline_limits): Check size.
2512         (cgraph_default_inline_p): Likewise.
2513         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2514         (cgraph_decide_recursive_inlining): Check size.
2515         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2516         and times.
2517         (cgraph_decide_inlining): Likewise.
2518         (cgraph_decide_inlining_incrementally): Likewise; honor
2519         PARAM_EARLY_INLINING_INSNS.
2520         (likely_eliminated_by_inlining_p): New predicate.
2521         (estimate_function_body_sizes): New function.
2522         (compute_inline_parameters): Use it.
2523         * except.c (must_not_throw_labels): New function.
2524         * except.h (must_not_throw_labels): Declare.
2525         * tree-inline.c (init_inline_once): Kill inlining_weigths
2526         * tree-ssa-structalias.c: Avoid uninitialized warning.
2527         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2528         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2529         (PARAM_INLINE_CALL_COST): Remove.
2530         (PARAM_EARLY_INLINING_INSNS): New.
2531
2532 2009-05-15  Richard Guenther  <rguenther@suse.de>
2533
2534         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2535         not TODO_update_ssa.
2536
2537 2009-05-15  Richard Guenther  <rguenther@suse.de>
2538
2539         PR tree-optimization/39999
2540         * gimple.h (gimple_expr_type): Use the expression type looking
2541         through useless conversions.
2542         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2543         (vn_nary_op_insert_stmt): Likewise.
2544         (simplify_binary_expression): Likewise.
2545
2546 2009-05-15  Richard Guenther  <rguenther@suse.de>
2547
2548         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2549         New options, enabled by default.
2550         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2551         Document.
2552         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2553         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2554         * tree-ssa-structalias.c (gate_tree_pta): New function.
2555         (pass_build_alias): Use it.
2556
2557 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
2558
2559         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2560         recurse on an invariant address if a conversion from a pointer
2561         type to a wider integer type is involved.
2562
2563 2009-05-15  Jan Hubicka  <jh@suse.cz>
2564
2565         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2566         * cgraph.h (struct inline_summary): New filed self_wize,
2567         size_inlining_benefit, self_time and time_inlining_benefit.
2568         (struct cgraph_global_info): Replace insns by time ans size fields.
2569         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2570         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2571         (ipcp_update_callgraph): Do not touch function bodies.
2572         * ipa-inline.c: Include except.h
2573         (MAX_TIME): New constant.
2574         (overall_insns): Remove
2575         (overall_size, max_benefit): New static variables.
2576         (cgraph_estimate_time_after_inlining): New function.
2577         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2578         (cgraph_clone_inlined_nodes): Update size.
2579         (cgraph_mark_inline_edge): Update size.
2580         (cgraph_estimate_growth): Use size info.
2581         (cgraph_check_inline_limits): Check size.
2582         (cgraph_default_inline_p): Likewise.
2583         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2584         (cgraph_decide_recursive_inlining): Check size.
2585         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2586         and times.
2587         (cgraph_decide_inlining): Likewise.
2588         (cgraph_decide_inlining_incrementally): Likewise; honor
2589         PARAM_EARLY_INLINING_INSNS.
2590         (likely_eliminated_by_inlining_p): New predicate.
2591         (estimate_function_body_sizes): New function.
2592         (compute_inline_parameters): Use it.
2593         * except.c (must_not_throw_labels): New function.
2594         * except.h (must_not_throw_labels): Declare.
2595         * tree-inline.c (init_inline_once): Kill inlining_weigths
2596         * tree-ssa-structalias.c: Avoid uninitialized warning.
2597         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2598         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2599         (PARAM_INLINE_CALL_COST): Remove.
2600         (PARAM_EARLY_INLINING_INSNS): New.
2601         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2602         (inline-call-cost): Remove.
2603         (early-inlining-insns): New.
2604
2605 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2606
2607         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
2608         for bounds.
2609         (print_int_cst_bounds_in_octal_p): Likewise.
2610         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
2611         with subtypes.
2612         * dwarf2out.c (base_type_die): Likewise.
2613         (is_subrange_type): Delete.
2614         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
2615         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2616         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
2617         if the destination type is boolean.
2618         (build_range_check): Do not special-case subtypes.
2619         (fold_sign_changed_comparison): Likewise.
2620         (fold_unary): Likewise.
2621         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2622         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2623         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2624         * tree.c (subrange_type_for_debug_p): New predicate based on the
2625         former is_subrange_type.
2626         * tree.h (subrange_type_for_debug_p): Declare.
2627         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2628         (convert_affine_scev): Remove call to above function.
2629         (chrec_convert_aggressive): Likewise.
2630         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2631         false for conversions involving subtypes.
2632         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2633         (vrp_val_min): Likewise.
2634         (needs_overflow_infinity): Likewise.
2635         (extract_range_from_unary_expr): Likewise.
2636
2637 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
2638
2639         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2640         * config/frv/frv.c: Likewise.
2641         * config/s390/s390.c: Likewise.
2642         * config/sparc/sparc.h: Likewise.
2643         * config/i386/i386.h: Likewise.
2644         * config/i386/i386.c: Likewise.
2645         * config/crx/crx.c: Likewise.
2646         * config/m68hc11/m68hc11.h: Likewise.
2647         * config/iq2000/iq2000.c: Likewise.
2648         * config/mn10300/mn10300.h: Likewise.
2649         * config/mn10300/mn10300.c: Likewise.
2650         * config/m68k/m68k.c: Likewise.
2651         * config/rs6000/rs6000.c: Likewise.
2652         * config/rs6000/xcoff.h: Likewise.
2653         * config/rs6000/linux64.h: Likewise.
2654         * config/rs6000/sysv4.h: Likewise.
2655         * config/score/score3.c: Likewise.
2656         * config/score/score7.c: Likewise.
2657         * config/score/score.c: Likewise.
2658         * config/arm/arm.md: Likewise.
2659         * config/mips/mips.c: Likewise.
2660         * config/mips/mips.md: Likewise.
2661         * config/bfin/bfin.h: Likewise.
2662         * config/pa/pa.c: Likewise.
2663         * config/pa/constraints.md: Likewise.
2664
2665         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2666         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2667         * config/pdp11/pdp11.h: Use memory_address_p instead.
2668
2669 2009-05-14  Ian Lance Taylor  <iant@google.com>
2670
2671         * passes.c (finish_optimization_passes): Change i to int.
2672         * plugin.c (plugins_active_p): Change event to int.
2673         (dump_active_plugins): Likewise.
2674         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2675         Add cast.
2676         * tree.c (tree_range_check_failed): Change c to unsigned int.
2677         (omp_clause_range_check_failed): Likewise.
2678         (build_common_builtin_nodes): Change mode to int.  Add cast.
2679         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2680         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2681
2682         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2683         ++ or -- with a variable of enum type.
2684
2685 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2686
2687         PR driver/40144
2688         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2689
2690 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2691
2692         * store-motion.c: Do not include params.h
2693         * Makefile.in: Fix dependencies for various files.
2694
2695 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2696
2697         * auto-inc-dec.c: Fix pass description, remove apparent
2698         accidental duplication.
2699
2700 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2701
2702         PR middle-end/40147
2703         * ipa-utils.h (memory_identifier_string): Moved to ...
2704         * tree.h (memory_identifier_string): Here.  Add GTY(()).
2705
2706 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2707
2708         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2709         in the former documentation of...
2710         (GO_IF_LEGITIMATE_ADDRESS): ... this.
2711         * ira-conflicts.c (get_dup_num): Use address_operand.
2712         * targhooks.c (default_legitimate_address_p): New.
2713         * targhooks.h (default_legitimate_address_p): New.
2714         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2715         Call hook.
2716         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2717         * target.h (struct target): Add legitimate_address_p.
2718         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2719         (TARGET_INITIALIZER): Include it.
2720
2721         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2722         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2723         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2724         (TARGET_LEGITIMATE_ADDRESS_P): New.
2725
2726         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2727         (REG_OK_STRICT_P): Delete.
2728         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2729         (frv_legitimate_address_p_1): ... this.
2730         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2731         (frv_legitimate_address_p_1): ... the renamed old
2732         frv_legitimate_address_p.
2733         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2734         (TARGET_LEGITIMATE_ADDRESS_P): New.
2735
2736         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2737         * config/s390/s390-protos.h (legitimate_address_p): Remove.
2738         * config/s390/s390.c (legitimate_address_p): Rename to...
2739         (s390_legitimate_address_p): ... this, make static.
2740         (legitimize_address): Adjust call.
2741         (TARGET_LEGITIMATE_ADDRESS_P): New.
2742         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2743
2744         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2745         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2746         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2747         (TARGET_LEGITIMATE_ADDRESS_P): New.
2748
2749         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2750         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2751         * config/spu/spu.c (spu_legitimate_address): Rename to...
2752         (spu_legitimate_address_p): ... this, make static.
2753         (TARGET_LEGITIMATE_ADDRESS_P): New.
2754
2755         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2756         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2757         * config/sparc/sparc.c (legitimate_address_p): Rename to...
2758         (sparc_legitimate_address_p): ... this, make static and return bool.
2759         (legitimize_address): Adjust call.
2760         (TARGET_LEGITIMATE_ADDRESS_P): New.
2761
2762         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2763         * config/i386/i386-protos.h (legitimate_address_p): Remove.
2764         * config/i386/i386.c (legitimate_address_p): Rename to...
2765         (ix86_legitimate_address_p): ... this, make static.
2766         (constant_address_p): Move after it, adjust call.
2767         (TARGET_LEGITIMATE_ADDRESS_P): New.
2768
2769         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2770         * config/avr/avr-protos.h (legitimate_address_p): Remove.
2771         * config/avr/avr.c (legitimate_address_p): Rename to...
2772         (avr_legitimate_address_p): ... this, make static.
2773         (legitimize_address): Adjust call.
2774         (TARGET_LEGITIMATE_ADDRESS_P): New.
2775
2776         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2777         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2778         * config/crx/crx.c (crx_legitimate_address_p): Make static.
2779         (TARGET_LEGITIMATE_ADDRESS_P): New.
2780
2781         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2782         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2783         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2784         (TARGET_LEGITIMATE_ADDRESS_P): New.
2785
2786         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2787         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2788         Remove.
2789         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2790         Make static.
2791         (TARGET_LEGITIMATE_ADDRESS_P): New.
2792
2793         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2794         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2795         Remove.
2796         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2797         Rename to...
2798         (m68hc11_legitimate_address_p): ... this, make static.
2799         (go_if_legitimate_address_internal): Rename to...
2800         (m68hc11_legitimate_address_p_1): ... this.
2801         (legitimize_address): Adjust call.
2802         (TARGET_LEGITIMATE_ADDRESS_P): New.
2803
2804         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2805         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2806         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
2807         (TARGET_LEGITIMATE_ADDRESS_P): New.
2808
2809         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2810         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2811         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2812         (mn10300_legitimate_address_p): ... this, make static.
2813         (TARGET_LEGITIMATE_ADDRESS_P): New.
2814
2815         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2816         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2817         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2818         (TARGET_LEGITIMATE_ADDRESS_P): New.
2819
2820         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2821         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2822         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2823         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2824         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2825         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2826         (rs6000_legitimate_address_p): ... this, make static.
2827         (TARGET_LEGITIMATE_ADDRESS_P): New.
2828         (REG_MODE_OK_FOR_BASE_P): Delete.
2829         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2830
2831         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2832         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2833         Delete.
2834         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2835         static, adjust types.
2836         (TARGET_LEGITIMATE_ADDRESS_P): New.
2837
2838         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2839         * config/score/score.c (score_address_p): Rename to...
2840         (score_legitimate_address_p): ... this.
2841         (TARGET_LEGITIMATE_ADDRESS_P): New.
2842         * config/score/score3.c (score3_address_p): Rename to...
2843         (score3_legitimate_address_p): ... this.
2844         * config/score/score7.c (score7_address_p): Rename to...
2845         (score7_legitimate_address_p): ... this.
2846
2847         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2848         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2849         GO_IF_LEGITIMATE_ADDRESS): Delete.
2850         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2851         thumb2_legitimate_address_p): Delete.
2852         (arm_legitimate_address_p): Rename to...
2853         (arm_legitimate_address_outer_p): ... this.
2854         * config/arm/constraints.md ("Uq"): Adjust call.
2855         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2856         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
2857         to...
2858         (arm_legitimate_address_outer_p): ... this.
2859         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
2860         static.
2861         (TARGET_LEGITIMATE_ADDRESS_P): New.
2862
2863         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2864         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2865         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2866         (TARGET_LEGITIMATE_ADDRESS_P): New.
2867
2868         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2869         * config/vax/vax-protos.h (legitimate_address_p): Remove.
2870         * config/vax/vax.c (legitimate_address_p): Rename to...
2871         (vax_legitimate_address_p): ... this, make static.
2872         (TARGET_LEGITIMATE_ADDRESS_P): New.
2873
2874         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2875         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2876         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2877         (TARGET_LEGITIMATE_ADDRESS_P): New.
2878
2879         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2880         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2881         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2882         (mmix_legitimate_address_p): ... this, make static.
2883         (TARGET_LEGITIMATE_ADDRESS_P): New.
2884
2885         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2886         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2887         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2888         (TARGET_LEGITIMATE_ADDRESS_P): New.
2889
2890 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2891
2892         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2893         of MODE_COMPLEX_INT.
2894
2895 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2896
2897         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2898         LCT_NORMAL in function call.
2899         * mips-tdump.c (print_file_desc): Add cast to enum type.
2900         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2901         (mark_stabs): Add casts to enum types.
2902         (parse_stabs_common): Add casts to enum types.
2903
2904 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2905
2906         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2907         Check for invalid values of LETTER.
2908
2909 2009-05-13  Taras Glek  <tglek@mozilla.com>
2910
2911         * attribs.c (register_attribute): moved out attribute registration
2912         into register_attribute.
2913         * doc/plugins.texi: Documented register_attribute and
2914         PLUGIN_ATTRIBUTES.
2915         * gcc-plugin.h: Added forward decl for register_attribute.
2916         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2917         * plugin.c (register_callback, invoke_plugin_callbacks): Added
2918         PLUGIN_ATTRIBUTES boilerplate.
2919
2920 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2921
2922         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
2923         values even in sentinel and empty entries.
2924         (ms_printf_flag_specs):  Likewise.
2925         (ms_scanf_flag_specs):  Likewise.
2926         (ms_strftime_flag_specs):  Likewise.
2927         (ms_print_char_table):  Likewise.
2928         (ms_scan_char_table):  Likewise.
2929         (ms_time_char_table):  Likewise.
2930
2931 2009-05-13  Doug Kwan  <dougkwan@google.com>
2932
2933         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2934
2935 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2936
2937         * config/mips/mips.md (store): Add attributes for QI and HI.
2938         Update comment.
2939         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2940         (truncdi<mode>2): ... this new pattern.
2941
2942 2009-05-13  Brad Hards  <bradh@kde.org>
2943
2944         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2945
2946 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
2947             Ben Elliston <bje@au.ibm.com>
2948
2949         PR middle-end/40035
2950         * dse.c (check_mem_read_rtx): Guard against width == -1.
2951
2952 2009-05-13  Michael Matz  <matz@suse.de>
2953
2954         PR middle-end/39976
2955         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2956         (trivially_conflicts_p): New function.
2957         (insert_backedge_copies): Use it.
2958
2959 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
2960
2961         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2962         (handle_stdc_pragma): Use new enum constant names.
2963         (handle_pragma_float_const_decimal64): Ditto.
2964
2965 2009-05-13  Ian Lance Taylor  <iant@google.com>
2966
2967         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2968         tree.def.
2969
2970 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
2971
2972         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2973         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2974         multilibs.
2975         * config/m68k/m68k.h (FL_UCLINUX): Define.
2976
2977 2009-05-13  Jan Hubicka  <jh@suse.cz>
2978
2979         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2980
2981 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2982
2983         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2984         unless -fschedule-insns is specified.
2985
2986 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2987
2988         PR target/39561
2989         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2990         TARGET_EXPAND_CBRANCHDI4.
2991         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2992         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2993         (cmpeqdi): Fix comment.
2994
2995 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2996
2997         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2998         (sh_legitimate_address_p): Likewise.
2999         * config/sh/sh.c (sh_legitimate_index_p): New.
3000         (sh_legitimate_address_p): Likewise.
3001         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
3002         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
3003         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
3004         (MAYBE_BASE_REGISTER_RTX_P): New macro.
3005         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
3006         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
3007         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
3008         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
3009         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
3010
3011 2009-05-12  Jan Hubicka  <jh@suse.cz>
3012
3013         * tree-inline.c (estimate_operator_cost): Add operands;
3014         when division happens by constant, it is cheap.
3015         (estimate_num_insns): Loads and stores are not having cost of 0;
3016         EH magic stuff is cheap; when computing runtime cost of switch,
3017         use log2 base of amount of its cases; builtin_expect has cost of 0;
3018         compute cost for moving return value of call.
3019         (init_inline_once): Initialize time_based flags.
3020         * tree-inline.h (eni_weights_d): Add time_based flag.
3021
3022 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3023
3024         * df-core.c: Update head documentation.
3025
3026 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
3027
3028         PR bootstrap/40118
3029         * rs6000.c (rs6000_generate_compare): Use op1b instead of
3030         shadowing exisiting variable op1.
3031
3032 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
3033
3034         PR target/37179
3035         * config/i386/driver-i386.c (processor_signatures): New enum.
3036         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
3037         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
3038         processor signature to detect geode processor.
3039
3040 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3041
3042         Revert:
3043
3044         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3045
3046         * optabs.c (prepare_cmp_insn): Temporarily disable test that
3047         causes spurious differences between trunk and cond-optab branch.
3048
3049 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3050
3051         * dojump.c (compare_from_rtx): Delete.
3052         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
3053         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
3054         if the comparison does not satisfy the predicate; test predicates for
3055         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
3056         further if one existing pattern fails.
3057         * expr.h (compare_from_rtx): Delete.
3058         (prepare_operand): Declare it.
3059         * optabs.c: Change "lib call" to "libcall" throughout.
3060         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
3061         HAVE_conditional_trap, emit_cmp_insn): Delete.
3062         (can_compare_p): Delete cmp_optab case.
3063         (prepare_float_lib_cmp): Return an rtx and a machine mode.
3064         Accept other parameters by value.
3065         (prepare_operand): Make non-static.
3066         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
3067         other parameters by value.  Try to widen operands here based on
3068         an optab_methods argument and looking at cbranch_optab.
3069         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
3070         loop.  Use cbranch_optab directly.
3071         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
3072         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
3073         assertion.
3074         (emit_conditional_move, emit_conditional_add): Inline what's needed
3075         of compare_from_rtx, using new prepare_cmp_insn for the rest.
3076         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
3077         with COMPARE.  Move cmov_optab and cstore_optab above
3078         with cbranch_optab, move cmp_optab down with ucmp_optab,
3079         remove tst_otpab.  Do not initialize trap_rtx.
3080         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
3081         for trap code.  Do not check HAVE_conditional_trap.  Use
3082         prepare_cmp_insn.  Accept no predicate for operand 3.
3083         * optabs.h (OTI_cmp): Mark as used only for libcalls.
3084         (OTI_ctrap, ctrap_optab): New.
3085         (tst_optab): Delete.
3086         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
3087         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
3088         with lookup of ctrap_optab.
3089         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
3090         Delete.
3091         (ctrap_optab): New.
3092
3093         * combine.c (combine_simplify_rtx, simplify_set): Do not
3094         special case comparing against zero for cc0 machines.
3095         * simplify-rtx.c (simplify_binary_operation_1): Never remove
3096         COMPARE on cc0 machines.
3097         (simplify_relational_operation): Return a new expression when
3098         a COMPARE could be removed.
3099         * final.c (final_scan_insn): Compare cc_status values
3100         against LHS of a (compare FOO (const_int 0)) cc0 source.
3101         Also check if cc_status.value is the full compare.
3102
3103         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
3104         (cstoreMM4): Document.
3105         (conditional_trap): Document ctrapMM4 instead.
3106         (sync_compare_and_swapMM): Refer to cbranchcc4.
3107         (Dependent Patterns): Eliminate obsolete information referring to
3108         the old jump optimization phase.
3109         (Canonicalization): Include cbranchcc4 case, omit canonicalization
3110         of compares with 0 on cc0 machines.
3111         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
3112         avoiding references to cc0.  Remove text about storing operands
3113         in cmpMM.
3114         * doc/tm.texi (Condition Codes): Include blurb on different
3115         condition code representations, separate into subsections for
3116         CC0, MODE_CC and conditional execution.
3117
3118         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
3119         alpha_emit_setcc): Accept operands and a machine mode.
3120         * config/alpha/alpha.c (alpha_emit_conditional_branch):
3121         Get code/op0/op1 from operands, use machine mode argument
3122         instead of alpha_compare.fp_p.  Emit the branch here.
3123         (alpha_emit_setcc): Likewise, and return boolean.
3124         (alpha_emit_conditional_move): Likewise.  Assert that
3125         cmp_op_mode == cmp_mode, and simplify accordingly.
3126         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
3127         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
3128         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
3129         Delete.
3130         (stack probe test): Use cbranchdi4.
3131         * config/alpha/predicates.md (alpha_cbranch_operator): New.
3132
3133         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
3134         * config/arc/arc.h (movsicc, movsfcc): Use it.
3135         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
3136         (cbranchsi4, cstoresi4): New.
3137         (cmpsi, bCC and sCC expanders): Remove. 
3138
3139         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
3140         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
3141         * config/arm/predicates.md (arm_comparison_operator): Only include
3142         floating-point operators if there is a hardware floating-point unit.
3143         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
3144         deferring to cbranch_cc and cstore_cc respectively.
3145         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
3146         cbranch_cc, cstore_cc): New.
3147         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
3148         arm_compare_op1.
3149         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
3150
3151         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
3152         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
3153         as an argument.
3154         (adjust_insn_length): Adjust calls.
3155         (avr_reorg): Handle (compare (foo) (const_int 0)).
3156         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
3157         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
3158         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
3159         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
3160         (bCC): Remove.
3161         (cbranchqi4, cbranchhi4, cbranchsi4): New.
3162         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
3163
3164         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
3165         (cbranchsi4, cstorebi4, cstoresi4): New.
3166         (movbisi): This insn is duplicate, split it to zero_extend.
3167         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
3168         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
3169         (bfin_optimize_loop): Use cbranch expander.
3170         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
3171         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
3172         (bfin_bimode_comparison_operator): ... this.
3173         (bfin_direct_comparison_operator): New.
3174  
3175         * config/cris/cris.c (cris_normal_notice_update_cc): Look
3176         inside (compare FOO (const_int 0)).
3177         (cris_rtx_costs): Handle ZERO_EXTRACT.
3178         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
3179         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
3180         (*tstdi_v32): Delete.
3181         (*cmpdi_non_v32): Add M alternative for operand 1.
3182         (cmpsi, cmp<mode>): Make private.
3183         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
3184         with COMPARE.
3185         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
3186
3187         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
3188         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
3189         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
3190         (cc_reg_operand): New.
3191         (any_cond): Delete.
3192         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
3193         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
3194         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
3195         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
3196         crx_expand_scond): Delete.
3197
3198         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
3199         (cbranchsi4): New.
3200         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
3201         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
3202
3203         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
3204         cstoresi4, cstoresf4, cstoredf4): New.
3205         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
3206         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3207         Receive the entire operands array.
3208         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
3209         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
3210         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
3211         Get test/op0/op1 from the operands array.
3212         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
3213
3214         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
3215         (h8300_expand_store): New.
3216         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
3217         (const_int 0)).
3218         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
3219         (h8300_expand_store): New.
3220         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
3221         or do not try to produce (set (cc0) REG).
3222         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
3223         change a compare into a move to a scratch register.  Disable some
3224         peepholes when comparing with zero.
3225         (tstsi, tsthi, tstsi, cmpqi): Make private.
3226         (cmphi): Delete.
3227         (bCC, sCC): Delete.
3228         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
3229         cstoresi4): New.
3230
3231         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
3232         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
3233         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
3234         (ix86_emit_i387_log1p): Use cbranchxf2.
3235         (ix86_expand_setcc): Return void.
3236         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
3237         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
3238         cmp<MODEF>, cmpcc): Remove.
3239         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
3240         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
3241         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
3242         (sCC and bCC expanders): Remove.
3243         (stack_protect_test): Use cbranchcc4.
3244
3245         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
3246         Delete.
3247         (ia64_expand_compare): Accept three rtx by reference and return void.
3248         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
3249         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
3250         from *expr.  Update *expr with the BImode comparison to do.
3251         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
3252         cmptf, bCC, sCC, conditional_trap): Delete.
3253         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
3254         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
3255         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
3256         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
3257         * config/ia64/predicates.md (ia64_cbranch_operator): New.
3258
3259         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
3260         type of last argument.
3261         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
3262         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
3263         use machine mode argument instead of branch_type.  Remove dead
3264         code for floating-point comparisons.
3265         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
3266         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
3267         Remove.
3268         (cbranchsi4, cstoresi4): New.
3269         * config/iq2000/predicates.md (reg_or_const_operand): New.
3270
3271         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
3272         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
3273         (b<code>_op): Rewrite to...
3274         (bcc_op): ... this, using match_operator.
3275         (s<code>_op): Rewrite to...
3276         (scc_op): ... this, using match_operator.
3277         (s<code>_24_op): Rewrite to...
3278         (scc_op_24): ... this, using match_operator.
3279         (s<code>_<mode>): Rewrite to...
3280         (cstore<mode>4): ... this, using match_operator.
3281         (s<code>_<mode>_24): Rewrite to...
3282         (cstore<mode>4_24): ... this, using match_operator.
3283         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
3284         m32c_unpend_compare, m32c_expand_scc): Delete.
3285         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
3286         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
3287         (m32c_expand_movcc): Change NE to EQ if necessary.
3288         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
3289
3290         * config/m32r/m32r-protos.h (gen_cond_store): New.
3291         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
3292         (gen_cond_store): New, from sCC patterns.
3293         (m32r_expand_block_move): Use cbranchsi4.
3294         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
3295         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
3296         (cbranchsi4, cstoresi4): New.
3297         
3298         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
3299         Delete.
3300         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
3301         (m68hc11_notice_update_cc): Look into a compare with 0.
3302         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
3303         Delete.
3304         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
3305         cmphi, cmpqi, bCC): Delete.
3306         (cbranchsi4, cbranchhi4, cbranchqi4): New.
3307         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
3308         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
3309         sets with COMPARE.
3310
3311         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
3312         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
3313         * config/m68k/constraints.md (H): New.
3314         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
3315         the define_insn below.
3316         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
3317         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
3318         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
3319         patterns): Wrap RHS with COMPARE.
3320         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
3321         (*cmpdi_internal): Name this pattern.
3322         (cmpdi): Change to define_insn.
3323         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
3324         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
3325         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
3326         predicate.
3327         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
3328         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
3329         (conditional_trap): Change to...
3330         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
3331         (*conditional_trap): Use the ordered_comparison_operator and
3332         const1_operand predicates.
3333         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
3334         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
3335         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
3336         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
3337
3338         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
3339         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
3340         (mcore_gen_compare): New. 
3341         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
3342         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
3343         (mcore_gen_compare): ... this.
3344         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
3345         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
3346         (stack probe pattern): Use cbranchsi4.
3347
3348         * config/mips/predicates.md (mips_cstore_operator): New.
3349         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
3350         * config/mips/mips.md (any_cond): Delete.
3351         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
3352         always succeed.
3353         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
3354         fixuns_truncsfdi2): Use cbranch patterns.
3355         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
3356         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
3357         Adjust call to mips_expand_conditional_branch.
3358         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
3359         cstore<GPR:mode>4.
3360         * config/mips/mips-protos.h (mips_expand_conditional_branch,
3361         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
3362         * config/mips/mips.c (cmp_operands): Delete.
3363         (mips_emit_compare): Get comparison operands from *op0/*op1.
3364         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
3365         that it succeeds.  Use op0/op1 instead of cmp_operands.
3366         (mips_expand_conditional_branch, mips_expand_conditional_move,
3367         mips_expand_conditional_trap): Likewise.
3368         (mips_block_move_loop): Use cbranch patterns. 
3369         * config/mips/mips.h (cmp_operands): Delete.
3370
3371         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
3372         (mmix_gen_compare_reg): Just return a register in the right CC mode.
3373         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
3374         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
3375         (*cmpcc_folded): Rename to...
3376         (*cmpdi_folded): this.
3377         (*cmpcc): Rename to...
3378         (*cmps): ... this.
3379         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
3380         (bCC): Remove.
3381         (cbranchdi4): New.
3382         (cbranchdf4): New.  Handle invalid comparisons here.
3383         * config/mmix/predicates.md (float_comparison_operator): New.
3384
3385         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3386         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3387         * config/mn10300/mn10300.md (tst): Delete.
3388         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3389         Name these patterns and wrap RHS in a compare.
3390         (*cmpsi): Make this pattern private.  Include tst.
3391         (*cmpsf): Make this pattern private.
3392         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3393         (compare with zero peepholes): Likewise.
3394         (bCC): Remove.
3395         (cbranchsi4, cbranchsf4): New.
3396         (casesi): Use cbranchsi4.
3397
3398         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3399         hppa_branch_type): Delete.
3400         (return_addr_rtx): Use cbranchsi4.
3401         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
3402         Emit CCFPmode comparison here.
3403         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3404         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3405         hppa_branch_type): Delete.
3406         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3407         (movsicc, movdicc): Remove references to hppa_compare_op0,
3408         hppa_compare_op1 and compare_from_rtx.
3409         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3410         (casesi): Use cbranchsi4.
3411
3412         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3413         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3414         * config/pdp11/pdp11.md (register_or_const0_operand): New.
3415         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
3416         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3417         (bCC): Delete.
3418         (cbranchdf4, cbranchhi4, cbranchqi4): New.
3419         (*branch, *branch_inverted): New.
3420
3421         * config/picochip/picochip.md (cbranchhi4): Use
3422         ordered_comparison_operator.
3423         (cmphi, bCC): Remove.
3424
3425         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3426         (trap_comparison_operator): Delete.
3427         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3428         rs6000_emit_cbranch): Accept mode and operands.
3429         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3430         rs6000_compare_fp_p): Delete.   
3431         (rs6000_generate_compare): Accept mode and comparison.  Extract code
3432         and op0/op1 from there.  Replace references to rs6000_compare_op0
3433         and rs6000_compare_op1.
3434         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3435         extract result from passed operands.
3436         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3437         extract loc from passed operands.
3438         (rs6000_emit_cmove): Likewise.
3439         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3440         rs6000_compare_fp_p): Delete.
3441         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3442         (cbranch<GPR>4, cbranch<FP>4): New.
3443         (cstore<mode>4): New.  Consolidate here all choices about when to use
3444         portable or specialized sCC sequences.
3445         (stack_protect_test): Use cbranchsi4.
3446         (conditional_trap): Replace with ctrap<GPR>4.
3447         (conditional trap insn): Replace trap_comparison_operator with
3448         ordered_comparison_operator. 
3449
3450         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3451         (s390_emit_prologue): Use ctrap.
3452         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3453         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3454         New predicates replacing...
3455         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3456         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3457         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3458         (add<mode>cc): Do not use s390_compare_op0/op1.
3459         (s<code>): Change to...
3460         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3461         (seq): Change to...
3462         (cstorecc4): ... this.  Handle EQ or NE equally.
3463         (*sne): Un-privatize for use in cstorecc4.
3464         (b<code>): Change to...
3465         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3466         (conditional_trap): Replace with...
3467         (ctrap<GPR>4, ctrap<FP>4): ... these.
3468         (stack_protect): Use cbranchcc4.
3469
3470         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3471         * config/score/score-protos.h (score_gen_cmp): Delete.
3472         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3473         (score_block_move-loop): Use cbranchsi4.
3474         * config/score/score.md (cbranchsi4): New.
3475         (cmpsi, bCC): Delete.
3476         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3477         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3478         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3479         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3480         * config/score/score3.h (score3_gen_cmp): Delete.
3481         * config/score/score7.h (score7_gen_cmp): Delete.
3482
3483         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3484         (sh_emit_scc_to_t): ... this.  Return void.
3485         (from_compare): Rename to...
3486         (sh_emit_compare_and_branch): ... this.
3487         (sh_emit_compare_and_set): New.
3488         (sh_expand_t_scc): Accept operands.
3489         * config/sh/predicates.md (sh_float_comparison_operator): New.
3490         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3491         (prepare_scc_operands): Rename to...
3492         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
3493         arguments.
3494         (sh_emit_cheap_store_flag): New.
3495         (sh_emit_set_t_insn): New.
3496         (from_compare): Rename to...
3497         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
3498         handling of TARGET_SH2E floating point to avoid recursive call.
3499         Generate branch here.
3500         (sh_emit_compare_and_set): New.
3501         (sh_expand_t_scc): Get op0/op1 from arguments.
3502         (sh_emit_cheap_store_flag): New.
3503         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3504         cases.
3505         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
3506         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3507         (movsicc, movdicc): Do nothing when it recreated operands from
3508         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
3509         prepare_scc_operands (now sh_emit_scc_to_t).
3510         (udivdi3): Use cstoresi4.
3511         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3512         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3513         (cbranchint4_media, cbranchfp4_media): New.
3514         (casesi): Use cbranchdi4.
3515         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3516         Delete.
3517         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3518         (movnegt): Remove second operand.
3519         (cbranchsf4, cbranchdf4): New.
3520         (stack_protect): Use cbranchdi4/cbranchsi4.
3521
3522         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3523         (gen_compare_reg): Accept comparison, extract part of it to...
3524         (gen_compare_reg_1): ... this. 
3525         (gen_compare_operator): Delete.
3526         (gen_v9_scc): Accept separate destination, comparison code and arms.
3527         Do not use sparc_compare_op0/sparc_compare_op1.
3528         (emit_scc_insn, emit_conditional_branch_insn): New.
3529         (emit_v9_brxx): Make static.  Remove useless assertion.
3530         (sparc_emit_float_lib_cmp): Return RTL instead of calling
3531         emit_cmp_insn.
3532         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3533         * config/sparc/sparc-protos.h (gen_compare_reg,
3534         sparc_emit_float_lib_cmp): Adjust prototype.
3535         (emit_scc_insn, emit_conditional_branch_insn): New.
3536         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
3537         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3538         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3539         iterators to the top.
3540         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3541         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
3542         snedi_special_trunc): Delete.
3543         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
3544         and snedi_special_trunc.
3545         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3546         cbranchdi4, cbranch<F:mode>4): New.
3547         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3548         here.  Use gen_compare_reg instead of gen_compare_operator.
3549         (conditional_trap): Replace with...
3550         (ctrapsi4, ctrapdi4): ... this.
3551         (stack_protect_test): Use cbranchcc4.
3552
3553         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3554         argument to rtx.
3555         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
3556         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3557         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
3558         from operands[0] or operands[3] depending on is_set.
3559         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3560         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3561         cmpdf, bCC), sCC: Remove.
3562         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
3563         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3564         cstoredf4): New.
3565         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3566         spu_emit_branch_or_set.
3567
3568         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3569         Add two arguments.
3570         * config/stormy16/stormy16.h (xstormy16_compare_op0,
3571         xstormy16_compare_op1): Delete.
3572         * config/stormy16/stormy16.c (xstormy16_compare_op0,
3573         xstormy16_compare_op1): Delete. 
3574         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3575         Adjust calls.
3576         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3577         (cmphi, cmpsi, bCC): Remove.
3578
3579         * config/v850/v850.md (tstsi, cmpsi): Fold into...
3580         (*cmpsi): ... this one.
3581         (cbranchsi4, cstoresi4): New.
3582         (bCC expanders): Delete.
3583         (sCC insns): Fold into...
3584         (*setcc): ... this one.
3585         (casesi): Do not use gen_cmpsi and gen_bgtu. 
3586         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3587         (movsicc): Simplify.
3588         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3589
3590         * config/vax/vax-protos.h (cond_name): New.
3591         (vax_output_conditional_branch): Remove.
3592         * config/vax/vax.c (cond_name): New.
3593         (vax_output_conditional_branch): Remove.
3594         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3595         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3596         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
3597         (bit<VAXint>): Wrap source with (compare).
3598         (b<code> and following unnamed pattern): Rename to *branch and
3599         *branch_reversed.  Change macroization to match_operator.
3600         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3601
3602         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3603         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3604         Change last argument to machine_mode.
3605         (xtensa_expand_scc): Add machine_mode argument.
3606         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3607         (gen_conditional_move, xtensa_expand_conditional_branch,
3608         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3609         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3610         Adjust operand numbers.
3611         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3612         Delete.
3613         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3614         (cmpsi, cmpsf, b<code>, s<code>): Delete.
3615         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
3616
3617 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3618
3619         * optabs.c (prepare_cmp_insn): Temporarily disable test that
3620         causes spurious differences between trunk and cond-optab branch.
3621
3622 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3623
3624         PR target/37137
3625         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3626
3627 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3628
3629         * tree.c (iterative_hash_pointer): Delete.
3630         (iterative_hash_expr): Short-circuit handling of NULL pointer.
3631         Hash UIDs and versions of SSA names.  Don't special-case built-in
3632         function declarations.
3633
3634 2009-05-11  Ian Lance Taylor  <iant@google.com>
3635
3636         PR bootstrap/40103
3637         * graphite.c: Force -Wc++-compat to only be a warning before
3638         #including "cloog/cloog.h".
3639
3640 2009-05-11  Martin Jambor  <mjambor@suse.cz>
3641
3642         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3643         
3644 2009-05-11  Jan Hubicka  <jh@suse.cz>
3645
3646         * tree-ssa-loop-ivcanon.c: Include target.h
3647         (struct loop_size): new structure.
3648         (constant_after_peeling): New predicate.
3649         (tree_estimate_loop_size): New function.
3650         (estimated_unrolled_size): Rewrite for new estimates.
3651         (try_unroll_loop_completely): Use new estimates.
3652         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3653
3654 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3655
3656         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3657         libcpp interface change.
3658         (spu_macro_to_expand): Likewise.
3659
3660 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
3661
3662         PR tree-optimization/40026
3663         * gimplify.c (gimplify_init_constructor): Change initial conditional
3664         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
3665         optimize_compound_literals_in_ctor.
3666
3667 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3668
3669         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3670         New devices.
3671         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3672
3673 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
3674
3675         * tree-vect-data-refs.c (vect_analyze_group_access): Use
3676         HOST_WIDE_INT for gap.
3677
3678 2009-05-11  Ira Rosen  <irar@il.ibm.com>
3679
3680         PR tree-optimization/40074
3681         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3682         account in group size and step comparison.
3683
3684 2009-05-11  Richard Guenther  <rguenther@suse.de>
3685
3686         * passes.c (init_optimization_passes): Strip now incorrect comment.
3687         (execute_function_todo): Do not set PROP_alias.
3688         * tree-pass.h (PROP_alias): Remove.
3689         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3690         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3691         * tree-nrv.c (pass_return_slot): Likewise.
3692         * tree-object-size.c (pass_object_sizes): Likewise.
3693         * tree-ssa-dom.c (pass_dominator): Likewise.
3694         (pass_phi_only_cprop): Likewise.
3695         * tree-ssa-dse.c (pass_dse): Likewise.
3696         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3697         (pass_cselim): Likewise.
3698         * tree-ssa-pre.c (pass_pre): Likewise.
3699         (pass_fre): Likewise.
3700         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3701         * tree-ssa-sink.c (pass_sink_code): Likewise.
3702         * tree-stdarg.c (pass_stdarg): Likewise.
3703         * tree-tailcall.c (pass_tail_calls): Likewise.
3704         * tree-vrp.c (pass_vrp): Likewise.
3705
3706 2009-05-10  Ian Lance Taylor  <iant@google.com>
3707
3708         * basic-block.h (enum profile_status): Break out of struct
3709         control_flow_graph.
3710         * cgraph.h (struct inline_summary): Break out of struct
3711         cgraph_local_info.
3712         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3713         of struct cgraph_order_sort.
3714         * combine.c (enum undo_kind): New enum, broken out of struct undo.
3715         * cse.c (struct branch_path): Break out of struct
3716         cse_basic_block_data.
3717         * except.h (enum eh_region_type): Break out of struct eh_region.
3718         * gcc.c (enum add_del): Break out of struct modify_target.
3719         * genrecog.c (enum decision_type): Break out of struct decision_test.
3720         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3721         ggc_pch_data.
3722         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3723         * regmove.c (enum match_use): New enum, broken out of struct match.
3724         * sched-int.h (enum post_call_group): New enum, broken out of
3725         struct deps.
3726         (struct deps_reg): Break out of struct deps.
3727         * target.h (struct asm_int_op): Break out of struct gcc_target.
3728         * tree-eh.c (struct goto_queue_node): Break out of struct
3729         leh_tf_state.
3730         * tree-inline.h (enum copy_body_cge_which): Break out of
3731         copy_body_data.
3732         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3733
3734         * c-decl.c (in_struct, struct_types): New static variables.
3735         (pushtag): Add loc parameter.  Change all callers.
3736         (lookup_tag): Add ploc parameter.  Change all callers.
3737         (check_compound_literal_type): New function.
3738         (parser_xref_tag): Add loc parameter.  Change all callers.  If
3739         -Wc++-compat, warn about struct/union/enum types defined within a
3740         struct or union.
3741         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3742         and loc parameters.  Change all callers.  Change error calls to
3743         error_at, using loc.  For a redefinition, if the location of the
3744         original definition is known, report it.  Set in_struct and
3745         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
3746         (finish_struct): Add new parameters enclosing_in_struct and
3747         enclosing_struct_types.  Change all callers.  Set
3748         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3749         in the struct.  If in a struct, add this struct to struct_types.
3750         (start_enum): Add loc parameter.  Change all callers.  Use
3751         error_at for errors, using loc.  For a redefinition, if the
3752         location of the original definition is known, report it.  If in a
3753         struct, add this enum type to struct_types.  If -Wc++-compat warn
3754         if in sizeof, typeof, or alignof.
3755         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3756         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
3757         (c_parser_enum_specifier): Get enum location for start_enum.
3758         (c_parser_struct_or_union_specifier): Get struct location for
3759         start_struct.  Save in_struct and struct_types status between
3760         start_struct and finish_struct.
3761         (c_parser_cast_expression): Get location of cast.
3762         (c_parser_alignof_expression): Get location of type.
3763         (c_parser_postfix_expression): Likewise.
3764         (c_parser_postfix_expression_after_paren_type): Add type_loc
3765         parameter.  Change all callers.  Call check_compound_literal_type.
3766         Use type_loc for error about variable size type.
3767         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3768         of an enum constant from an enum type defined in a struct or union.
3769         (c_cast_expr): Add loc parameter.  Change all callers.  If
3770         -Wc++-compat, warn about defining a type in a cast.
3771         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3772         (start_enum, start_struct, finish_struct): Update declarations.
3773         (parser_xref_tag, c_cast_expr): Update declarations.
3774         (check_compound_literal_type): Declare.
3775
3776 2009-05-11  Ben Elliston  <bje@au.ibm.com>
3777
3778         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3779         for recent libcpp interface change.
3780         (rs6000_macro_to_expand): Likewise.
3781
3782 2009-05-10  Michael Matz  <matz@suse.de>
3783
3784         PR target/40031
3785         * config/arm/arm.c (require_pic_register): Emit on entry edge,
3786         not at entry of function.
3787
3788 2009-05-10  Richard Guenther  <rguenther@suse.de>
3789
3790         PR tree-optimization/40081
3791         Revert
3792         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3793         using the main variant of the element type.  Do not fiddle with
3794         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3795
3796         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3797         structs with volatile fields.
3798
3799 2009-05-10  Jan Hubicka  <jh@suse.cz>
3800
3801         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
3802         (estimate_move_cost): Assert that it does not get called for
3803         VOID_TYPE_P.
3804         (estimate_num_insns): Skip VOID types in argument handling.
3805         (optimize_inline_calls): Delete unreachable blocks and verify that
3806         callgraph is valid.
3807
3808 2009-05-10  Jan Hubicka  <jh@suse.cz>
3809
3810         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3811         * cgraph.c (cgraph_mark_address_taken_node): New function.
3812         (dump_cgraph_node): Dump new flag.
3813         * cgraph.h (struct cgraph_node): Add address_taken.
3814         (cgraph_mark_address_taken_node): New function.
3815         * ipa.c (cgraph_postorder): Prioritize functions with address taken
3816         since new direct calls can be born.
3817
3818 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3819
3820         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3821         tok->val.node.node.
3822
3823 2009-05-10  Jan Hubicka  <jh@suse.cz>
3824
3825         PR middle-end/40084
3826         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3827         argument; rewrite.
3828         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3829         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3830         * tree-inline.c (copy_bb): Set frequency correctly.
3831         (fold_marked_statements): Update call to
3832         cgraph_update_edges_for_call_stmt.
3833
3834 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3835
3836         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3837         identifiers in diagnostics.
3838         * config/arm/arm.c (arm_handle_fndecl_attribute,
3839         arm_handle_isr_attribute): Likewise.
3840         * config/avr/avr.c (avr_handle_progmem_attribute,
3841         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
3842         * config/bfin/bfin.c (handle_int_attribute,
3843         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3844         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3845         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3846         Likewise.
3847         * config/darwin.c (darwin_handle_kext_attribute,
3848         darwin_handle_weak_import_attribute): Likewise.
3849         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3850         h8300_handle_eightbit_data_attribute,
3851         h8300_handle_tiny_data_attribute): Likewise.
3852         * config/i386/i386.c (ix86_handle_cconv_attribute,
3853         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
3854         * config/i386/winnt.c (ix86_handle_shared_attribute,
3855         ix86_handle_selectany_attribute): Likewise.
3856         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3857         * config/m32c/m32c.c (function_vector_handler): Likewise.
3858         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3859         m68hc11_handle_fntype_attribute): Likewise.
3860         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3861         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3862         * config/mips/mips.c (mips_insert_attributes,
3863         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3864         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3865         rs6000_handle_struct_attribute): Likewise.
3866         * config/sh/sh.c (sh_insert_attributes,
3867         sh_handle_resbank_handler_attribute,
3868         sh_handle_interrupt_handler_attribute,
3869         sh2a_handle_function_vector_handler_attribute,
3870         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3871         Likewise.
3872         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3873         * config/spu/spu.c (spu_handle_fndecl_attribute,
3874         spu_handle_vector_attribute): Likewise.
3875         * config/stormy16/stormy16.c
3876         (xstormy16_handle_interrupt_attribute): Likewise.
3877         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3878         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3879
3880 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3881
3882         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
3883         (pp_translate_identifiers): New.
3884         (pp_identifier): Only conditionally translate identifier to locale
3885         character set.
3886         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3887         (pp_base_tree_identifier): Only conditionally translate identifier
3888         to locale character set.
3889         * c-pretty-print.c (M_): Define.
3890         (pp_c_type_specifier, pp_c_primary_expression): Mark English
3891         fragments for conditional translation with M_.
3892         * tree-pretty-print.c (maybe_init_pretty_print): Disable
3893         identifier translation.
3894
3895 2009-05-10  Richard Guenther  <rguenther@suse.de>
3896
3897         PR tree-optimization/40081
3898         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3899         using the main variant of the element type.  Do not fiddle with
3900         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3901
3902 2009-05-09  Jan Hubicka  <jh@suse.cz>
3903
3904         PR middle-end/40080
3905         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3906         indirect calls; verify cgraph afterwards.
3907
3908 2009-05-09  Jan Hubicka  <jh@suse.cz>
3909
3910         PR bootstrap/40082
3911         * ipa.c (update_inlined_to_pointer): New function.
3912         (cgraph_remove_unreachable_nodes): Use it.
3913
3914 2009-05-09  Jan Hubicka  <jh@suse.cz>
3915
3916         * tree-eh.c (struct leh_state): Remove prev_try.
3917         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3918         not track prev_try.
3919         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
3920         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3921         remove_eh_handler_and_replace, foreach_reachable_handler,
3922         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3923         * except.h (struct eh_region): Remove eh_region_u_cleanup.
3924         (gen_eh_region_cleanup): Update prototype.
3925
3926 2009-05-09  Jan Hubicka  <jh@suse.cz>
3927
3928         PR middle-end/40043
3929         * except.c (copy_eh_region): Always set prev_try.
3930         (redirect_eh_edge_to_label): Find outer try.
3931         (foreach_reachable_handler): When looking for prev try
3932         handle case where previous try is not going to be taken.
3933
3934 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
3935
3936         PR tree-optimization/40049
3937         * tree-vect-stmts.c (vectorizable_operation): If the machine has
3938         only vector/vector shifts, convert the type of the constant to the
3939         appropriate type to avoid building incorrect trees, which
3940         eventually have problems with garbage collection.
3941
3942 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
3943
3944         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3945         -1 for complex floating-point types if honoring signed zeros.
3946
3947 2009-05-08  Jan Hubicka  <jh@suse.cz>
3948
3949         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3950         argument; handle correctly when profile is absent.
3951         (build_cgraph_edges): Update.
3952         (rebuild_cgraph_edges): Update.
3953         * cgraph.c: Do not include varray.h.
3954         (cgraph_set_call_stmt_including_clones): New function.
3955         (cgraph_create_edge_including_clones): Likewise
3956         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
3957         (cgraph_update_edges_for_call_stmt): Handle clones.
3958         (cgraph_remove_node): Handle clone tree.
3959         (cgraph_remove_node_and_inline_clones): New function.
3960         (dump_cgraph_node): Dump clone tree.
3961         (cgraph_clone_node): Handle clone tree.
3962         (clone_function_name): Bring here from tree-inline.c.
3963         (cgraph_create_virtual_clone): New function.
3964         * cgraph.h (ipa_replace_map): Move here from ipa.h.
3965         (cgraph_clone_info): New function.
3966         (strut cgraph_node): Add clone_info and new clone tree pointers.
3967         (cgraph_remove_node_and_inline_clones,
3968         cgraph_set_call_stmt_including_clones,
3969         cgraph_create_edge_including_clones,
3970         cgraph_create_virtual_clone): Declare.
3971         (cgraph_function_versioning): Use VEC argument.
3972         (compute_call_stmt_bb_frequency): Update prototype.
3973         (cgraph_materialize_all_clones): New function.
3974         * ipa-cp.c (ipcp_update_cloned_node): Remove.
3975         (ipcp_create_replace_map): Update to VECtors.
3976         (ipcp_update_callgraph): Use virtual clones.
3977         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3978         (ipcp_update_profiling): Do not update local profiling.
3979         (ipcp_insert_stage): Use VECtors and virtual clones.
3980         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3981         (clone_of_p): New function.
3982         (cgraph_preserve_function_body_p): Use clone tree.
3983         (cgraph_optimize): Materialize clones.
3984         (cgraph_function_versioning): Update for VECtors.
3985         (save_inline_function_body): Use clone tree.
3986         (cgraph_materialize_clone): New function.
3987         (cgraph_materialize_all_clones): Likewise.
3988         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3989         * ipa.c: Include gimple.h.
3990         (cgraph_remove_unreachable_nodes): Use clone tree.
3991         * ipa-prop.c (ipa_note_param_call): Update call to
3992         compute_call_stmt_bb_frequencycall.
3993         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
3994         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
3995         (copy_bb): Handle updating of clone tree; add new edge when new call
3996         appears.
3997         (expand_call_inline): Be strict about every call having edge.
3998         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3999         (delete_unreachable_blocks_update_callgraph): New function.
4000         (tree_function_versioning): Use VECtors; always remove unreachable
4001         blocks and fold conditionals.
4002         * tree-inline.h: Do not include varray.h.
4003         (tree_function_versioning): Remove.
4004         * Makefile.in (GTFILES): Remove tree-inline.c
4005         * passes.c (do_per_function): Do only functions having body.
4006         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
4007         tree.
4008
4009 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
4010             Andrew Morrow  <acm@google.com>
4011
4012         PR c/36892
4013         * c-common.c (c_common_attribute_table): Permit deprecated
4014         attribute to take an optional argument.
4015         (handle_deprecated_attribute): If the optional argument to
4016         __attribute__((deprecated)) is not a string ignore the attribute
4017         and emit a warning.
4018
4019         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
4020         * c-typeck.c (build_component_ref): Likewise.
4021         (build_external_ref): Likewise.
4022
4023         * toplev.c (warn_deprecated_use): Add an attribute argument.
4024         Emit the message associated with __attribute__((deprecated)).
4025
4026         * toplev.h (warn_deprecated_use): Updated.
4027
4028         * doc/extend.texi: Document new optional parameter to
4029         __attribute__((deprecated))
4030
4031 2009-05-08  Michael Eager <eager@eagercon.com>
4032
4033         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
4034         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
4035
4036 2009-05-08  Richard Guenther  <rguenther@suse.de>
4037
4038         PR tree-optimization/40062
4039         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
4040         Avoid exponential behavior.
4041
4042 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
4043
4044         PR rtl-optimization/33928
4045         PR 26854
4046         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
4047         process_uses, build_single_def_use_links): New.
4048         (update_df): Update use_def_ref.
4049         (forward_propagate_into): Use get_def_for_use instead of use-def
4050         chains.
4051         (fwprop_init): Call build_single_def_use_links and let it initialize
4052         dataflow.
4053         (fwprop_done): Free use_def_ref.
4054         (fwprop_addr): Eliminate duplicate call to df_set_flags.
4055         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
4056         df_rd_simulate_one_insn): New.
4057         (df_rd_bb_local_compute_process_def): Update head comment.
4058         (df_chain_create_bb): Use the new RD simulation functions.
4059         * df.h (df_rd_simulate_artificial_defs_at_top, 
4060         df_rd_simulate_one_insn): New.
4061         * opts.c (decode_options): Enable fwprop at -O1.
4062         * doc/invoke.texi (-fforward-propagate): Document this.
4063
4064 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
4065
4066         PR c/24581
4067         * c-typeck.c (build_binary_op): Handle arithmetic between one real
4068         and one complex operand specially.
4069         * tree-complex.c (some_nonzerop): Do not identify a real value as
4070         zero if flag_signed_zeros.
4071
4072 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
4073
4074         PR rtl-optimization/33928
4075         * loop-invariant.c (record_use): Fix && vs. || mishap.
4076
4077 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
4078
4079         PR rtl-optimization/33928
4080         * loop-invariant.c (struct use): Add addr_use_p.
4081         (struct def): Add n_addr_uses.
4082         (struct invariant): Add cheap_address.
4083         (create_new_invariant): Set cheap_address.
4084         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
4085         (record_uses): Pass df_ref to record_use.
4086         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
4087         used only as such.
4088
4089 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4090
4091         * config/sh/sh.c: Do not include c-pragma.h.
4092
4093 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4094
4095         * config/spu/spu.c: Remove include of c-common.h.
4096
4097 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
4098
4099         PR c/39037
4100         * c-common.h (mark_valid_location_for_stdc_pragma,
4101         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
4102         clear_float_const_decimal64, float_const_decimal64_p): New.
4103         * c.opt (Wunsuffixed-float-constants): New.
4104         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
4105         unsuffixed float constant, handle new warning.
4106         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
4107         * c-decl.c (c_scope): New flag float_const_decimal64.
4108         (set_float_const_decimal64, clear_float_const_decimal64,
4109         float_const_decimal64_p): New.
4110         (push_scope): Set new flag.
4111         * c-parser.c (c_parser_translation_unit): Mark when it's valid
4112         to use STDC pragmas.
4113         (c_parser_external_declaration): Ditto.
4114         (c_parser_compound_statement_nostart): Ditto.
4115         * c-pragma.c (valid_location_for_stdc_pragma,
4116         mark_valid_location_for_stdc_pragma,
4117         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
4118         handle_pragma_float_const_decimal64): New.
4119         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
4120         * cp/semantics.c (valid_location_for_stdc_pragma_p,
4121         set_float_const_decimal64, clear_float_const_decimal64,
4122         float_const_decimal64_p): New dummy functions.
4123         * doc/extend.texi (Decimal Float): Remove statement that the
4124         pragma, and suffix for double constants, are not supported.
4125         * doc/invoke.texi (Warning Options): List new option.
4126         (-Wunsuffixed-float-constants): New.
4127
4128 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
4129
4130         * config/i386/i386.c: Do not include c-common.h.
4131
4132 2009-05-07  Mark Heffernan  <meheff@google.com>
4133
4134         * doc/invoke.texi (Debugging Options): Document change of debugging
4135         dump location.
4136         * opts.c (decode_options): Make dump_base_name relative to
4137         aux_base_name directory.
4138
4139 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
4140
4141         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
4142         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
4143
4144 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
4145
4146         * Makefile.in (install-plugin): Simplify a bit.
4147
4148 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
4149
4150         * Makefile.in (OBJS-common): Add regcprop.o.
4151         (regcprop.o): New.
4152         * timevar.def (TV_CPROP_REGISTERS): New.
4153         * regrename.c (regrename_optimize): Return 0.
4154         (rest_of_handle_regrename): Delete.
4155         (pass_rename_registers): Point to regrename_optimize.
4156         (struct value_data_entry, struct value_data, 
4157         kill_value_one_regno, kill_value_regno, kill_value,
4158         set_value_regno, init_value_data, kill_clobbered_value,
4159         kill_set_value, kill_autoinc_value, copy_value,
4160         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
4161         replace_oldest_value_reg, replace_oldest_value_addr,
4162         replace_oldest_value_mem, copyprop_hardreg_forward_1,
4163         debug_value_data, validate_value_data): Move...
4164         * regcprop.c: ... here.
4165         (rest_of_handle_cprop): Delete.
4166         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
4167
4168 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
4169
4170         PR middle-end/40057
4171         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
4172         GEN_INT for 1 << bitnum.
4173         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
4174         build_int_cst_type.
4175
4176 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
4177
4178         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
4179         Remove wrong description of "nand" operation.
4180
4181 2009-05-06  Richard Guenther  <rguenther@suse.de>
4182             Adam Nemet  <anemet@caviumnetworks.com>
4183
4184         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
4185         comment.  Add that if LHS is not a gimple register, then RHS1 has
4186         to be a single object (GIMPLE_SINGLE_RHS).
4187
4188 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
4189
4190         * expr.c (get_def_for_expr): Move it up in the file.
4191         (store_field): When expanding a bit-field store, look at the
4192         defining gimple stmt for the masking conversion.
4193
4194 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
4195
4196         PR middle-end/39986
4197         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
4198         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
4199         32-bit memcpy into long.
4200
4201 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
4202
4203         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
4204         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
4205         new_reg_loc_descr.
4206         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
4207         instead of appending DW_OP_deref*.
4208
4209 2009-05-06  Michael Matz  <matz@suse.de>
4210
4211         PR middle-end/40021
4212         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
4213         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
4214
4215 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
4216
4217         * Makefile.in (install-plugin): Fix srcdir handling.
4218
4219 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
4220
4221         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
4222         when processing for not_regs_needed bitmap.
4223         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
4224         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
4225         handling it for rhs. 
4226
4227 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4228
4229         * config/i386/i386.md (unnamed inc/dec peephole): Use
4230         optimize_insn_for_size_p instead of optimize_size.
4231         * config/i386/predicates.md (incdec_operand): Likewise.
4232         (aligned_operand): Likewise.
4233         * config/i386/sse.md (divv8sf3): Likewise.
4234         (sqrtv8sf2): Likewise.
4235
4236 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4237
4238         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
4239
4240         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
4241
4242 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
4243
4244         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
4245         ssemodesuffixf2c with avxmodesuffixf2c.
4246
4247 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
4248
4249         PR c/40032
4250         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
4251
4252 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
4253
4254         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
4255         (struct tree_base): Adjust spacing for 8 bit boundaries.
4256         (struct tree_decl_common): Add decl_by_reference_flag bit.
4257         (DECL_BY_REFERENCE): Adjust.
4258         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
4259         print DECL_BY_REFERENCE bit.
4260         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
4261         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
4262         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
4263         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
4264         unconditionally.
4265
4266         PR middle-end/39666
4267         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
4268         range of the type, but default label is missing, add it with one
4269         of the existing labels instead of adding a new label for it.
4270
4271 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
4272
4273         * dwarf.h: Remove.
4274
4275 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
4276
4277         * Makefile.in (enable_plugin, plugin_includedir): New.
4278         (install): Depend on install-plugin.
4279         (PLUGIN_HEADERS): New.
4280         (install-plugin): New.
4281         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
4282
4283 2009-05-05  Richard Guenther  <rguenther@suse.de>
4284
4285         PR tree-optimization/40022
4286         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
4287         the only vuse.
4288         (phivn_valid_p): Fix tuplification error, simplify.
4289         (phiprop_insert_phi): Add dumps.
4290         (propagate_with_phi): Simplify.
4291
4292 2009-05-05  Richard Guenther  <rguenther@suse.de>
4293
4294         PR middle-end/40023
4295         * builtins.c (gimplify_va_arg_expr): Properly build the address.
4296
4297 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
4298
4299         * tree.h (strip_float_extensions): Remove duplicate declaration.
4300         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
4301         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
4302         block_ultimate_origin): Rearrange the declarations line to match the
4303         comment that indicates the .c file which the functions are defined.
4304         (dwarf2out_*, set_decl_rtl): Add comment.
4305         (get_base_address): Adjust comment.
4306         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
4307         declarations line and add comment.
4308         (is_builtin_name): Add blank after function name, for clarity.
4309
4310 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
4311
4312         * attribs.c (decl_attributes): Use %qE for identifiers in
4313         diagnostics.
4314         * cgraphunit.c (verify_cgraph_node): Translate function names to
4315         locale character set in diagnostics.
4316         * coverage.c (get_coverage_counts): Use %qE for identifiers in
4317         diagnostics.
4318         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
4319         Document that functions are named in UTF-8.
4320         * expr.c (expand_expr_real_1): Translate function names to locale
4321         character set in diagnostics.
4322         * gimplify.c (omp_notice_variable, omp_is_private,
4323         gimplify_scan_omp_clauses): Use %qE for identifiers in
4324         diagnostics.
4325         * langhooks.c (lhd_print_error_function): Translate function names
4326         to locale character set.
4327         * langhooks.h (decl_printable_name): Document that return value is
4328         in internal character set.
4329         * stmt.c: Include pretty-print.h
4330         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
4331         diagnostics.
4332         (resolve_operand_name_1): Translate named operand name to locale
4333         character set.
4334         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
4335         diagnostics.
4336         * toplev.c (announce_function): Translate function names to locale
4337         character set.
4338         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
4339         (default_tree_printer): Use pp_identifier or translate identifiers
4340         to locale character set.  Mark "<anonymous>" for translation.
4341         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
4342         for identifiers in diagnostics.
4343         * tree.c (handle_dll_attribute): Use %qE for identifiers in
4344         diagnostics.
4345         * varasm.c (output_constructor): Use %qE for identifiers in
4346         diagnostics.
4347
4348 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
4349
4350         * configure.ac: use ` ` instead of $()
4351         * configure: Regenerate.
4352
4353 2009-05-05  Ben Elliston  <bje@au.ibm.com>
4354
4355         * config/pa/linux-atomic.c: Eliminate conditional include of
4356         errno.h on non-LP64 systems to simplify build requirements.
4357
4358 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
4359
4360         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
4361         diagnostics.
4362         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
4363         and pass value to identifier_to_locale.
4364         (warn_variable_length_array): Make name a tree.
4365         (grokdeclarator): Separate diagnostic texts for named and unnamed
4366         declarators.  Use %qE for named declarators.
4367         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
4368         diagnostics.
4369         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
4370         identifiers in diagnostics.
4371         * c-typeck.c (push_member_name, start_init): Pass identifiers to
4372         identifier_to_locale.  Mark "anonymous" strings for translation.
4373
4374 2009-05-04  Michael Eager <eager@eagercon.com>
4375
4376         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
4377         address for DImode/DFmode only if double-precision FP regs.
4378
4379 2009-05-04  Michael Eager <eager@eagercon.com>
4380
4381         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4382         TARGET_SINGLE_FLOAT check.
4383
4384 2009-05-04  Michael Eager <eager@eagercon.com>
4385
4386         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4387
4388 2009-05-04  Michael Eager <eager@eagercon.com>
4389
4390         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4391         * config/rs6000/t-xilinx: New
4392
4393 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
4394
4395         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
4396         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4397         * gcc/explow.c (memory_address): Use target hook.
4398         * gcc/targhooks.c (default_legitimize_address): New.
4399         * gcc/targhooks.h (default_legitimize_address): New.
4400         * gcc/target.h (legitimize_address): New.
4401         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4402         (TARGET_INITIALIZER): Include it.
4403         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4404
4405         * config/bfin/bfin-protos.h (legitimize_address): Remove.
4406         * config/bfin/bfin.c (legitimize_address): Remove.
4407         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
4408         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4409         Remove.
4410         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4411         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4412
4413         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4414         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4415         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4416         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4417         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4418         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4419         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4420         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4421         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4422         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4423         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4424         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4425         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4426         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4427         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4428         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4429         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4430         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4431         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4432         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4433         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4434         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4435         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4436
4437         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4438         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4439         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4440         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4441         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4442         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4443         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4444         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4445         (thumb_legitimize_address): Delete.
4446         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4447         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4448         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4449         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4450         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
4451         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4452         Delete.
4453         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4454         Delete.
4455
4456         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4457         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4458         * config/m32r/m32r.c (m32r_legitimize_address): New.
4459         * config/m68k/m68k.c (m68k_legitimize_address): New.
4460         * config/score/score.c (score_legitimize_address): Standardize.
4461         * config/score/score3.c (score3_legitimize_address): Standardize.
4462         * config/score/score3.h (score3_legitimize_address): Adjust.
4463         * config/score/score7.c (score7_legitimize_address): Standardize.
4464         * config/score/score7.h (score7_legitimize_address): Adjust.
4465         * config/sh/sh.c (sh_legitimize_address): New.
4466         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4467
4468         * gcc/config/s390/s390.c (legitimize_address): Rename to...
4469         (s390_legitimize_address): ... this.
4470         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4471         (sparc_legitimize_address): ... this.
4472         * gcc/config/i386/i386.c (legitimize_address): Rename to...
4473         (ix86_legitimize_address): ... this.
4474         * gcc/config/avr/avr.c (legitimize_address): Rename to...
4475         (avr_legitimize_address): ... this.
4476         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4477         (mn10300_legitimize_address): ... this.
4478         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4479         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4480         (alpha_expand_mov): Adjust call.
4481
4482         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4483         * config/spu/spu.c (spu_legitimize_address): Likewise.
4484         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4485         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4486
4487 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
4488
4489         * intl.c (locale_encoding, locale_utf8): New.
4490         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4491         * intl.h (locale_encoding, locale_utf8): Declare.
4492         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
4493         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4494         New.
4495         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4496         argument.
4497         (pp_tree_identifier): Define to call pp_base_tree_identifier.
4498         (pp_base_tree_identifier): Declare as function.
4499         (identifier_to_locale): Declare.
4500         * Makefile.in (pretty-print.o): Update dependencies.
4501         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
4502
4503 2009-05-04  Richard Guenther  <rguenther@suse.de>
4504
4505         PR middle-end/40015
4506         * builtins.c (fold_builtin_memory_op): Do not decay to element
4507         type if the size matches the whole array.
4508
4509 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4510
4511         * expmed.c (synth_mult): When trying out a shift, pass the result
4512         of a signed shift.
4513
4514 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4515
4516         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4517         (shiftsub1_cost): New.
4518         (init_expmed): Compute shiftsub1_cost.
4519         (synth_mult): Optimize multiplications by constants of the form
4520         -(2^^m-1) for some constant positive integer m.
4521
4522 2009-05-03  Richard Guenther  <rguenther@suse.de>
4523
4524         PR c/39983
4525         * c-typeck.c (array_to_pointer_conversion): Do not built
4526         ADDR_EXPRs of arrays of pointer-to-element type.
4527         * c-gimplify.c (c_gimplify_expr): Revert change fixing
4528         up wrong ADDR_EXPRs after-the-fact.
4529         * c-common.c (strict_aliasing_warning): Strip pointer
4530         conversions for obtaining the original type.
4531         * builtins.c (fold_builtin_memset): Handle array types.
4532         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4533         and array types
4534
4535 2009-05-03  Richard Guenther  <rguenther@suse.de>
4536
4537         PR middle-end/23329
4538         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4539         Do not lose casts from array types with unknown extent to array
4540         types with known extent.
4541         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4542         alias set compatibility.
4543
4544 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4545
4546         * flags.h (extra_warnings): Delete.
4547         * toplev.c (process_options): Handle Wuninitialized here.
4548         * opts.c (extra_warnings): Delete.
4549         (set_Wextra): Delete.
4550         (common_handle_option): -Wextra can be handled automatically.
4551         * c-opts.c (c_common_handle_option): Delete obsolete code.
4552         (c_common_post_options): Simplify comment.
4553         * common.opt (W): Add Var.
4554         (Wextra): Add Var.
4555         (Wuninitialized): Initialize to -1.
4556
4557 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
4558             Richard Guenther  <rguenther@suse.de>
4559
4560         * expr.c (get_def_for_expr): New function.
4561         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4562         SSA rather than trees.
4563         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
4564         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4565         
4566 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
4567
4568         * c-common.c (reswords): Add _Imaginary.
4569         * c-common.c (enum rid): Add RID_IMAGINARY.
4570
4571 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
4572
4573         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4574         Patch by Richard Guenther.
4575
4576 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
4577
4578         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4579         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4580         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4581         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4582         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4583         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4584         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4585         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4586         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4587         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4588         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4589         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4590         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4591         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4592         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4593         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4594         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4595         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4596
4597 2009-05-02  Richard Guenther  <rguenther@suse.de>
4598
4599         PR tree-optimization/39940
4600         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4601         doing so.
4602
4603 2009-05-02  Richard Guenther  <rguenther@suse.de>
4604
4605         PR middle-end/40001
4606         * tree-ssa.c (execute_update_addresses_taken): Properly check
4607         if we can mark a variable DECL_GIMPLE_REG_P.
4608         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4609         back to the end of the function.
4610         (is_gimple_reg_type): Remove complex type special casing.
4611         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4612         if not optimizing.
4613
4614 2009-05-02  Ben Elliston  <bje@au.ibm.com>
4615
4616         * doc/collect2.texi (Collect2): Document search path behaviour
4617         when configured with --with-ld.
4618
4619 2009-05-02  Jan Hubicka  <jh@suse.cz>
4620
4621         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4622         parameter; update callers.
4623         (coalesce_cost_edge): EH edges are costier because they needs
4624         splitting even if not critical and even more costier when there are
4625         multiple EH predecestors.
4626
4627 2009-05-02  Jan Hubicka  <jh@suse.cz>
4628
4629         * except.c (remove_eh_handler_and_replace): Handle updating after
4630         removing TRY blocks.
4631
4632 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
4633
4634         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4635
4636 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
4637
4638         * varasm.c: Do not include c-pragma.h.
4639         * attribs.c: Do not incude c-common.h.
4640
4641 2009-05-01  Michael Matz  <matz@suse.de>
4642
4643         * calls.c (initialize_argument_information): Handle SSA names like
4644         decls with a non MEM_P DECL_RTL.
4645
4646 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4647
4648         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4649         * ipa-utils.c: Likewise.
4650         * ipa-type-escape.c: Likewise.
4651         * cgraphunit.c Do not include c-common.h.
4652         * ipa-pure-const.c: Likewise.
4653         * tree-if-conv.c: Likewise.
4654         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4655         * ipa-struct-reorg.c: Likewise.
4656         * tree-nomudflap.c: Likewise.
4657         * tree-ssa-structalias.c: Likewise.
4658
4659 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4660
4661         * store-motion.c: Many cleanups to make this pass a first-class
4662         citizen instead of an appendix to gcse load motion.  Add TODO list
4663         to make this pass faster/cleaner/better.
4664
4665         (struct ls_expr): Post gcse.c-split cleanups.
4666         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
4667         "stores" field to "avail_stores".
4668         (pre_ldst_mems): Rename to store_motion_mems.
4669         (pre_ldst_table): Rename to store_motion_mems_table.
4670         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4671         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4672         (ldst_entry): Rename to st_expr_entry, update users.
4673         (free_ldst_entry): Rename to free_st_expr_entry, update users.
4674         (free_ldst_mems): Rename to free_store_motion_mems, update users.
4675         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4676         update caller.
4677         (first_ls_expr): Rename to first_st_expr, update users.
4678         (next_ls_expr): Rename to next_st_expr, update users.
4679         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
4680         fields properly for store motion instead of names inherited from load
4681         motion in gcse.c.
4682         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4683         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
4684         are done with it.
4685
4686         (ae_kill): Rename to st_kill, update users.
4687         (ae_gen): Rename to st_avloc, update users.
4688         (transp): Rename to st_transp, update users.
4689         (pre_insert_map): Rename to st_insert_map, update users.
4690         (pre_delete_map): Rename to st_delete_map, update users.
4691         (insert_store, build_store_vectors, free_store_memory,
4692         one_store_motion_pass): Update for abovementioned changes.
4693
4694         (gcse_subst_count, gcse_create_count): Remove.
4695         (one_store_motion_pass): New statistics counters "n_stores_deleted"
4696         and "n_stores_created", local variables.
4697
4698         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4699         use for_each_rtx.
4700
4701         (regvec, compute_store_table_current_insn): Remove.
4702         (reg_set_info, reg_clear_last_set): Remove.
4703         (compute_store_table): Use DF caches instead of local dataflow
4704         solvers.
4705
4706 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
4707
4708         * c-objc-common.c (c_tree_printer): Print identifiers with
4709         pp_identifier, not pp_string.  Mark "({anonymous})" for
4710         translation.
4711         * c-pretty-print.c (pp_c_ws_string): New.
4712         (pp_c_cv_qualifier, pp_c_type_specifier,
4713         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4714         pp_c_storage_class_specifier, pp_c_function_specifier,
4715         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4716         pp_c_primary_expression, pp_c_postfix_expression,
4717         pp_c_unary_expression, pp_c_shift_expression,
4718         pp_c_relational_expression, pp_c_equality_expression,
4719         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4720         use pp_string and pp_c_ws_string in place of pp_identifier and
4721         pp_c_identifier for non-identifiers.  Mark English strings for
4722         translation.
4723         * c-pretty-print.h (pp_c_ws_string): Declare.
4724
4725 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
4726             Roland McGrath <roland@redhat.com>
4727
4728         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
4729         (ENABLE_LD_BUILDID): New configuration option.
4730         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4731         (LINK_BUILDID_SPEC): New macro.
4732         (init_spec): If defined, prepend it between LINK_EH_SPEC and
4733         link_spec.
4734         * doc/install.texi: Document --enable-linker-build-id option.
4735         * configure: Rebuild.
4736         * config.in: Rebuild.
4737
4738 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
4739
4740         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4741         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4742         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
4743         MIPS_GP_SAVE_AREA_SIZE.
4744         * config/mips/mips.c (struct mips_frame_info): Update comment
4745         before arg_pointer_offset and hard_frame_pointer_offset.
4746         (mips_compute_frame_info): Update diagram before function: to
4747         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4748         indicate the position of frame_pointer_rtx with -fstack-protector and
4749         to show args_size.  Don't allocate cprestore area for leaf functions
4750         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
4751         cprestore_size.
4752         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4753
4754 2009-04-30  Michael Matz  <matz@suse.de>
4755
4756         PR tree-optimization/39955
4757         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
4758
4759 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
4760
4761         * ira.c (setup_cover_and_important_classes):  Use safe macro
4762         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4763         directly.
4764         * genpreds.c (write_tm_preds_h):  Output suitable definition of
4765         REG_CLASS_FOR_CONSTRAINT.
4766
4767 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4768
4769         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4770         instead of an int.
4771         * bitmap.c (bitmap_descriptor): Likewise.
4772         * ggc-common.c (loc_descriptor): Likewise.
4773         * varray.c (varray_descriptor): Likewise.
4774         * vec.c (vec_descriptor): Likewise.
4775
4776 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4777
4778         * Makefile.in (dce.o): Add $(EXCEPT_H).
4779         * dce.c: Include except.h and delete redundant vector definitions.
4780         (deletable_insn_p): Return false for non-call insns that can throw
4781         if DF is running.
4782
4783 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4784
4785         * gcse.c (ae_gen): Remove.
4786         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4787         and make non-static function to make it available in store-motion.c.
4788         Update call sites with search-and-replace.
4789         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4790         extract_mentioned_regs, extract_mentioned_regs_helper,
4791         find_moveable_store, compute_store_table, load_kills_store, find_loads,
4792         store_killed_in_insn, store_killed_after, store_killed_before,
4793         build_store_vectors, insert_insn_start_basic_block, insert-store,
4794         remove_reachable_equiv_notes, replace_store_insn, delete_store,
4795         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4796         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4797         * store-motion.c: ...new file.  Also copy data structures from gcse.c
4798         and clean up to remove parts not used by store motion.
4799         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4800         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4801
4802 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4803
4804         PR target/38571
4805         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4806         when optimizing for size.
4807
4808 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
4809
4810         * gcse.c (gcse_constant_p): Fix typo in last change.
4811
4812 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4813
4814         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4815
4816 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
4817
4818         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4819
4820 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
4821
4822         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4823         CONST_HIGH_PART result.
4824
4825 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
4826
4827         * config/avr/avr.c (initial_elimination_offset): Rename to
4828         avr_initial_elimination_offset.
4829         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4830         change return type to bool.
4831         (avr_can_eliminate): New function.
4832         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4833         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4834         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
4835         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
4836         avr_initial_elimination_offset.
4837         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4838         (avr_initial_elimination_offset): Define.
4839
4840 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
4841             Steven Bosscher  <steven@gcc.gnu.org>
4842
4843         PR rtl-optimization/39938
4844         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4845         * cfgrtl.c: Include insn-attr.h.
4846         (rest_of_pass_free_cfg): New function.
4847         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4848         * resource.c (init_resource_info): Remove call to df_analyze.
4849
4850 2009-04-29  Richard Guenther  <rguenther@suse.de>
4851
4852         PR target/39943
4853         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4854         allow conversion to signed integers.
4855
4856 2009-04-29  Richard Guenther  <rguenther@suse.de>
4857
4858         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4859         shifts of floating point vectors if the shift amount is
4860         a constant multiple of the element size.
4861
4862 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4863             Michael Matz  <matz@suse.de>
4864
4865         PR middle-end/39927
4866         PR bootstrap/39929
4867         * tree-outof-ssa.c (emit_partition_copy): New function.
4868         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4869         insert_part_to_rtx_on_edge): Perform the partition base var
4870         copy using emit_partition_copy.
4871         (insert_value_copy_on_edge): Convert constants to the right mode.
4872         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4873         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4874
4875 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4876
4877         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4878         scan backwards to try to find a constant to initialize it.
4879
4880         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4881         insn before the loop_end instruction, don't look past labels.
4882
4883 2009-04-29  Richard Guenther  <rguenther@suse.de>
4884
4885         PR middle-end/39937
4886         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4887         loose type conversions.
4888         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
4889         stmts only if there are no uses of its definition.
4890
4891 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4892
4893         * config/bfin/bfin.h (splitting_loops): Declare.
4894         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4895         Reorder bit definitions to be ascending.
4896         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4897         * config/bfin/bfin.c (splitting_loops): New variable.
4898         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4899         (struct loop_info): Remove members INIT and LOOP_INIT.
4900         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
4901         the LSETUP sequence.  Allow LC to be loaded from any register, but
4902         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
4903         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4904         set to 1.
4905         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4906         of reload_completed.
4907
4908         From Jie Zhang:
4909         * config/bfin/bfin.md (movsi_insn): Refine constraints.
4910
4911 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
4912
4913         * Makefile.in (PLUGIN_VERSION_H): New.
4914         (OBJS-common): Remove plugin-version.o.
4915         (plugin.o): Depend on (PLUGIN_VERSION_H).
4916         (plugin-version.o): Remove.
4917         * configure: Regenerate
4918         * configure.ac: Create plugin-version.h.
4919         * gcc-plugin.h (plugin_gcc_version): Remove.
4920         (plugin_default_version_check): Change signature.
4921         * plugin-version.c: Remove.
4922         * plugin.c: Include plugin-version.h.
4923         (str_plugin_gcc_version_name): Remove.
4924         (try_init_one_plugin): Pass gcc version to plugin_init.
4925         (plugin_default_version_check): Both gcc and plugin versions are now
4926         arguments.
4927
4928 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4929         
4930         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4931         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
4932         Remove special case testing for last insn of inner loops. Don't fail
4933         if the loop ends with a jump, emit an extra nop instead.
4934
4935         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4936         DREGS rather than comparing directly.  Remove code that tries to
4937         account for latencies.
4938
4939 2009-04-29  Richard Guenther  <rguenther@suse.de>
4940
4941         PR tree-optimization/39941
4942         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4943         eliminating an indirect call.
4944
4945 2009-04-29  Richard Guenther  <rguenther@suse.de>
4946
4947         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4948         parameter.  Allow invariants as base if !require_lvalue.
4949         (verify_gimple_assign_single): Adjust.
4950
4951 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4952
4953         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4954         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
4955         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4956         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
4957         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4958         a VEC_SELECT.
4959         * config/bfin/bfin.c (bfin_expand_builtin,
4960         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
4961
4962 2009-04-28  Richard Guenther  <rguenther@suse.de>
4963
4964         * tree-vect-loop.c (get_initial_def_for_induction): Use
4965         correct types for pointer increment.
4966
4967 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4968
4969         * toplev.c (print_version): Update GMP version string calculation.
4970
4971 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4972
4973         PR rtl-optimization/39938
4974         * resource.c (init_resource_info): Add call to df_analyze.
4975
4976 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4977
4978         * config/alpha/alpha.md (usegp): Cast the result of
4979         alpha_find_lo_sum_using_gp to enum attr_usegp.
4980         * config/alpha/alpha.c (override_options): Remove end-of-structure
4981         marker element from cpu_table.  Use array size of cpu_table to handle
4982         -mcpu and -mtune options.
4983         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4984
4985 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
4986
4987         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4988         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
4989         tune_32 and tune_64.
4990         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4991         support on PowerPC.
4992         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4993         * config/rs6000/option-defaults.h: ... here.  New file.
4994         (OPT_64, OPT_32): Define.
4995         (MASK_64BIT): Define to 0 if not already defined.
4996         (OPT_ARCH64, OPT_ARCH32): Define.
4997         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4998         and tune_64.
4999
5000 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5001
5002         * config/arm/arm.c (arm_override_options): Emit error on using
5003         fpa with AAPCS.
5004
5005 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
5006
5007         PR rtl-optimization/39914
5008         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
5009         registers for allocnos created from user-defined variables only
5010         when not optimizing.
5011
5012 2009-04-28  Richard Guenther  <rguenther@suse.de>
5013
5014         PR middle-end/39937
5015         * fold-const.c (fold_binary): Use distribute_real_division only
5016         on float types.
5017
5018 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
5019
5020         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
5021         add hpux-stdint.h to tm_file.
5022         (hppa[12]*-*-hpux11*): Ditto.
5023         (ia64*-*-hpux*): Ditto.
5024         * config/hpux-stdint.h: New.
5025         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
5026         __STDC_EXT__ for all compiles.
5027         * config/pa/pa-hpux.h: Ditto.
5028         * config/pa/pa-hpux10.h: Ditto.
5029         * config/pa/pa-hpux11.h: Ditto.
5030
5031 2009-04-28  Catherine Moore  <clm@codesourcery.com>
5032
5033         * debug.h (set_name): Add comment.
5034
5035 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
5036
5037         PR target/39929
5038         * config/darwin.c (machopic_gen_offset): Check
5039         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
5040         * config/arm/arm.c (require_pic_register): Likewise.
5041
5042 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
5043
5044         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
5045         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
5046         m32c_promote_prototypes): Delete.
5047
5048 2009-04-28  Michael Matz  <matz@suse.de>
5049
5050         PR middle-end/39922
5051         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
5052         constants.
5053
5054 2009-04-28  Richard Guenther  <rguenther@suse.de>
5055
5056         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
5057
5058 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5059
5060         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
5061         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
5062         * config/arm/arm-tune.md: Regenerate.
5063
5064 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
5065
5066         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
5067         block if there are complex incoming edges.
5068         (sel_merge_blocks): Remove useless assert.
5069         (sel_redirect_edge_and_branch): Check that edge was redirected.
5070         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
5071         (sel_find_rgns): Delete declaration.
5072         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
5073         the region when it is not a preheader.
5074
5075 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
5076
5077         PR c/39323
5078         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
5079
5080 2009-04-28  Richard Guenther  <rguenther@suse.de>
5081
5082         * tree.h (SSA_NAME_VALUE): Remove.
5083         (struct tree_ssa_name): Remove value_handle member.
5084         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
5085         array for jump threading.
5086         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
5087         SSA_NAME_VALUEs.
5088         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
5089         * tree-flow.h (threadedge_initialize_values): Declare.
5090         (threadedge_finalize_values): Likewise.
5091         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
5092         (SSA_NAME_VALUE): Define.
5093         (threadedge_initialize_values): New function.
5094         (threadedge_finalize_values): Likewise.
5095         * tree-ssa-dom.c (ssa_name_values): New global variable.
5096         (SSA_NAME_VALUE): Define.
5097         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
5098
5099 2009-04-28  Ira Rosen  <irar@il.ibm.com>
5100
5101         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5102         Use REPORT_VECTORIZED_LOCATIONS instead 
5103         REPORT_VECTORIZED_LOOPS.
5104         * tree-vectorizer.c (vect_verbosity_level): Make static.
5105         (vect_loop_location): Rename to vect_location.
5106         (vect_set_verbosity_level): Update comment.
5107         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
5108         and vect_location.
5109         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
5110         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
5111         instead REPORT_UNVECTORIZED_LOOPS.
5112         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
5113         and vect_loop_def to vect_external_def and vect_internal_def.
5114         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
5115         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
5116         REPORT_UNVECTORIZED_LOCATIONS.
5117         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
5118         and vect_used_in_loop and to vect_unused_in_scope and 
5119         vect_used_in_scope.
5120         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
5121         (vect_verbosity_level): Remove declaration.
5122         (vect_analyze_operations): Likewise.
5123         (vect_analyze_stmt): Declare.
5124         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
5125         REPORT_UNVECTORIZED_LOCATIONS.
5126         (vect_get_loop_niters): Fix indentation.
5127         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
5128         (vect_analyze_loop_operations): New function.
5129         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
5130         vect_analyze_operations.
5131         (vect_is_simple_reduction): Use new names.
5132         (vectorizable_live_operation, vect_transform_loop): Likewise.
5133         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
5134         to specify whether the data references can be a part of interleaving
5135         chain.
5136         (vect_analyze_data_ref_dependence): Use new names.
5137         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
5138         (vect_create_addr_base_for_vector_ref): Remove redundant code.
5139         * tree-vect-patterns.c (widened_name_p): Use new names.
5140         (vect_recog_dot_prod_pattern): Likewise.
5141         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
5142         (process_use, vect_mark_stmts_to_be_vectorized, 
5143         vect_model_simple_cost, vect_model_store_cost,
5144         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
5145         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
5146         vectorizable_operation, vectorizable_type_demotion,
5147         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
5148         vectorizable_condition): Likewise.
5149         (vect_analyze_operations): Split into vect_analyze_loop_operations
5150         and ...
5151         (vect_analyze_stmt): ... new function.
5152         (new_stmt_vec_info): Use new names.
5153         (vect_is_simple_use): Use new names and fix comment.
5154         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
5155         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
5156
5157 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
5158
5159         PR target/39911
5160         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
5161         and integer modes for x87 operands.  Do not ICE for unsupported size,
5162         generate error instead.  Generate error for unsupported operand types.
5163         ['z']: Do not handle HImode memory operands specially.  Warning
5164         for floating-point operands.  Fallthru to 'Z' for unsupported operand
5165         types.  Do not ICE for unsupported size, generate error instead.
5166         (output_387_binary_op): Use %Z to output operands.
5167         (output_fp_compare): Ditto.
5168         (output_387_reg_move): Ditto.
5169
5170 2009-04-28  Ben Elliston  <bje@au.ibm.com>
5171
5172         PR c++/35652
5173         Revert:
5174
5175         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5176
5177         * builtins.c (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-04-27  Ian Lance Taylor  <iant@google.com>
5184
5185         * collect2.c (is_ctor_dtor): Change type of ret field in struct
5186         names to symkind.
5187         * dce.c (run_fast_df_dce): Change type of old_flags to int.
5188         * df-core.c (df_set_flags): Change return type to int.  Change
5189         type of old_flags to int.
5190         (df_clear_flags): Likewise.
5191         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
5192         (df_get_conditional_uses): Likewise.
5193         * df.h (df_set_flags, df_clear_flags): Update declarations.
5194         * dwarf2out.c (struct indirect_string_node): Change type of form
5195         field to enum dwarf_form.
5196         (AT_string_form): Change return type to enum dwarf_form.
5197         * fixed-value.c (fixed_compare): Add cast to enum type.
5198         * fwprop.c (update_df): Change 0 to VOIDmode.
5199         * gensupport.c: Change 0 to UNKNOWN.
5200         * gimple.h (gimple_cond_code): Add cast to enum type.
5201         * haifa-sched.c (reemit_notes): Add cast to enum type.
5202         * hooks.c (hook_int_void_no_regs): Remove function.
5203         * hooks.h (hook_int_void_no_regs): Remove declaration.
5204         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
5205         * predict.c (combine_predictions_for_insn): Add casts to enum type.
5206         * real.c (real_arithmetic): Add cast to enum type.
5207         (real_compare): Likewise.
5208         * target.h (struct gcc_target): Change return type of
5209         branch_target_register_class to enum reg_class.
5210         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
5211         default_branch_target_register_class.
5212         * targhooks.c (default_branch_target_register_class): New function.
5213         * targhooks.h (default_branch_target_register_class): Declare.
5214         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
5215         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
5216         cast to int.
5217         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
5218         ERROR_MARK.
5219         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
5220         vect_uninitialized_def.  Change 0 to ERROR_MARK.
5221         * tree-vect-stmts.c (supportable_widening_operation): Don't
5222         initialize icode1 and icode2.
5223         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
5224         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
5225         and to STD_C89.
5226         (cmn_err_flag_specs): Change 0 to STD_C89.
5227         (cmn_err_char_table): Likewise.
5228         * config/arm/arm.c (get_arm_condition_code): Change type of code
5229         to enum arm_cond_code.
5230         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
5231         (IWMMXT_BUILTIN2): Likewise.
5232         (neon_builtin_type_bits): Don't define typedef.
5233         (neon_builtin_datum): Change type of bits field to int.
5234         (arm_expand_neon_args): Add cast to enum type.
5235         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
5236         TLS_MODEL_NONE.
5237         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
5238         casts to enum type.
5239         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
5240         MIPS_FP_COND_f.
5241         * config/mips/mips.md (jal_macro): Return enum constant.
5242         (single_insn): Likewise.
5243         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
5244         CODE_FOR_nothing.
5245         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5246         casts to enum type.
5247         * config/s390/s390.c (s390_tune_flags): Change type to int.
5248         (s390_arch_flags): Likewise.
5249         (s390_handle_arch_option): Change flags field of struct pta to int.
5250         * config/s390/s390.h (s390_tune_flags): Update declaration.
5251         (s390_arch_flags): Likewise.
5252         * config/sh/sh.c (prepare_move_operands): Compare
5253         tls_symbolic_operand result with enum constant.
5254         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
5255         (sh_expand_prologue): Add cast to enum type.
5256         (sh_expand_epilogue): Likewise.
5257         (tls_symbolic_operand): Change return type to enum tls_model.
5258         (fpscr_set_from_mem): Add cast to enum type.
5259         (legitimize_pic_address): Compare tls_symbolic_operand result with
5260         enum constant.
5261         (sh_target_reg_class): Change return type to enum reg_class.
5262         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
5263         PROCESSOR_xxx.
5264         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
5265         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
5266         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
5267         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
5268         (delayed_branch, tls_call_delay): Likewise.
5269         (eligible_for_sibcall_delay): Likewise.
5270         (eligible_for_return_delay): Likewise. 
5271         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
5272         (spu_expand_builtin_1): Likewise.
5273
5274         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
5275         for all types of conversions.
5276         (output_init_element): Issue -Wc++-compat warning if needed when
5277         initializing a bitfield with enum type.
5278         * c-parser.c (c_parser_expression): Set original_type to
5279         original_type of right hand operand of comman operator.
5280
5281 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5282
5283         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
5284         grammar nits.
5285         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
5286         * doc/cpp.texi (Standard Predefined Macros)
5287         (Implementation-defined behavior): Likewise.
5288         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
5289         * doc/gimple.texi (GIMPLE Exception Handling)
5290         (@code{GIMPLE_ASSIGN}): Likewise.
5291         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
5292         * doc/invoke.texi (Warning Options, Optimize Options)
5293         (AVR Options, Darwin Options): Likewise.
5294         (Optimize Options): Reformulate -fwhole-program description.
5295         * doc/loop.texi (Lambda): Likewise.
5296         * doc/md.texi (Output Template, Define Constraints)
5297         (Standard Names, Insn Splitting): Likewise.
5298         * doc/options.texi (Option properties): Likewise.
5299         * doc/passes.texi (Tree-SSA passes): Likewise.
5300         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
5301         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
5302         (File Names and DBX): Likewise.
5303         * doc/trouble.texi (Incompatibilities): Likewise.
5304
5305 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5306
5307         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
5308         instruction is correct.
5309
5310 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5311
5312         Allow non-constant arguments to conversion intrinsics.
5313         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
5314         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
5315         * spu.c (print_operand): Handle 'v' and 'w'.
5316         (exp2_immediate_p, spu_gen_exp2): Define.
5317         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
5318         spu_convtf_1): Update parameter descriptions.
5319         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5320         * constraints.md ('v', 'w'): New.
5321         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
5322         Remove.
5323         (i2f, I2F): New define_mode_attr.
5324         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
5325         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
5326         fixuns_truncv4sfv4si2):  Update to use mode attribute.
5327         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
5328         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
5329         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
5330         patterns for combine.
5331
5332 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
5333
5334         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
5335         (cprop, hoist, pre, store_motion): New debug counters.
5336         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
5337         is not an RTL pass anymore.
5338         (pass_profiling): Remove extern decl for pass removed in 2005.
5339         (pass_gcse, pass_jump_bypass): Remove.
5340         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
5341         to 0 for clean state.
5342         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
5343         * cse.c (gate_handle_cse_after_global_opts,
5344         rest_of_handle_cse_after_global_opts): New functions.
5345         (pass_cse_after_global_opts): New pass, does local CSE.
5346         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
5347         (TV_CPROP): New timevar.
5348         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
5349         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
5350         (gcse_main, recompute_all_luids): Remove.
5351         (compute_hash_table_work): Call max_reg_num instead of reading
5352         max_gcse_regno.
5353         (cprop_jump): Don't set run_jump_opt_after_gcse.
5354         (constprop_register): Always allow to alter jumps.
5355         (cprop_insn): Likewise.
5356         (do_local_cprop): Likewise.
5357         (local_cprop_pass): Likewise.  Return non-zero if something changed.
5358         (cprop): Remove function, fold interesting bits into one_cprop_pass.
5359         (find_implicit_sets): Add note about missed optimization opportunity.
5360         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
5361         pass_rtl_cprop execute function.
5362         Don't bother tracking the pass number, each pass gets its own dumpfile
5363         now anyway.
5364         Always allow to alter jumpsand bypass jumps.
5365         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
5366         will just find no suitable set.
5367         (pre_edge_insert): Fix dumping, this function is for PRE only.
5368         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
5369         pass_rtl_pre execute function.
5370         (hoist_code): Return non-zero if something changed.  Keep track of
5371         substitutions and insertions for statistics gathering similar to PRE.
5372         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
5373         called from the pass_rtl_hoist execute function.  Show pass statistics.
5374         (compute_store_table): Use max_reg_num directly instead of using the
5375         formerly global max_gcse_regno.
5376         (build_store_vectors): Likewise.
5377         (replace_store_insn): Fix dumping.
5378         (store_motion): Rename to ...
5379         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
5380         pass, called from the pass_rtl_store_motion execute function.  Keep
5381         track of substitutions and insertions for statistics gathering similar
5382         to PRE.
5383         (bypass_jumps): Remove, fold interesting bits into ...
5384         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
5385         from the pass_rtl_cprop execute function.
5386         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5387         pass_jump_bypass): Remove.
5388         (gate_handle_gcse, rest_of_handle_gcse): Remove.
5389         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5390         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5391         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5392         (gate_rtl_store_motion, execute_rtl_store_motion,
5393         pass_rtl_store_motion): New.
5394         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5395         make it clear that -fcse-skip-blocks is a no-op for backward compat.
5396         * passes.c (init_optimization_passes): Remove pass_gcse and
5397         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
5398         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
5399         instead of pass_jump_bypass.
5400
5401 2009-04-27  Richard Guenther  <rguenther@suse.de>
5402
5403         PR middle-end/39928
5404         * gimplify.c (gimplify_expr): If we are required to create
5405         a temporary make sure it ends up as register.
5406
5407 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
5408
5409         PR target/39903
5410         * config/i386/i386.c (construct_container): Don't call
5411         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5412         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5413
5414 2009-04-27  Michael Matz  <matz@suse.de>
5415
5416         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5417         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5418         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5419         (dump_replaceable_exprs): Take a bitmap.
5420         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5421         array.
5422         (expand_gimple_basic_block): Likewise.
5423         * tree-ssa-ter.c (struct temp_expr_table_d): Make
5424         replaceable_expressions member a bitmap.
5425         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5426         (mark_replaceable): Likewise.
5427         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5428         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5429
5430 2009-04-27  Richard Guenther  <rguenther@suse.de>
5431
5432         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5433         (verify_stmts): Dispatch to gimple/type verification code.
5434         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5435         issue with call argument types.
5436
5437 2009-04-27  Michael Matz  <matz@suse.de>
5438
5439         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5440         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5441         to above.
5442
5443 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
5444             Eric Botcazou  <ebotcazou@adacore.com>
5445
5446         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5447         a label's basic block.
5448         (mark_target_live_regs): Tidy and rework obsolete comments.
5449         Change back DF problem to LIVE.  If a label starts a basic block,
5450         assume that all registers that used to be live then still are.
5451         (init_resource_info): If a label starts a basic block, set its
5452         BLOCK_FOR_INSN accordingly.
5453         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5454
5455 2009-04-27  Richard Guenther  <rguenther@suse.de>
5456
5457         * tree-flow-inline.h (function_ann): Remove.
5458         (get_function_ann): Likewise.
5459         * tree-dfa.c (create_function_ann): Remove.
5460         * tree-flow.h (struct static_var_ann_d): Remove.
5461         (struct function_ann_d): Likewise.
5462         (union tree_ann_d): Remove fdecl member.
5463         (function_ann_t): Remove.
5464         (function_ann, get_function_ann, create_function_ann): Remove
5465         declarations.
5466
5467 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
5468
5469         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5470
5471 2009-04-27  Jan Hubicka  <jh@suse.cz>
5472
5473         * ipa-pure-const.c (struct funct_state_d): New fields
5474         state_previously_known, looping_previously_known; remove
5475         state_set_in_source.
5476         (analyze_function): Use new fields.
5477         (propagate): Avoid assumption that state_set_in_source imply
5478         nonlooping.
5479
5480         * tree-ssa-loop-niter.c (finite_loop_p): New function.
5481         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5482         * cfgloop.h (finite_loop_p): Declare.
5483
5484 2009-04-26  Michael Matz  <matz@suse.de>
5485
5486         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5487
5488 2009-04-26  Michael Matz  <matz@suse.de>
5489
5490         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5491         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5492         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5493         pass_mark_used_blocks): Remove.
5494         * tree-optimize.c (pass_free_datastructures,
5495         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5496         * passes.c (init_optimization_passes): Don't call
5497         pass_mark_used_blocks, remove dead code.
5498
5499 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
5500
5501         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5502         * tree-ssa-live.h (register_ssa_partition): Likewise.
5503
5504 2009-04-26  Michael Matz  <matz@suse.de>
5505
5506         Expand from SSA.
5507         * builtins.c (fold_builtin_next_arg): Handle SSA names.
5508         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5509         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5510         SSA names. 
5511         (compare_pairs): Swap cost comparison.
5512         (coalesce_ssa_name): Don't use change_partition_var.
5513         * tree-nrv.c (struct nrv_data): Add modified member.
5514         (finalize_nrv_r): Set it.
5515         (tree_nrv): Use it to update statements.
5516         (pass_nrv): Require PROP_ssa.
5517         * tree-mudflap.c (mf_decl_cache_locals,
5518         mf_build_check_statement_for): Use make_rename_temp.
5519         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5520         * alias.c (find_base_decl): Handle SSA names.
5521         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5522         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5523         * rtl.h (set_reg_attrs_for_parm): Declare.
5524         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5525         to "optimized", remove unused locals at finish.
5526         (execute_free_datastructures): Make global, call
5527         delete_tree_cfg_annotations.
5528         (execute_free_cfg_annotations): Don't call
5529         delete_tree_cfg_annotations.
5530
5531         * ssaexpand.h: New file.
5532         * expr.c (toplevel): Include ssaexpand.h.
5533         (expand_assignment): Handle SSA names the same as register variables.
5534         (expand_expr_real_1): Expand SSA names.
5535         * cfgexpand.c (toplevel): Include ssaexpand.h.
5536         (SA): New global variable.
5537         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5538         (SSAVAR): New macro.
5539         (set_rtl): New helper function.
5540         (add_stack_var): Deal with SSA names, use set_rtl.
5541         (expand_one_stack_var_at): Likewise.
5542         (expand_one_stack_var): Deal with SSA names.
5543         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5544         before unique numbers.
5545         (expand_stack_vars): Use set_rtl.
5546         (expand_one_var): Accept SSA names, add asserts for them, feed them
5547         to above subroutines.
5548         (expand_used_vars): Expand all partitions (without default defs),
5549         then only the local decls (ignoring those expanded already).
5550         (expand_gimple_cond): Remove edges when jumpif() expands an
5551         unconditional jump.
5552         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5553         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
5554         SSA name.
5555         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5556         members of SA; deal with PARM_DECL partitions here; expand
5557         all PHI nodes, free tree datastructures and SA.  Commit instructions
5558         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5559         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5560         info and statements at start, collect garbage at finish.
5561         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5562         (VAR_ANN_PARTITION) Remove.
5563         (change_partition_var): Don't declare.
5564         (partition_to_var): Always return SSA names.
5565         (var_to_partition): Only accept SSA names.
5566         (register_ssa_partition): Only check argument.
5567         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5568         member.
5569         (delete_var_map): Don't free it.
5570         (var_union): Only accept SSA names, simplify.
5571         (partition_view_init): Mark only useful SSA names as used.
5572         (partition_view_fini): Only deal with SSA names.
5573         (change_partition_var): Remove.
5574         (dump_var_map): Use ssa_name instead of partition_to_var member.
5575         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5576         basic blocks.
5577         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5578         (struct _elim_graph): New member const_dests; nodes member vector of
5579         ints.
5580         (set_location_for_edge): New static helper.
5581         (create_temp): Remove.
5582         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
5583         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
5584         (new_elim_graph): Allocate const_dests member.
5585         (clean_elim_graph): Truncate const_dests member.
5586         (delete_elim_graph): Free const_dests member.
5587         (elim_graph_size): Adapt to new type of nodes member.
5588         (elim_graph_add_node): Likewise.
5589         (eliminate_name): Likewise.
5590         (eliminate_build): Don't take basic block argument, deal only with
5591         partition numbers, not variables.
5592         (get_temp_reg): New static helper.
5593         (elim_create): Use it, deal with RTL temporaries instead of trees.
5594         (eliminate_phi): Adjust all calls to new signature.
5595         (assign_vars, replace_use_variable, replace_def_variable): Remove.
5596         (rewrite_trees): Only do checking.
5597         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5598         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5599         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5600         contains_tree_r, MAX_STMTS_IN_LATCH,
5601         process_single_block_loop_latch, analyze_edges_for_bb,
5602         perform_edge_inserts): Remove.
5603         (expand_phi_nodes): New global function.
5604         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
5605         functions, initialize new parameter, remember partitions having a
5606         default def.
5607         (finish_out_of_ssa): New global function.
5608         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
5609         don't reset in_ssa_p here, don't disable TER when mudflap.
5610         (pass_del_ssa): Remove.
5611         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5612         partition members.
5613         (execute_free_datastructures): Declare.
5614         * Makefile.in (SSAEXPAND_H): New variable.
5615         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5616         * basic-block.h (commit_one_edge_insertion): Declare.
5617         * passes.c (init_optimization_passes): Move pass_nrv and
5618         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5619         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5620         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5621         (redirect_branch_edge): Deal with super block when expanding, split
5622         out jump patching itself into ...
5623         (patch_jump_insn): ... here, new static helper.
5624
5625 2009-04-26  Michael Matz  <matz@suse.de>
5626
5627         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5628         beyond num_ssa_names.
5629         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5630         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5631
5632 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5633
5634         PR inline-asm/39543
5635         * fwprop.c (forward_propagate_asm): New function.
5636         (forward_propagate_and_simplify): Propagate also into __asm, if it
5637         doesn't increase the number of referenced registers.
5638
5639         PR c/39889
5640         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5641
5642 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5643
5644         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5645         note_nonlocal_vla_type for nonlocal VLAs.
5646         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5647         contains_remapped_vars, remap_vla_decls): New functions.
5648         (convert_nonlocal_reference_stmt): If not optimizing, call
5649         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5650         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5651         if it wasn't found in var_map.
5652         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
5653         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5654         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5655         declare_vars.
5656         * gimplify.c (nonlocal_vlas): New variable.
5657         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5658         referenced VLAs.
5659         (gimplify_body): Create and destroy nonlocal_vlas.
5660
5661         * dwarf2out.c (loc_descr_plus_const): New function.
5662         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5663         mem_loc_descriptor, loc_descriptor_from_tree_1,
5664         descr_info_loc, gen_variable_die): Use it.
5665
5666         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5667         !TREE_STATIC VAR_DECLs.
5668         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5669         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5670         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
5671         DECL_BY_REFERENCE is valid.
5672         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5673         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5674         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5675         Copy DECL_BY_REFERENCE.
5676         (struct nesting_copy_body_data): New type.
5677         (nesting_copy_decl): New function.
5678         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5679         if they have variable length.
5680
5681 2009-04-26  Michael Matz  <matz@suse.de>
5682
5683         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5684         mark new temporaries for renaming.
5685
5686 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5687
5688         PR c/39581
5689         * c-decl.c (global_bindings_p): Return negative value.
5690         (c_variable_size): New.  Based on variable_size from
5691         stor-layout.c.
5692         (grokdeclarator): Call c_variable_size not variable_size.
5693
5694 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
5695
5696         * config/i386/i386.c (print_operand) ['z']: Fix typo.
5697
5698 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
5699
5700         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5701         Redefine it to just use mingw/include.
5702         (ASM_SPEC): Rules for -m32 and -m64.
5703         (LINK_SPEC): Use Likewise.
5704         (SPEC_32): New define.
5705         (SPEC_64): Likewise.
5706         (SUB_LINK_SPEC): Likewise.
5707         (MULTILIB_DEFAULTS): New define.
5708         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5709         Add multilib options.
5710         (MULTILIB_DIRNAMES): Likewise.
5711         (MULTILIB_OSDIRNAMES): Likewise.
5712         (LIBGCC): Likewise.
5713         (INSTALL_LIBGCC): Likewise.
5714
5715 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5716
5717         PR c/39556
5718         * c-tree.h (enum c_inline_static_type): New.
5719         (record_inline_static): Declare.
5720         * c-decl.c (struct c_inline_static, c_inline_statics,
5721         record_inline_static, check_inline_statics): New.
5722         (pop_file_scope): Call check_inline_statics.
5723         (start_decl): Call record_inline_static instead of pedwarning
5724         directly for static in inline function.
5725         * c-typeck.c (build_external_ref): Call record_inline_static
5726         instead of pedwarning directly for static referenced in inline
5727         function.
5728
5729 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
5730
5731         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5732         not new but only being rescanned.
5733         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5734         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5735         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5736         record_set_info, compute_set, grealloc): Remove.
5737         (recompute_all_luids): New function.
5738         (gcse_main): Don't compute sets, and don't do related memory
5739         allocations/free-ing.  If something changed before the end of the
5740         pass, update LUIDs using recompute_all_luids.
5741         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
5742         (free_gcse_mem): Don't free it either.
5743         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5744         Use the df insn LUIDs.
5745         (load_killed_in_block): Likewise.
5746         (compute_hash_table_work): Don't compute reg_set_in_block.
5747         (compute_transp): Use DF_REG_DEF_CHAINs.
5748         (local_cprop_pass): Don't use compute_sets and related functions.
5749         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5750         Use get_max_uid() instead of max_cuid.
5751         (insert_insn_end_basic_block, pre_insert_copy_insn,
5752         update_ld_motion_stores): Don't try to
5753         keep reg_set tables up to date.
5754         (pre_insert_copies): Use df insn LUIDs.
5755         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5756         (reg_set_info): Don't use extra bitmap argument.
5757         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
5758         information to compute regs_set_in_block.
5759         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5760         (bypass_jumps): Don't use compute_sets and friends.
5761
5762 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5763
5764         PR testsuite/39710
5765         * opts.c (undocumented_msg): Do not leave blank even with
5766         ENABLE_CHECKING.
5767
5768 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5769
5770         * c-decl.c (build_enumerator): Allow values folding to integer
5771         constants but not integer constant expressions with a pedwarn if
5772         pedantic.
5773
5774 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5775
5776         PR c/39582
5777         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5778         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5779         type is an integer constant.
5780
5781 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5782
5783         PR target/39897
5784         * config/i386/i386.c (print_operand) ['z']: Revert handling of
5785         HImode operands.
5786
5787 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5788
5789         PR c/39564
5790         * c-decl.c (grokdeclarator): Diagnose declarations of functions
5791         with variably modified return type and no storage class
5792         specifiers, except for the case of nested functions.  Distinguish
5793         extern declarations of functions with variably modified return
5794         types from those of objects with variably modified types.
5795
5796 2009-04-25  Jan Hubicka  <jh@suse.cz>
5797
5798         * tree.c (list_equal_p): New function.
5799         * tree.h (list_equal_p): Declare.
5800         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5801         basic_block_def, basic_block, const_basic_block): New.
5802         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5803         (redirect_eh_edge): New function.
5804         (make_eh_edge_update_phi): EH edges are not abnormal.
5805         * except.c: Include tree-flow.h.
5806         (list_match): New function.
5807         (eh_region_replaceable_by_p): New function.
5808         (replace_region): New function.
5809         (hash_type_list): New function.
5810         (hash_eh_region): New function.
5811         (eh_regions_equal_p): New function.
5812         (merge_peers): New function.
5813         (remove_unreachable_regions): Verify EH tree when checking;
5814         merge peers.
5815         (copy_eh_region_1): New function.
5816         (copy_eh_region): New function.
5817         (push_reachable_handler): New function.
5818         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5819         regions without label but with live RESX.
5820         * except.h (redirect_eh_edge_to_label): New.
5821         * tree-flow.h (redirect_eh_edge): New.
5822         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5823         basic_block_def, basic_block, const_basic_block): Remove.
5824         * Makefile.in (except.o): Add dependency on tree-flow.h
5825         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5826         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5827         Remove.
5828
5829 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
5830
5831         PR bootstrap/39645
5832         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5833         on the destination of memcpy.
5834
5835 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
5836
5837         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5838         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5839         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5840
5841 2009-04-25  Jan Hubicka  <jh@suse.cz>
5842
5843         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5844         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5845         to be reached by different label than left.
5846         (update_eh_edges): Update comment; remove edge_to_remove if possible
5847         and return true if suceeded.
5848         (cleanup_empty_eh): Accept sharing map; handle shared regions.
5849         (cleanup_eh): Compute sharing map.
5850         * except.c (remove_eh_handler_and_replace): Add argument if we should
5851         update regions.
5852         (remove_unreachable_regions): Update for label sharing.
5853         (label_to_region_map): Likewise.
5854         (get_next_region_sharing_label): New function.
5855         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5856         prev_try pointers.
5857         (remove_eh_handler): Update.
5858         (remove_eh_region_and_replace_by_outer_of): New function.
5859         * except.h (struct eh_region): Add next_region_sharing_label.
5860         (remove_eh_region_and_replace_by_outer_of,
5861         get_next_region_sharing_label): Declare.
5862         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5863
5864 2009-04-25  Jan Hubicka  <jh@suse.cz>
5865
5866         * tree-cfg.c (split_critical_edges): Split also edges where we can't
5867         insert code even if they are not critical.
5868
5869 2009-04-25  Jan Hubicka  <jh@suse.cz>
5870
5871         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5872         (gimple_can_remove_branch_p): EH edges won't remove branch by
5873         redirection.
5874         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5875         updating of non-abnormal EH edges.
5876         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5877         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5878         (split_critical_edges): Split also edges where emitting code on them
5879         will lead to splitting later.
5880
5881 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5882             H.J. Lu  <hongjiu.lu@intel.com>
5883
5884         PR target/39590
5885         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5886         the configured assembler supports fildq and fistpq mnemonics.
5887         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5888         * configure: Regenerated.
5889         * config.in: Ditto.
5890
5891         * config/i386/i386.c (print_operand): Handle 'Z'.
5892         ['z']: Remove handling of special fild/fist suffixes.
5893         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5894         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5895         suffix of fild insn.
5896         (*floatsi<mode>2_vector_mixed): Ditto.
5897         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5898         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5899         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5900         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5901         * config/i386/gas.h (GAS_MNEMONICS): Remove.
5902
5903 2009-04-25  Ben Elliston  <bje@au.ibm.com>
5904  
5905         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5906         the source of a set operation.
5907
5908 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
5909
5910         * target.h (struct gcc_target): Add case_values_threshold field.
5911         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5912         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5913         * targhooks.c (default_case_values_threshold): New function.
5914         * targhooks.h (default_case_values_threshold): Declare function.
5915         * stmt.c (expand_case): Use case_values_threshold target hook.
5916         * expr.h (case_values_threshold): Remove declartation.
5917         * expr.c (case_values_threshold): Remove function.
5918         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5919
5920         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5921         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5922         (avr_case_values_threshold): Declare as static.
5923         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5924
5925         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5926         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5927         (mn10300_case_values_threshold): New function.
5928
5929 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5930
5931         * ira.c (setup_cover_and_important_classes): Add enum cast.
5932
5933 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5934
5935         * genpreds.c (write_enum_constraint_num): Output definition of
5936         CONSTRAINT_NUM_DEFINED_P macro.
5937         * ira.c (setup_cover_and_important_classes): Use
5938         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5939         
5940 2009-04-24  DJ Delorie  <dj@redhat.com>
5941
5942         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5943         __SH2A_SINGLE_ONLY__ also.
5944
5945 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
5946
5947         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5948         (movdf_internal): Ditto.
5949         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5950         SFmode and DFmode constants.
5951         (ia64_print_operand): Add 'G' format for printing
5952         floating point constants.
5953
5954 2009-04-24  Richard Guenther  <rguenther@suse.de>
5955
5956         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5957         from unsigned additions.
5958
5959 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
5960
5961         * c-typeck.c (set_init_index): Allow array designators that are
5962         not integer constant expressions with a pedwarn if pedantic.
5963
5964 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5965
5966         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5967         zero if no overlap in nonzero bits between the operands.
5968
5969 2009-04-24  Ian Lance Taylor  <iant@google.com>
5970
5971         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5972         (record_dead_and_set_regs): Likewise.
5973         * df.h (struct df_mw_hardreg): Change flags field to int.
5974         (struct df_base_ref): Likewise.
5975         (struct df): Change changeable_flags field to int.
5976         * df-scan.c (df_defs_record): Change clobber_flags to int.
5977         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5978         constants rather than #define macros.
5979         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5980         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5981         (enum dwarf_calling_convention): Likewise.
5982         (enum dwarf_line_number_x_ops): Likewise.
5983         (enum dwarf_call_frame_info): Likewise.
5984         (enum dwarf_source_language): Likewise.
5985         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5986         (add_calling_convention_attribute): Likewise.
5987         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5988         (combine_comparisons): Change compcode to int.  Add cast to enum type.
5989         * genrecog.c (maybe_both_true_2): Change c to int.
5990         (write_switch): Likewise.  Add cast to enum type.
5991         * gimplify.c (gimplify_omp_for): Handle return values from
5992         gimplify_expr using MIN rather than bitwise or.
5993         (gimplify_expr): Add cast to enum type.
5994         * ipa-prop.c (update_jump_functions_after_inlining): Change
5995         IPA_BOTTOM to IPA_JF_UNKNOWN.
5996         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5997         Add casts to enum type.
5998         (setup_cover_and_important_classes): Change cl to int.  Add casts
5999         to enum type.
6000         (setup_class_translate): Change cl and mode to int.
6001         (ira_init_once): Change mode to int.
6002         (free_register_move_costs): Likewise.
6003         (setup_prohibited_mode_move_regs): Add casts to enum type.
6004         * langhooks.c (add_builtin_function_common): Rework assertion that
6005         value fits bitfield.
6006         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
6007         * omega.c (omega_do_elimination): Avoid math on enum types.
6008         * optabs.c (expand_vec_shift_expr): Remove casts to int.
6009         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
6010         int local to handle integral_argment value.
6011         * regmove.c (try_auto_increment): Change PUT_MODE to
6012         PUT_REG_NOTE_KIND.
6013         * reload.c (push_secondary_reload): Add casts to enum type.
6014         (secondary_reload_class, find_valid_class): Likewise.
6015         * reload1.c (emit_input_reload_insns): Likewise.
6016         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
6017         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
6018         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
6019         constant.
6020         * tree.c (build_common_builtin_nodes): Add casts to enum type.
6021         * tree-complex.c (complex_lattice_t): Typedef to int rather than
6022         enum type.
6023         (expand_complex_libcall): Add casts to enum type.
6024         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
6025         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
6026         with ERROR_MARK, not NUM_TREE_CODES.
6027         (vect_create_epilog_for_reduction): Likewise.
6028         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
6029         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
6030         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
6031         enum machine_mode.
6032         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
6033         vect_unused_in_loop.  Change 0 to loop_vect.
6034         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
6035         * var-tracking.c (get_init_value): Change return type to enum
6036         var_init_status.
6037         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
6038         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
6039         arm_fp_model.
6040         (arm_override_options): Add casts to enum type.
6041         (arm_emit_tls_decoration): Likewise.
6042         * config/i386/i386.c (ix86_function_specific_restore): Add casts
6043         to enum type.
6044         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
6045         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
6046         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
6047         enum type.
6048         * config/s390/s390.c (code_for_builtin_64): Change to array of
6049         enum insn_code.
6050         (code_for_builtin_31): Likewise.
6051         (s390_expand_builtin): Change code_for_builtin to enum insn_code
6052         const *.
6053         * config/sparc/sparc.c (sparc_override_options): Change value
6054         field in struct code_model to enum cmodel.  In initializer change
6055         0 to NULL and add cast to enum type.
6056
6057         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
6058         Change all callers.  Issue a -Wc++-compat warning using
6059         lhs_origtype if necessary.
6060         (convert_for_assignment): Issue -Wc++-compat warnings about
6061         invalid conversions to enum type on assignment.
6062         * c-common.h (build_modify_expr): Update declaration.
6063
6064 2009-04-24  Nick Clifton  <nickc@redhat.com>
6065
6066         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
6067         (function_arg_advance): Likewise.
6068         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
6069         5th alternative.
6070
6071 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6072
6073         * config/s390/constraints.md ('I', 'J'): Fix condition.
6074
6075 2009-04-24  Diego Novillo  <dnovillo@google.com>
6076
6077         * gengtype-parse.c (parse_error): Add newline after message.
6078
6079 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
6080
6081         * config/i386/sse.md (avxmodesuffixs): Removed.
6082         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
6083         (*avx_pinsr<ssevecsize>): This.
6084
6085 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
6086
6087         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
6088         follow chains of regs with a single definition, and allow expressions
6089         that are function_invariant_p.
6090         (simple_rhs_p): Allow expressions that are function_invariant_p.
6091
6092 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
6093
6094         PR middle-end/39867
6095         * fold-const.c (fold_cond_expr_with_comparison): When folding
6096         > and >= to MAX, make sure the MAX uses the same type as the
6097         comparison's operands.
6098
6099 2009-04-24  Nick Clifton  <nickc@redhat.com>
6100
6101         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
6102         addressing for DImode accesses.
6103         (frv_print_operand_address): Handle PLUS case.
6104         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
6105
6106 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
6107
6108         PR rtl-optimization/39794
6109         * alias.c (canon_true_dependence): Add x_addr argument.
6110         * rtl.h (canon_true_dependence): Adjust prototype.
6111         * cse.c (check_dependence): Adjust canon_true_dependence callers.
6112         * cselib.c (cselib_invalidate_mem): Likewise.
6113         * gcse.c (compute_transp): Likewise.
6114         * dse.c (scan_reads_nospill): Likewise.
6115         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
6116         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
6117         canon_base_addr of the group, plus optional offset.
6118         (struct group_info): Rename canon_base_mem to
6119         canon_base_addr.
6120         (get_group_info): Set canon_base_addr to canon_rtx of base, not
6121         canon_rtx of base_mem.
6122
6123 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
6124
6125         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6126         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
6127
6128 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6129
6130         * config/spu/spu-builtins.h: Delete file.
6131
6132         * config/spu/spu.h (enum spu_builtin_type): Move here from
6133         spu-builtins.h.
6134         (struct spu_builtin_description): Likewise.  Add GTY marker.
6135         Do not use enum spu_function_code or enum insn_code.
6136         (spu_builtins): Add extern declaration.
6137
6138         * config/spu/spu.c: Do not include "spu-builtins.h".
6139         (enum spu_function_code, enum spu_builtin_type_index,
6140         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
6141         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
6142         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
6143         unsigned_V2DI_type_node): Move here from spu-builtins.h.
6144         (spu_builtin_types): Make static.  Add GTY marker.
6145         (spu_builtins): Add extern declaration with GTY marker.
6146         Include "gt-spu.h".
6147
6148         * config/spu/spu-c.c: Do not include "spu-builtins.h".
6149         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
6150         Check programmatically whether all parameters are scalar.
6151
6152         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
6153
6154 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
6155
6156         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
6157         assignment from the constructor either if the target is volatile.
6158
6159 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
6160
6161         * config/arm/arm.md (insv): Do not share operands[0].
6162
6163 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
6164
6165         * config/vxlib-tls.c (active_tls_threads): Delete.
6166         (delete_hook_installed): New.
6167         (tls_delete_hook): Don't delete the delete hook.
6168         (tls_destructor): Delete it here.
6169         (__gthread_set_specific): Adjust installing the delete hook.
6170         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
6171         __gthread_leave_tsd_dtor_context.
6172
6173 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
6174
6175         * c-format.c (gcc_tdiag_char_table): Add support for %E.
6176
6177 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
6178
6179         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
6180         enum type.
6181         (alpha_rtx_costs): Ditto.
6182         (emit_unlikely_jump): Use add_reg_note.
6183         (emit_frame_store_1): Ditto.
6184         (alpha_expand_prologue): Ditto.
6185         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6186         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
6187
6188 2009-04-23  Nick Clifton  <nickc@redhat.com>
6189
6190         * config/v850/v850.md (epilogue): Remove suppressed code.
6191         (return): Rename to return_simple and remove test of frame size.
6192         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
6193         to gen_return_simple.
6194
6195 2009-04-22  Jing Yu  <jingyu@google.com>
6196
6197         PR testsuite/39781
6198         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
6199
6200 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6201
6202         PR C/31499
6203         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
6204         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
6205         value is a VECTOR_CST, the element type is the element type of the
6206         vector.
6207
6208 2009-04-22  DJ Delorie  <dj@redhat.com>
6209
6210         * config/m32c/m32c.h: Update GTY annotations to new syntax.
6211
6212 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
6213
6214         * alias.c (find_base_term): Move around LO_SUM case, so that
6215         CONST falls through into PLUS/MINUS handling.
6216
6217         PR c/39855
6218         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
6219         into 0, use omit_one_operand.
6220
6221 2009-04-23  Ben Elliston  <bje@au.ibm.com>
6222
6223         * config/rs6000/linux-unwind.h (get_regs): Remove type
6224         puns. Change the type of `pc' to an array of unsigned ints and
6225         update all users.  Constify frame24.
6226
6227 2009-04-22  DJ Delorie  <dj@redhat.com>
6228
6229         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
6230         declarations before code.
6231         (current_function_special_page_vector): Likewise.
6232         (m32c_expand_insv): Silence a warning.
6233
6234 2009-04-21  Taras Glek  <tglek@mozilla.com>
6235
6236         * alias.c: Update GTY annotations to new syntax.
6237         * basic-block.h: Likewise.
6238         * bitmap.h: Likewise.
6239         * c-common.h: Likewise.
6240         * c-decl.c: Likewise.
6241         * c-parser.c: Likewise.
6242         * c-pragma.c: Likewise.
6243         * c-tree.h: Likewise.
6244         * cfgloop.h: Likewise.
6245         * cgraph.h: Likewise.
6246         * config/alpha/alpha.c: Likewise.
6247         * config/arm/arm.h: Likewise.
6248         * config/avr/avr.h: Likewise.
6249         * config/bfin/bfin.c: Likewise.
6250         * config/cris/cris.c: Likewise.
6251         * config/darwin.c: Likewise.
6252         * config/frv/frv.c: Likewise.
6253         * config/i386/i386.c: Likewise.
6254         * config/i386/i386.h: Likewise.
6255         * config/i386/winnt.c: Likewise.
6256         * config/ia64/ia64.h: Likewise.
6257         * config/iq2000/iq2000.c: Likewise.
6258         * config/mips/mips.c: Likewise.
6259         * config/mmix/mmix.h: Likewise.
6260         * config/pa/pa.c: Likewise.
6261         * config/pa/pa.h: Likewise.
6262         * config/rs6000/rs6000.c: Likewise.
6263         * config/s390/s390.c: Likewise.
6264         * config/sparc/sparc.c: Likewise.
6265         * config/xtensa/xtensa.c: Likewise.
6266         * cselib.h: Likewise.
6267         * dbxout.c: Likewise.
6268         * dwarf2out.c: Likewise.
6269         * except.c: Likewise.
6270         * except.h: Likewise.
6271         * fixed-value.h: Likewise.
6272         * function.c: Likewise.
6273         * function.h: Likewise.
6274         * gimple.h: Likewise.
6275         * integrate.c: Likewise.
6276         * optabs.c: Likewise.
6277         * output.h: Likewise.
6278         * real.h: Likewise.
6279         * rtl.h: Likewise.
6280         * stringpool.c: Likewise.
6281         * tree-data-ref.c: Likewise.
6282         * tree-flow.h: Likewise.
6283         * tree-scalar-evolution.c: Likewise.
6284         * tree-ssa-address.c: Likewise.
6285         * tree-ssa-alias.h: Likewise.
6286         * tree-ssa-operands.h: Likewise.
6287         * tree.c: Likewise.
6288         * tree.h: Likewise.
6289         * varasm.c: Likewise.
6290         * varray.h: Likewise.
6291         * vec.h: Likewise.
6292         * coretypes.h: Do not define GTY macro if it is already defined.
6293         * doc/gty.texi: Update GTY documentation to new syntax.
6294         * gengtype-lex.l: Enforce attribute-like syntax for GTY
6295         annotations on structs.
6296         * gengtype-parse.c: Likewise.
6297
6298 2009-04-22  Mark Heffernan  <meheff@google.com>
6299
6300         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
6301
6302 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
6303
6304         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
6305         where appropriate.
6306
6307 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
6308
6309         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
6310         the same as a PLUS without a shift.  Increase the cost of a
6311         CONST_INT in MULT.
6312
6313 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6314
6315         * Makefile.in: Update dependencies.
6316         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
6317         * errors.h: Remove bogus comment about compatibility.
6318         (warning): Update declaration.
6319         * genautomata.c: Update all calls to warning.
6320         * gimple.c: Do not include errors.h. Include toplev.h.
6321         * tree-ssa-structalias.c: Do not include errors.h.
6322         * omega.c: Likewise.
6323         * tree-ssa-reassoc.c: Likewise.
6324         * config/spu/spu-c.c: Likewise.
6325         * config/spu/t-spu-elf: Update dependencies.
6326
6327 2009-04-22  Richard Guenther  <rguenther@suse.de>
6328
6329         PR tree-optimization/39824
6330         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
6331         make sure the types are compatible.
6332
6333 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6334
6335         PR c++/14875
6336         * c-common.c (c_parse_error): Take a token_flags parameter.
6337         Use token_type for the token type instead.
6338         Pass token_flags to cpp_type2name.
6339         * c-common.h (c_parse_error): Update declaration.
6340         * c-parser.c (c_parser_error): Pass 0 as token flags.
6341
6342 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
6343
6344         PR rtl-optimization/39580
6345         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
6346         
6347 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6348
6349         * function.c (expand_function_end): Do not emit a jump to the "naked"
6350         return label for fall-through returns.
6351         * except.c (sjlj_emit_function_exit): Always place the call to the
6352         unregister function at the location installed by expand_function_end.
6353
6354 2009-04-22  Richard Guenther  <rguenther@suse.de>
6355
6356         PR tree-optimization/39845
6357         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
6358         (gen_inbound_check): Likewise.
6359
6360 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
6361
6362         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
6363         padding for PPC.
6364         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
6365         * config/vxlib.c (__gthread_once): Add race guard for PPC.
6366
6367 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
6368
6369         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
6370         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
6371         shift counts to avoid out-of-bounds array accesses.
6372
6373 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
6374
6375         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
6376         (Pmode): Move above.
6377
6378 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
6379
6380         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6381         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6382         GET_CODE macro.  Use IN_RANGE macro where appropriate.
6383         * config/alpha/alpha.h: Ditto.
6384         * config/alpha/alpha.md: Ditto.
6385         * config/alpha/constraints.md: Ditto.
6386         * config/alpha/predicates.md: Ditto.
6387         
6388 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
6389
6390         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6391         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6392         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6393         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6394         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6395         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6396         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6397         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6398         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6399         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6400         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6401         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6402         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6403         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6404         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6405         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6406         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6407         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6408         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6409         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6410         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6411         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6412         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6413         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6414         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6415         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6416         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6417
6418 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6419
6420         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6421         references from comments.
6422         * cfgbuild.c: (count_basic_blocks): Delete.
6423         (find_basic_blocks_1): Delete.
6424         (find_basic_blocks): Delete.
6425         * except.c (finish_eh_generation): Make static.  Move comment from
6426         except.h here.  Remove find_basic_blocks references from comments.
6427         * except.h (finish_eh_generation): Delete.
6428         * basic-block.h (find_basic_blocks): Delete.
6429         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6430
6431 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
6432
6433         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
6434         (sdbout_parms):  Likewise.
6435
6436 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6437
6438         * config/sh/sh.c (prepare_cbranch_operands): Use
6439         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6440         (expand_cbranchdi4): Likewise.
6441         (from_compare): Add cast to enum type.
6442         (expand_cbranchsi4): Use add_reg_note.
6443         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6444         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6445         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6446         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6447         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6448         instead of CODE_FOR_nothing.
6449         (cbranchdi4): Likewise.  Fix the order of arguments for
6450         gen_rtx_fmt_ee.
6451         (push_fpscr): Use add_reg_note.
6452         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6453         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6454         
6455 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
6456
6457         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6458         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6459         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6460         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6461         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6462         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6463         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6464         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6465         config/alpha/x-vms, config/arc/t-arc,
6466         config/arm/README-interworking, config/arm/arm-c.c,
6467         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6468         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6469         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6470         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6471         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6472         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6473         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6474         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6475         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6476         config/cris/t-elfmulti, config/crx/t-crx,
6477         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6478         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6479         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6480         config/h8300/t-h8300, config/i386/athlon.md,
6481         config/i386/darwin-libgcc.10.4.ver,
6482         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6483         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6484         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6485         config/i386/t-linux64, config/i386/t-nwld,
6486         config/i386/t-rtems-i386, config/i386/t-sol2-10,
6487         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6488         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6489         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6490         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6491         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6492         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6493         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6494         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6495         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6496         config/m68k/t-uclinux, config/mcore/t-mcore,
6497         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6498         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6499         config/mips/crtn.asm, config/mips/irix-crti.asm,
6500         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6501         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6502         config/mips/mips-fixed.md, config/mips/sb1.md,
6503         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6504         config/mips/t-iris6, config/mips/t-isa3264,
6505         config/mips/t-libgcc-mips16, config/mips/t-linux64,
6506         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6507         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6508         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6509         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6510         config/mn10300/t-linux, config/mn10300/t-mn10300,
6511         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6512         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6513         config/picochip/libgccExtras/clzsi2.asm,
6514         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6515         config/rs6000/darwin-libgcc.10.4.ver,
6516         config/rs6000/darwin-libgcc.10.5.ver,
6517         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6518         config/rs6000/t-aix43, config/rs6000/t-aix52,
6519         config/rs6000/t-darwin, config/rs6000/t-fprules,
6520         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6521         config/rs6000/t-lynx, config/rs6000/t-netbsd,
6522         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6523         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6524         config/rs6000/t-rtems, config/rs6000/t-spe,
6525         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6526         config/score/t-score-elf, config/sh/divcost-analysis,
6527         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6528         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6529         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6530         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6531         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6532         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6533         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6534         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6535         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6536         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6537         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6538         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6539         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6540         limitx.h, version.c, xcoff.h: Add copyright and license notices.
6541         * config/h8300/genmova.sh: Include copyright and license notices
6542         in generated output.
6543         * config/h8300/mova.md: Regenerate.
6544         * doc/install.texi2html: Include word "Copyright" in copyright
6545         notice and use name "Free Software Foundation, Inc.".
6546         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6547         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6548         ChangeLog-2007, ChangeLog-2008: Correct dates.
6549
6550 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
6551
6552         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6553         NE_EXPR operations as well.
6554         * c-parser.c (c_parser_condition): Do not set location information on
6555         the condition.
6556         (c_parser_conditional_expression): Likewise.
6557         (c_parser_binary_expression): Set location information on operators.
6558         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6559         TRUTH_NOT_EXPR has been folded.
6560         * fold-const.c (fold_truth_not_expr): Copy location information from
6561         the incoming expression to the outgoing one.
6562         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
6563         recursive calls on the LHS of the operator but pass that of the
6564         operator to recursive calls on the RHS of the operator.  Set it
6565         on the COND_EXPR.
6566         (shortcut_cond_expr): Set the locus of the operator on the second
6567         COND_EXPR and that of the expression on the first in degenerate cases.
6568         Pass the locus of the expression to calls to shortcut_cond_r.
6569         Set the locus of the 'then' block on the associated jump, if any.
6570         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
6571         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6572         expression to call to gimplify_boolean_expr.
6573
6574 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
6575
6576         * config.gcc: Add additional configuration for
6577         i686-w64-mingw* and x86_64-w64-mingw* triplet.
6578         * config/i386/mingw-w64.h: New mingw-w64 specific header.
6579         (CPP_SPEC): Redefine for allowing -municode option.
6580         (STARTFILE_SPEC): Likewise.
6581         * config/i386/t-mingw-w64: New.
6582         * config/i386/mingw-w64.opt: New.
6583         (municode): Add new target option.
6584         * doc/invoke.texi (municode): Add documentation for new option.
6585
6586 2009-04-21  Ian Lance Taylor  <iant@google.com>
6587
6588         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6589         Correct test for number of arguments.
6590         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6591
6592 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
6593
6594         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6595         argument of emit_library_call.
6596
6597 2009-04-21  Richard Guenther  <rguenther@suse.de>
6598
6599         PR middle-end/39829
6600         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6601         inside VIEW_CONVERT_EXPRs.
6602
6603 2009-04-21  Martin Jambor  <mjambor@suse.cz>
6604
6605         * tree-switch-conversion.c (build_constructors): Split a long line.
6606         (constructor_contains_same_values_p): New function.
6607         (build_one_array): Create assigns of constants if possible, do not
6608         call mark_sym_for_renaming, call update_stmt.
6609         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6610         make_rename_temp.  Do not call mark_symbols_for_renaming, call
6611         update_stmt.
6612         (gen_def_assigns): Do not call mark_symbols_for_renaming or
6613         find_new_referenced_vars, call update_stmt.
6614         (gen_inbound_check): Use create_tmp_var and create ssa names manually
6615         instead of calling make_rename_temp.  Do not call
6616         find_new_referenced_vars or mark_symbols_for_renaming, call
6617         update_stmt.
6618
6619 2009-04-21  Richard Guenther  <rguenther@suse.de>
6620
6621         PR tree-optimization/39827
6622         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
6623         (tree_ssa_phiprop): Pass the correct array size.
6624
6625 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
6626
6627         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6628
6629 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6630
6631         PR 16202
6632         * c-typeck.c (lvalue_p): Move declaration ...
6633         * c-common.h (lvalue_p): ... to here.
6634         * c-common.c (candidate_equal_p): New.
6635         (add_tlist): Use it.
6636         (merge_tlist): Use it.
6637         (warn_for_collisions_1): Likewise.
6638         (warning_candidate_p): Accept more candidates.
6639         (verify_tree): A warning candidate can be an expression. Use
6640         candidate_equal_p.
6641
6642 2009-04-21  Ben Elliston  <bje@au.ibm.com>
6643
6644         PR target/5267
6645         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6646         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6647         options.  Remove -mcall-solaris documentation.
6648
6649 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6650
6651         PR c++/13358
6652         * doc/invoke.texi (-Wlong-long): Update description.
6653         * c-lex (interpret_integer): Only warn if there was no previous
6654         overflow and -Wlong-long is enabled.
6655         * c-decl.c (declspecs_add_type): Drop redundant flags.
6656         * c.opt (Wlong-long): Init to -1.
6657         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6658         and front-end warn_long_long. Wlong-long only depends on other
6659         flags if it is uninitialized.
6660         * c-parser.c (disable_extension_diagnostics): warn_long_long is
6661         the same for CPP and FE.
6662         (restore_extension_diagnostics): Likewise.
6663
6664 2009-04-20  Ian Lance Taylor  <iant@google.com>
6665
6666         Fix enum conversions which are invalid in C++:
6667         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6668         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
6669         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6670         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
6671         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
6672         (dbxout_parms): Likewise.
6673         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
6674         (df_clear_flags): Likewise.
6675         * df-problems.c (df_rd_bb_local_compute_process_def): Change
6676         top_flag parameter to int.
6677         (df_chain_create_bb_process_use): Likewise.
6678         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6679         Remove cast.
6680         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6681         (df_ref_create_structure, df_def_record_1): Likewise.
6682         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6683         (df_notes_rescan): Change 0 to VOIDmode in function call.
6684         (df_get_call_refs, df_insn_refs_collect): Likewise.
6685         (df_bb_regs_collect): Likewise.
6686         (df_entry_block_defs_collect): Likewise.
6687         (df_exit_block_uses_collect): Likewise.
6688         * df.h: Update declarations.
6689         * double-int.c (double_int_divmod): Add cast to enum type.
6690         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6691         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6692         (based_loc_descr): Likewise.
6693         (loc_descriptor_from_tree_1): Change first_op and second_op to
6694         enum dwarf_location_atom.  Add cast to enum type.
6695         * expmed.c (init_expmed): Change 0 to SET in function call.
6696         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
6697         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6698         (do_store_flag): Likewise.
6699         * fixed-value.h (struct fixed_value): Change mode to enum
6700         machine_mode.
6701         * function.c (assign_parms): Change 0 to VOIDmode in function call.
6702         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6703         function call.
6704         (insert_insn_decl, insert_decl, insert_state): Likewise.
6705         (automata_list_finish): Likewise.
6706         * genrecog.c (process_define_predicate): Add cast to enum type.
6707         * gensupport.c (init_predicate_table): Add cast to enum type.
6708         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6709         function call.
6710         (gimple_build_call_1, gimple_build_label): Likewise.
6711         (gimple_build_goto, gimple_build_asm_1): Likewise.
6712         (gimple_build_switch_1, gimple_build_cdt): Likewise.
6713         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
6714         (enum fallback): Rename from enum fallback_t.
6715         (fallback_t): Typedef as int.
6716         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6717         GSI_SAME_STMT in function call.
6718         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6719         enum type.
6720         (setup_reg_class_relations): Likewise.
6721         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
6722         (setup_prohibited_class_mode_regs): Add cast to enum type.
6723         (setup_prohibited_mode_move_regs): Likewise.
6724         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
6725         (record_address_regs): Change i to enum reg_class.
6726         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6727         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6728         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6729         (GET_MODE_2XWIDER_MODE): Likewise.
6730         (GET_CLASS_NARROWEST_MODE): Likewise.
6731         * omp-low.c (expand_omp_for): Add cast to enum type.
6732         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6733         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6734         * postreload.c (reload_cse_simplify_operands): Change rclass local
6735         to enum reg_class.
6736         * predict.c (combine_predictions_for_insn): Change best_predictor
6737         and predictor to enum br_predictor.
6738         (combine_predictions_for_bb): Likewise.
6739         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6740         use SET_PREDICT_EXPR_OUTCOME.
6741         * real.c (real_arithmetic): Change icode to code in function call.
6742         * reginfo.c (init_move_cost): Add casts to enum type.
6743         (init_reg_sets_1, init_fake_stack_mems): Likewise.
6744         * regmove.c (regclass_compatible_p): Change class0 and class1 to
6745         enum reg_class.
6746         * reload.c (find_valid_class): Add casts to enum type.
6747         (push_reload): Change 0 to NO_REGS in function call.
6748         (find_reloads): Change this_alternative to array of enum
6749         reg_class.  Remove some now-unnecessary casts.
6750         (make_memloc): Change 0 to VOIDmode in function call.
6751         * reload1.c (reload): Change 0 to VOIDmode in function call.
6752         (eliminate_regs_1, elimination_effects): Likewise.
6753         (eliminate_regs_in_insn): Likewise.
6754         (emit_input_reload_insns): Add cast to enum type.
6755         (delete_output_reload): Change 0 to VOIDmode in function call.
6756         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6757         to enum type in function call.
6758         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6759         (SET_PREDICT_EXPR_OUTCOME): Define.
6760         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
6761         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6762         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6763         (dump_function): Likewise.
6764         * tree-dump.h: Update declarations.
6765         * tree-pass.h: Update declarations.
6766         * varasm.c (assemble_integer): Change mclass to enum mode_class.
6767         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6768         enum type.
6769         (arm_rtx_costs_1): Correct parenthesization.
6770         (arm_rtx_costs): Add casts to enum type.
6771         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6772         (vfp_emit_fstmd): Use add_rg_note.
6773         (emit_multi_reg_push, emit_sfm): Likewise.
6774         (thumb_set_frame_pointer): Likewise.
6775         (arm_expand_prologue): Likewise.
6776         (arm_regno_class): Change return type to enum reg_class.
6777         (thumb1_expand_prologue): Use add_reg_note.
6778         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6779         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6780         in function call.
6781         * config/arm/gentune.sh: Add cast to enum type.
6782         * config/arm/arm-tune.md: Rebuild.
6783         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6784         (ix86_split_fp_branch, predict_jump): Likewise.
6785         (ix86_expand_multi_arg_builtin): Change sub_code from enum
6786         insn_code to enum rtx_code.
6787         (ix86_builtin_vectorized_function): Add cast to enum type.
6788         * config/i386/i386.md (truncdfsf2): Change slot to enum
6789         ix86_stack_slot.
6790         (truncxf<mode>2, isinf<mode>2): Likewise.
6791         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6792         enum type.
6793         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6794         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6795         (insert_bundle_state): Change 1 to INSERT in function call.
6796         (ia64_add_bundle_selector_before): Likewise.
6797         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6798         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6799         (restore_stack_nonlocal): Likewise.
6800         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6801         function call.
6802         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6803         function call.
6804         (mips_rtx_costs): Likewise.
6805         (mips_override_options): Add casts to enum type.
6806         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6807         in function call.
6808         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6809         (store_reg, set_reg_plus_d): Likewise.
6810         (hppa_expand_prologue, hppa_profile_hook): Likewise.
6811         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6812         cast to enum type.
6813         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6814         function call.
6815         (emit_unlikely_jump): Use add_reg_note.
6816         (rs6000_emit_allocate_stack): Likewise.
6817         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6818         (output_toc): Change 1 to INSERT in function call.
6819         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6820         (rs6000_initialize_trampoline): Likewise.
6821         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6822         function call.
6823         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6824         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6825         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6826         (save_gprs): Use add_reg_note.
6827         (s390_emit_prologue): Likewise.
6828         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6829         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6830         (sparc_fold_builtin): Add cast to enum type.
6831         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6832         enum insn_code.
6833         (spu_expand_prologue): Use add_reg_note.
6834         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
6835
6836 2009-04-20  Ian Lance Taylor  <iant@google.com>
6837
6838         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6839         (c_parser_postfix_expression_after_primary): Get VEC for list of
6840         arguments.  Get original types of arguments.  Call
6841         build_function_call_vec.
6842         (cached_expr_list_1, cached_expr_list_2): New static variables.
6843         (c_parser_expr_list): Change return type to VEC *.  Add
6844         p_orig_types parameter.  Change all callers.
6845         (c_parser_release_expr): New static function.
6846         (c_parser_vec_to_tree_list): New static function.
6847         * c-typeck.c (build_function_call): Rewrite to build a VEC and
6848         call build_function_call_vec.
6849         (build_function_call_vec): New function, based on old
6850         build_function_call.
6851         (convert_arguments): Remove nargs and argarray parameters.  Change
6852         values to a VEC.  Add origtypes parameter.
6853         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
6854         (convert_for_assignment): Add origtype parameter.  Change all
6855         callers.  If warn_cxx_compat, check for conversion to an enum
6856         type when calling a function.
6857         (store_init_value): Add origtype parameter.  Change all callers.
6858         (digest_init): Likewise.
6859         (struct init_node): Add origtype field.
6860         (add_pending_init): Add origtype parameter.  Change all callers.
6861         (output_init_element): Likewise.
6862         (output_pending_init_elements): Pass origtype from init_node to
6863         output_init_element.
6864         (process_init_element): Pass origtype from c_expr to
6865         output_init_element.
6866         (c_finish_return): Add origtype parameter.  Change all callers.
6867         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
6868         caller.
6869         (sync_resolve_params): Likewise.
6870         (sync_resolve_return): Change params to first_param.  Change caller.
6871         (resolve_overloaded_builtins): Change params to VEC *.  Change
6872         callers.  Save first parameter around call to build_function_call_vec.
6873         * c-decl.c (finish_decl): Add origtype parameter.  Change all
6874         callers.  Call build_function_call_vec rather than
6875         build_function_call for cleanup.
6876         * c-tree.h: Update declarations.
6877         * c-common.h: Update declarations.
6878         * stub-objc.c (objc_rewrite_function_call): Change parameter from
6879         params to first_param.
6880         * target.h (struct gcc_target): Change resolve_overloaded_builtin
6881         params parameter from tree to void *.
6882         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6883         Change arglist parameter to have type void *, and to be a pointer
6884         to a VEC.
6885         * config/rs6000/rs6000-protos.h
6886         (altivec_resolve_overloaded_builtin): Update declaration.
6887         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6888         fnargs parameter to have type void *, and to be a pointer to a
6889         VEC.  Call build_function_call_vec instead of
6890         build_function_call.
6891         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
6892
6893 2009-04-20  Joey Ye  <joey.ye@intel.com>
6894             Xuepeng Guo  <xuepeng.guo@intel.com>
6895             H.J. Lu  <hongjiu.lu@intel.com>
6896
6897         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6898
6899         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6900         (IX86_LEA_PRIORITY): Likewise.
6901         (distance_non_agu_define): New function.
6902         (distance_agu_use): Likewise.
6903         (ix86_lea_for_add_ok): Likewise.
6904         (ix86_dep_by_shift_count): Likewise.
6905
6906         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6907         should split for LEA.
6908
6909         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6910         function.
6911         (ix86_dep_by_shift_count): Likewise.
6912
6913 2009-04-20  Richard Guenther  <rguenther@suse.de>
6914
6915         * expr.c (handled_component_p): Move ...
6916         * tree.h (handled_component_p): ... here.
6917         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6918         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6919         and REALPART_EXPR to be in one group.
6920
6921 2009-04-20  Richard Guenther  <rguenther@suse.de>
6922
6923         * basic-block.h (get_all_dominated_blocks): Declare.
6924         * dominance.c (get_all_dominated_blocks): New function.
6925         * tree-cfg.c (get_all_dominated_blocks): Remove.
6926         (remove_edge_and_dominated_blocks): Adjust.
6927         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6928         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
6929         instead of recursing.
6930
6931 2009-04-20  Doug Kwan  <dougkwan@google.com>
6932
6933         * cgraph.h (cgraph_node_ptr): New type for vector functions.
6934         (struct cgraph_node_set_def): New type.
6935         (cgraph_node_set) New type. Also declare vector functions.
6936         (struct cgraph_node_set_element_def): New type.
6937         (cgraph_node_set_element): Ditto.
6938         (cgraph_node_set_iterator): New iterator type.
6939         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6940         cgraph_node_set_remove, dump_cgraph_node_set,
6941         debug_cgraph_node_set): New prototypes.
6942         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6943         cgraph_node_set_size): New inlines.
6944         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6945         including cgraph.h.
6946         (struct ipa_opt_pass): Add struct cgraph_node_set_def
6947         argument to function 'write_summary'.
6948         * ipa.c: Include ggc.h.
6949         (hash_cgraph_node_set_element,
6950         eq_cgraph_node_set_element, cgraph_node_set_new,
6951         cgraph_node_set_add, cgraph_node_set_remove,
6952         cgraph_node_set_find, dump_cgraph_node_set,
6953         debug_cgraph_node_set): New functions.
6954         * Makefile.in (ipa.o): Add dependency on GGC_H.
6955
6956 2009-04-20  Ira Rosen  <irar@il.ibm.com>
6957
6958         PR tree-optimization/39675
6959         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
6960         check of the return code of vect_schedule_slp. Check that
6961         stmt_vec_info still exists for the statement, before checking its
6962         vectorization type.
6963
6964 2009-04-20  Michael Matz  <matz@suse.de>
6965
6966         * Makefile.in (generated_files): Take out $(simple_generated_c).
6967
6968 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
6969
6970         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
6971         (UINTPTR_TYPE):  Likewise.
6972
6973 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6974
6975         PR c/37481
6976         * c-typeck.c (digest_init): Check for initializing an array with a
6977         string literal.
6978
6979 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6980
6981         PR c/19771
6982         * c-semantics.c (pop_stmt_list): Propagate
6983         STATEMENT_LIST_HAS_LABEL to parent statement list.
6984
6985 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
6986
6987         * config/mips/mips.h (mips_tune_attr): New macro.
6988         * config/mips/mips.md (cpu): Use it.
6989
6990 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6991
6992         PR c/38243
6993         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6994         declaring a tag.
6995
6996 2009-04-19  Diego Novillo  <dnovillo@google.com>
6997
6998         * toplev.c (compile_file): Move call to coverage_finish ...
6999         * cgraphunit.c (ipa_passes): ... here.
7000         Call cgraph_process_new_functions.
7001         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
7002         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
7003
7004 2009-04-19  Jan Hubicka  <jh@suse.cz>
7005
7006         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
7007         cfun.
7008         (dump_cgraph_node): Dump can throw external flag.
7009         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
7010
7011 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7012
7013         PR c/32061
7014         PR c++/36954
7015         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
7016         * common.opt (Wlogical-op): Move from here...
7017         * c.opt (Wlogical-op): ... to here.
7018         * c-typeck.c (parser_build_binary_op): Update call to
7019         warn_logical_operator.
7020         * c-opts.c (c_common_post_options): Enable warn_logical_op with
7021         extra_warnings.
7022         * c-common.c (warn_logical_op): Update.
7023         * c-common.h (warn_logical_op): Update declaration.
7024
7025 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
7026
7027         * tree.c (protected_set_expr_location): Fix formatting.
7028
7029 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
7030
7031         PR c/27676
7032         * c-typeck.c (readonly_warning): new.
7033         (build_unary_op, build_modify_expr): Use readonly_warning for
7034         storing into something readonly but not const-qualified.
7035
7036 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
7037
7038         PR c/22367
7039         * c-typeck.c (build_unary_op): Check for taking address of
7040         expression of type void.
7041
7042 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
7043
7044         PR c/35210
7045         * c-typeck.c (build_function_call): Check for calling a function
7046         with qualified void return types.  Call require_complete_type when
7047         generating a trap.
7048
7049 2009-04-18  Jan Hubicka  <jh@suse.cz>
7050
7051         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
7052         Set nothrow flag.
7053         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
7054         can_throw_external flag.
7055         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
7056         * ipa-pure-const.c (ignore_edge): New function.
7057         (propagate): Compute order for NOTHROW computation; set NOTHROWs
7058         only over can_throw_external edges.
7059         (local_pure_const): Add nothrow flag.
7060         * ipa-utils.c (searchc): Add ignore_edge callback.
7061         (ipa_utils_reduced_inorder): Add ignore_edge callback.
7062         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
7063         (set_nothrow_function_flags): Update cgraph.
7064         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
7065
7066 2009-04-18  Richard Guenther  <rguenther@suse.de>
7067
7068         PR middle-end/39804
7069         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
7070         (fold_stmt): ... this and ...
7071         (fold_stmt_inplace): ... this.
7072         (fold_stmt_1): Fold references in calls and asms.
7073         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
7074
7075 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
7076
7077         * tree-vrp.c (ssa_name_nonzero_p): Remove.
7078         * tree.h: Remove the prototype for ssa_name_nonzero_p.
7079
7080 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
7081
7082         * tree.c (function_args_count): Remove.
7083         * tree.h: Remove the prototype for function_args_count.
7084
7085 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
7086
7087         * tree-iterator.c (expr_only): Remove.
7088         * tree.h: Remove the prototype for expr_only.
7089
7090 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
7091
7092         * reginfo.c (cannot_change_mode_set_regs): Remove.
7093         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
7094
7095 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
7096
7097         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
7098         whether operands 0 and 1 overlaps.
7099
7100 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7101
7102         PR middle-end/36902
7103         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
7104         pointer. Use warning_at instead of warning.
7105         (search_for_addr_array): Likewise.
7106         (check_array_bounds): Likewise.
7107         (check_all_array_refs): Check that the incoming edge is not in the
7108         list of edges to be removed.
7109         (check_all_array_refs): Avoid the temporal pointer.
7110         (vrp_visit_cond_stmt): Fix typo.
7111         (simplify_switch_using_ranges): Handle the case where the switch
7112         index is an integer constant.
7113
7114 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
7115
7116         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
7117
7118 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
7119
7120         * doc/extend.texi, doc/invoke.texi: Fix typos.
7121
7122 2009-04-17  Cary Coutant  <ccoutant@google.com>
7123
7124         * tree-flow-inline.h (get_lineno): Fix inverted test.
7125
7126 2009-04-17  Diego Novillo  <dnovillo@google.com>
7127
7128         * tree-ssa-pre.c (create_expression_by_pieces): Remove
7129         assertion for AVAIL_OUT.
7130
7131 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
7132
7133         PR target/38627
7134         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
7135         * config/sh/linux-atomic.asm: Likewise.
7136
7137 2009-04-17  Diego Novillo  <dnovillo@google.com>
7138
7139         * except.c (debug_eh_tree): New.
7140         (struct eh_region, struct eh_status): Move ...
7141         * except.h: ... here.
7142         (add_type_for_runtime): Declare extern.
7143         (lookup_type_for_runtime): Likewise.
7144         (debug_eh_tree): Declare.
7145         * Makefile.in (GTFILES): List except.h before except.c
7146
7147 2009-04-17  Diego Novillo  <dnovillo@google.com>
7148
7149         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
7150         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7151         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
7152         (find_vars_r): ... here.
7153         * tree-flow.h (find_referenced_vars_in): Declare.
7154         * tree-ssa-pre.c (create_expression_by_pieces): Assert
7155         that AVAIL_OUT exists for BLOCK.
7156         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
7157         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
7158         (tree-parloops.o): Likewise.
7159
7160 2009-04-17  Simon Baldwin  <simonb@google.com>
7161
7162         * toplev.c (default_tree_printer): Add handling for %E format.
7163
7164 2009-04-17  Diego Novillo  <dnovillo@google.com>
7165
7166         * tree-pretty-print.c (dump_generic_node): Add break after
7167         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
7168         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
7169         FUNCTION_TYPE together.  Call print_struct_decl when printing
7170         structures and TDF_SLIM is not given.
7171         (print_struct_decl): Fix logic for detecting recursion.
7172
7173 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
7174
7175         PR 31567
7176         * gcc.c (create_at_file): New.
7177         (compile_input_file_p): New.
7178         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
7179         * main.c (main): Update call to toplev_main.
7180         * toplev.c (toplev_main): Change signature. Call expandargv.
7181         * toplev.h (toplev_main): Change signature.
7182
7183 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
7184
7185         * dwarf2out.c (field_byte_offset): Use the type size as the field size
7186         if the latter is not constant.
7187
7188 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
7189
7190         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
7191
7192 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
7193
7194         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
7195         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
7196
7197 2009-04-17  Richard Guenther  <rguenther@suse.de>
7198
7199         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7200         Handle component references view-converting an invariant address.
7201
7202 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
7203
7204         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
7205         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
7206         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
7207         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
7208         Use @deftypevr rather than @deftypevar.
7209
7210 2009-04-17  Richard Guenther  <rguenther@suse.de>
7211
7212         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7213         (get_prop_source_stmt): Likewise.
7214         (can_propagate_from): Likewise.
7215
7216 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
7217
7218         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
7219         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
7220         (--with-multilib-list): Add default value.
7221         * configure: Regenerate.
7222         * Makefile.in (TM_ENDIAN_CONFIG): Define.
7223         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
7224         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
7225         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
7226         Don't add default cpu to multilib list unnecessarily, but do enable
7227         the relevant compiler option..
7228         Add support for --with-multilib-list=<blank> and
7229         --with-multilib-list=!<somelib> to supress unwanted multilibs.
7230         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
7231         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
7232         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
7233         TM_MULTILIB_CONFIG.
7234         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
7235         (MULTILIB_OSDIRNAMES): New variable.
7236         * config/sh/t-1e: Delete file.
7237         * config/sh/t-mlib-sh1: Delete file.
7238         * config/sh/t-mlib-sh2: Delete file.
7239         * config/sh/t-mlib-sh2a: Delete file.
7240         * config/sh/t-mlib-sh2a-nofpu: Delete file.
7241         * config/sh/t-mlib-sh2a-single: Delete file.
7242         * config/sh/t-mlib-sh2a-single-only: Delete file.
7243         * config/sh/t-mlib-sh2e: Delete file.
7244         * config/sh/t-mlib-sh3e: Delete file.
7245         * config/sh/t-mlib-sh4: Delete file.
7246         * config/sh/t-mlib-sh4-nofpu: Delete file.
7247         * config/sh/t-mlib-sh4-single: Delete file.
7248         * config/sh/t-mlib-sh4-single-only: Delete file.
7249         * config/sh/t-mlib-sh4a: Delete file.
7250         * config/sh/t-mlib-sh4a-nofpu: Delete file.
7251         * config/sh/t-mlib-sh4a-single: Delete file.
7252         * config/sh/t-mlib-sh4a-single-only: Delete file.
7253         * config/sh/t-mlib-sh4al: Delete file.
7254         * config/sh/t-mlib-sh5-32media: Delete file.
7255         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
7256         * config/sh/t-mlib-sh5-64media: Delete file.
7257         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
7258         * config/sh/t-mlib-sh5-compact: Delete file.
7259         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
7260         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
7261         * doc/install.texi (Options specification): Add
7262         --with-multilib-list and --with-endian.
7263
7264 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
7265
7266         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
7267         REVISION_c.
7268         (OBJS-common): Add plugin-version.o.
7269         (plugin-version.o): New.
7270         * gcc-plugin.h (plugin_gcc_version): New.
7271         (plugin_default_version_check): New.
7272         (plugin_init_func, plugin_init): Add version argument.
7273         * plugin-version.c: New.
7274         * plugin.c (str_plugin_gcc_version_name): New.
7275         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
7276         pass it to the init function.
7277         (plugin_default_version_check): New.
7278
7279 2009-04-17  Richard Guenther  <rguenther@suse.de>
7280
7281         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
7282         for decl-vs-decl disambiguation.
7283
7284 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7285
7286         * config/s390/s390.h (s390_tune_attr): New macro definition.
7287         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
7288
7289 2009-04-17  Richard Guenther  <rguenther@suse.de>
7290
7291         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
7292         (fold_stmt_r): Likewise.
7293         (maybe_fold_reference): New function.
7294         (fold_gimple_assign): Handle cases fold_stmt_r did.
7295         (fold_stmt): Do not use fold_stmt_r.
7296         (fold_stmt_inplace): Likewise.
7297
7298 2009-04-17  Richard Guenther  <rguenther@suse.de>
7299
7300         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
7301         (record_equivalences_from_stmt): Remove useless checks and
7302         simplifications.
7303         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
7304         the type is already suitable.
7305
7306 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
7307
7308         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
7309
7310 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
7311
7312         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
7313         (CMPtype): Define as __gcc_CMPtype.
7314
7315 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
7316
7317         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
7318         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
7319
7320 2009-04-17  Richard Guenther  <rguenther@suse.de>
7321
7322         PR tree-optimization/39746
7323         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
7324         special-casing for builtins and static variable use/def.
7325         (call_may_clobber_ref_p_1): Likewise.
7326
7327 2009-04-16  Ian Lance Taylor  <iant@google.com>
7328
7329         * df.h: Include "timevar.h".
7330         (struct df_problem): Change tv_id field to timevar_id_t.
7331         * tree-pass.h: Include "timevar.h".
7332         (struct opt_pass): Change tv_id field to timevar_id_t.
7333         * timevar.h (timevar_id_t): Define TV_NONE.
7334         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
7335         TV_NONE rather than tv_id != 0.
7336         (execute_one_pass): Likewise.
7337         * Makefile.in (DF_H): Add $(TIMEVAR_H).
7338         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
7339         dependencies to $(TREE_PASS_H).
7340         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
7341         to TV_NONE.
7342         (pass_branch_target_load_optimize2): Likewise.
7343         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
7344         (pass_outof_cfg_layout_mode): Likewise.
7345         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
7346         (pass_rebuild_cgraph_edges): Likewise.
7347         (pass_remove_cgraph_callee_edges): Likewise.
7348         * df-core.c (pass_df_initialize_opt): Likewise.
7349         (pass_df_initialize_no_opt): Likewise.
7350         (pass_df_finish): Likewise.
7351         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
7352         * except.c (pass_set_nothrow_function_flags): Likewise.
7353         (pass_convert_to_eh_region_ranges): Likewise.
7354         * final.c (pass_compute_alignments): Likewise.
7355         * function.c (pass_instantiate_virtual_regs): Likewise.
7356         (pass_init_function): Likewise.
7357         (pass_leaf_regs): Likewise.
7358         (pass_match_asm_constraints): Likewise.
7359         * gimple-low.c (pass_lower_cf): Likewise.
7360         (pass_mark_used_blocks): Likewise.
7361         * init-regs.c (pass_initialize_regs): Likewise.
7362         * integrate.c (pass_initial_value_sets): Likewise.
7363         * ira.c (pass_ira): Likewise.
7364         * jump.c (pass_cleanup_barriers): Likewise.
7365         * omp-low.c (pass_expand_omp): Likewise.
7366         (pass_lower_omp): Likewise.
7367         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
7368         * recog.c (pass_split_all_insns): Likewise.
7369         (pass_split_after_reload): Likewise.
7370         (pass_split_before_regstack): Likewise.
7371         (pass_split_before_sched2): Likewise.
7372         (pass_split_for_shorten_branches): Likewise.
7373         * reginfo.c (pass_reginfo_init): Likewise.
7374         (pass_subregs_of_mode_init): Likewise.
7375         (pass_subregs_of_mode_finish): Likewise.
7376         * passes.c (pass_postreload): Likewise.
7377         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
7378         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
7379         (pass_warn_function_return): Likewise.
7380         (pass_warn_function_noreturn): Likewise.
7381         * tree-complex.c (pass_lower_complex): Likewise.
7382         (pass_lower_complex_O0): Likewise.
7383         * tree-if-conv.c (pass_if_conversion): Likewise.
7384         * tree-into-ssa.c (pass_build_ssa): Likewise.
7385         * tree-mudflap.c (pass_mudflap_1): Likewise.
7386         (pass_mudflap_2): Likewise.
7387         * tree-nomudflap.c (pass_mudflap_1): Likewise.
7388         (pass_mudflap_2): Likewise.
7389         * tree-nrv.c (pass_return_slot): Likewise.
7390         * tree-object-size.c (pass_object_sizes): Likewise.
7391         * tree-optimize.c (pass_all_optimizations): Likewise.
7392         (pass_early_local_passes): Likewise.
7393         (pass_all_early_optimizations): Likewise.
7394         (pass_cleanup_cfg): Likewise.
7395         (pass_cleanup_cfg_post_optimizing): Likewise.
7396         (pass_free_datastructures): Likewise.
7397         (pass_free_cfg_annotations): Likewise.
7398         (pass_fixup_cfg): Likewise.
7399         (pass_init_datastructures): Likewise.
7400         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7401         (pass_late_warn_uninitialized): Likewise.
7402         (pass_update_address_taken): Likewise.
7403         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7404         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7405         (pass_cse_sincos): Likewise.
7406         (pass_convert_to_rsqrt): Likewise.
7407         * tree-ssa-structalias.c (pass_build_alias): Likewise.
7408         * tree-stdarg.c (pass_stdarg): Likewise.
7409         * tree-tailcall.c (pass_tail_recursion): Likewise.
7410         (pass_tail_calls): Likewise.
7411         * tree-vect-generic.c (pass_lower_vector): Likewise.
7412         (pass_lower_vector_ssa): Likewise.
7413         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7414
7415 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
7416
7417         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7418         XLR entry.
7419         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7420         Handle -march=xlr.
7421         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7422         logical and signext.
7423
7424 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7425
7426         PR target/39767
7427         * config/sh/predicates.md (arith_operand): Check if the operand
7428         of TRUNCATE is a REG.
7429
7430 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7431
7432         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7433         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7434
7435 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7436
7437         * tree-iterator.c (tsi_split_statement_list_after,
7438         tsi_split_statement_list_before): Remove.
7439         * tree-iterator.h: Remove the prototypes for
7440         tsi_split_statement_list_after and tsi_split_statement_list_before.
7441
7442 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7443
7444         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7445         * tree-ssa-propagate.h: Remove the prototype for
7446         stmt_makes_single_load.
7447
7448 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7449
7450         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7451         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7452
7453 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7454
7455         * tree-iterator.c (EXPR_LAST_BODY): Remove.
7456
7457 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7458
7459         * except.c (eh_region_outer_p): Remove.
7460         * except.h: Remove the prototype for eh_region_outer_p.
7461
7462 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7463
7464         * function.c (current_function_assembler_name): Remove.
7465         * function.h: Remove the prototype for
7466         current_function_assembler_name.
7467
7468 2009-04-16  Ian Lance Taylor  <iant@google.com>
7469
7470         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
7471         (add_reg_note): Call alloc_reg_note.
7472         * rtl.h (alloc_reg_note): Declare.
7473         * combine.c (try_combine): Use alloc_reg_note.
7474         (recog_for_combine, move_deaths): Likewise.
7475         (distribute_notes): Use alloc_reg_note and add_reg_note.
7476         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7477         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7478         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7479
7480 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
7481
7482         PR rtl-optimization/39762
7483         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7484         ira_may_move_out_cost): Add comments about way of their usage.
7485         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
7486
7487         * ira-conflicts.c (process_regs_for_copy): Use function
7488         ira_get_register_move_cost instead of global
7489         ira_register_move_cost.
7490
7491         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7492         color_pass, move_spill_restore, update_curr_costs): Ditto.
7493
7494         * ira-lives.c (process_single_reg_class_operands): Ditto.
7495
7496         * ira-emit.c (emit_move_list): Ditto.
7497
7498         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7499         (record_reg_classes): Ditto.  Use functions
7500         ira_get_register_move_cost and ira_get_may_move_cost instead of
7501         global vars ira_register_move_cost, ira_may_move_out_cost and
7502         ira_may_move_in_cost.
7503         (record_address_regs): Don't call ira_init_register_move_cost.
7504         Use function ira_get_may_move_cost instead of global
7505         ira_may_move_in_cost.
7506         (process_bb_node_for_hard_reg_moves): Use function
7507         ira_get_register_move_cost instead of global ira_register_move_cost.
7508         (ira_costs): Don't call ira_init_register_move_cost.
7509
7510 2009-04-16  Richard Guenther  <rguenther@suse.de>
7511
7512         * tree-cfg.c (verify_gimple_assign_binary):
7513         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7514         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7515         (create_general_new_stmt): Note that this function is broken.
7516
7517 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7518
7519         * common.opt (fhelp): Add Var(help_flag).
7520         * gcc-plugin.h (plugin_info): Add help.
7521         * plugin.c (plugin_name_args): Add help.
7522         (register_plugin_info): Set plugin->help.
7523         (print_help_one_plugin): New.
7524         (print_plugins_help): New.
7525         * plugin.h (print_plugins_help): New.
7526         * toplev.c (toplev_main): Call print_plugins_help if needed.
7527
7528 2009-04-16  Richard Guenther  <rguenther@suse.de>
7529
7530         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7531         (gimple_ior_addresses_taken_1): New function.
7532         (gimple_ior_addresses_taken): Likewise.
7533         * gimple.h (struct gimple_statement_with_ops_base): Remove
7534         addresses_taken member.
7535         (gimple_ior_addresses_taken): Declare.
7536         (gimple_addresses_taken, gimple_addresses_taken_ptr,
7537         gimple_set_addresses_taken): Remove.
7538         * ipa-reference.c (mark_address): New function.
7539         (scan_stmt_for_static_refs): Use it for marking addresses taken.
7540         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7541         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
7542         (gimple_add_to_addresses_taken): Remove.
7543         (get_tmr_operands): Call mark_address_taken.
7544         (get_asm_expr_operands): Likewise.
7545         (get_expr_operands): Likewise.
7546         (build_ssa_operands): Do not clear the addresses_taken bitmap.
7547         (free_stmt_operands): Do not free it.
7548         * tree-ssa.c (delete_tree_ssa): Likewise.
7549         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7550
7551 2009-04-16  Richard Guenther  <rguenther@suse.de>
7552
7553         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7554         (walk_stmt_load_store_ops): Likewise.
7555         * gimple.c (get_base_loadstore): New function.
7556         (walk_stmt_load_store_addr_ops): Likewise.
7557         (walk_stmt_load_store_ops): Likewise.
7558         * ipa-pure-const.c (check_op): Simplify.
7559         (check_load, check_store): New functions.
7560         (check_stmt): Use walk_stmt_load_store_ops.
7561         * ipa-reference.c (mark_load): Adjust signature.
7562         (mark_store): Likewise.
7563         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7564
7565 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7566
7567         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7568         (plugin_info): New.
7569         * opts.c (common_handle_option): Don't call print_version.
7570         * plugin.c (plugin_name_args): Add version.
7571         (register_plugin_info): New.
7572         (register_callback): Handle PLUGIN_INFO.
7573         (try_init_one_plugin): New.
7574         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7575         if failed to init.
7576         (finalize_one_plugin): New.
7577         (finalize_plugins): New.
7578         (print_one_plugin): New.
7579         (print_plugins_versions): New.
7580         * plugin.h (print_plugins_versions): New.
7581         (finalize_plugins): New.
7582         * toplev.c (compile_file): Don't call initialize_plugins.
7583         (print_version): Call print_plugins_versions.
7584         (toplev_main): Call initialize_plugins. Print version if needed.
7585         Call finalize_plugins.
7586
7587 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7588
7589         * common.opt (fversion): New.
7590         * gcc.c (print_version): New.
7591         (process_command): Don't print the version. Just set print_version.
7592         (main): Print version. Call subprocesses if print_version and
7593         verbose_flag are set.
7594         * opts.c (common_handle_option): Handle OPT_fversion.
7595
7596 2009-04-16  Richard Guenther  <rguenther@suse.de>
7597             Ira Rosen  <irar@il.ibm.com>
7598
7599         PR tree-optimization/39698
7600         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7601         type of the reduction variable.  Only generate the def if
7602         it is needed.
7603
7604         * omp-low.c (expand_omp_for_generic): When converting to a pointer
7605         make sure to first convert to an integer of the same precision.
7606         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7607         the type of the evolution correctly in computing the new
7608         induction variable base.
7609
7610 2009-04-16  Richard Guenther  <rguenther@suse.de>
7611
7612         PR middle-end/39625
7613         * tree-cfg.c (make_blocks): Split statements with to-be
7614         abnormal SSA names on the lhs.
7615
7616 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
7617
7618         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7619         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7620         * c-typeck.c (really_start_incremental_init): Likewise.
7621         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7622         (TARGET_INITIALIZER): Remove it.
7623         * target.h (struct target): Remove vector_opaque_p.
7624         * tree.c (build_opaque_vector_type): New.
7625         * tree.h (TYPE_VECTOR_OPAQUE): New.
7626         (build_opaque_vector_type): Declare.
7627         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7628         * config/rs6000/rs6000.c (build_opaque_vector_type,
7629         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7630         (rs6000_init_builtins): Use build_opaque_vector_type for
7631         opaque_V4SI_type_node.
7632
7633 2009-04-15  Catherine Moore  <clm@codesourcery.com>
7634
7635         * debug.h (set_name):  Declare.
7636         * dwarf2out.c (dwarf2out_set_name): Declare.
7637         (dwarf2_debug_hooks): Add set_name.
7638         (find_AT_string): New.
7639         (add_AT_string): Call find_AT_string.
7640         (dwarf2out_set_name): New.
7641         * cp/decl.c (grokdeclarator): Call set_name.
7642         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7643         * debug.c (do_nothing_debug_hooks):  Likewise.
7644         * dbxout.c (dbx_debug_hooks): Likewise.
7645         * sdbout.c (sdb_debug_hooks): Likewise.
7646
7647 2009-04-15  Michael Eager  <eager@eagercon.com>
7648
7649         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7650         reg for single-precision FPU.
7651         * config/rs6000/rs6000.md (movsi_internal1): Only for
7652         !TARGET_SINGLE_FPU.
7653         (movsi_internal1_single): New. Add pattern to move SI values to/from
7654         single-precision FP regs.
7655
7656 2009-04-15  Richard Guenther  <rguenther@suse.de>
7657
7658         * omp-low.c (lower_rec_input_clauses): Build correct address
7659         expressions.
7660         (expand_omp_for_generic): Fix multiplication type.
7661         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
7662         (generate_memset_zero): Fix types.
7663         * tree-profile.c (prepare_instrumented_value): Correctly
7664         widen a pointer.
7665
7666 2009-04-15  Ian Lance Taylor  <iant@google.com>
7667
7668         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
7669         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7670         for -Wall and for -Wc++-compat.
7671         (c_common_post_options): For C++, set warn_enum_compare if not
7672         already set.
7673         * c-tree.h (struct c_expr): Add field original_type.
7674         (build_external_ref): Update declaration.
7675         * c-parser.c (c_parser_braced_init): Set original_type.
7676         (c_parser_initelt): Likewise.
7677         (c_parser_expr_no_commas): Likewise.
7678         (c_parser_conditional_expression): Likewise.
7679         (c_parser_cast_expression): Likewise.
7680         (c_parser_unary_expression): Likewise.  Pull setting of
7681         original_code to top of function.
7682         (c_parser_sizeof_expression): Set original_type.
7683         (c_parser_alignof_expression): Likewise.
7684         (c_parser_postfix_expression): Likewise.  Pull setting of
7685         original_code to top of function.
7686         (c_parser_postfix_expression_after_paren_type): Set original_type.
7687         (c_parser_postfix_expression_after_primary): Likewise.
7688         (c_parser_expression): Likewise.
7689         * c-typeck.c (build_external_ref): Add type parameter.  Change all
7690         callers.
7691         (c_expr_sizeof_expr): Set original_type field.
7692         (parser_build_unary_op): Likewise.
7693         (parser_build_binary_op): Likewise.  Optionally warn about
7694         comparisons of enums of different types.
7695         (digest_init): Set original_type field.
7696         (really_start_incremental_init): Likewise.
7697         (push_init_level, pop_init_level): Likewise.
7698         * doc/invoke.texi (Warning Options): -Wenum-compare now
7699         supported in C.
7700
7701 2009-04-15  Richard Guenther  <rguenther@suse.de>
7702
7703         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7704         out a necessary conversion.
7705         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7706         names we didn't value number.
7707         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7708
7709 2009-04-15  Richard Guenther  <rguenther@suse.de>
7710
7711         PR tree-optimization/39764
7712         * tree-ssa-ccp.c (get_value): Canonicalize value with
7713         canonicalize_float_value.
7714
7715 2009-04-15  Jan Hubicka  <jh@suse.cz>
7716
7717         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7718         Wrong version of patch.
7719
7720 2009-04-15  Jan Hubicka  <jh@suse.cz>
7721
7722         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7723
7724 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
7725
7726         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7727         our distinct integral and vector types.
7728
7729 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
7730
7731         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7732         * init.c (build_vtbl_address): Remove call to assemble_external.
7733
7734 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
7735
7736         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7737         output for other floating point modes.
7738
7739 2009-04-14  Diego Novillo  <dnovillo@google.com>
7740
7741         * diagnostic.c (diagnostic_report_diagnostic): Do not
7742         warn about loaded plugins for DK_ERROR and DK_WARNING.
7743         * c-decl.c (declspecs_add_type): Move call to
7744         invoke_plugin_callbacks ...
7745         * c-parser.c (c_parser_declspecs): ... here.
7746         * plugin.c (dump_active_plugins): Tidy output.
7747
7748 2009-04-14  Diego Novillo  <dnovillo@google.com>
7749             Le-Chun Wu  <lcwu@google.com>
7750
7751         * configure.ac: Add --enable-plugin support.
7752         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7753         * Makefile.in (PLUGIN_H): Define.
7754         Export ENABLE_PLUGIN and GMPINC to site.exp.
7755         Add PLUGINLIBS to link command.
7756         Add/modify dependencies for plugin.o and files including plugin.h.
7757         (plugin.o): New.
7758         * config.in: Regenerate.
7759
7760         * opts.c (common_handle_option): Handle OPT_fplugin_ and
7761         OPT_fplugin_arg_.
7762
7763 2009-04-14  Le-Chun Wu  <lcwu@google.com>
7764
7765         * tree-pass.h (register_one_dump_file): Add a prototype for
7766         register_one_dump_file.
7767         * toplev.c (compile_file): Call initialize_plugins.
7768         (do_compile): Call invoke_plugin_callbacks.
7769         (toplev_main): Call invoke_plugin_callbacks.
7770         * common.opt: Add -fplugin= and -fplugin-arg-.
7771         * gcc-plugin.h: New public header file for plugins to include.
7772         * plugin.c: New source file.
7773         * plugin.h: New internal header file.
7774         * passes.c (register_one_dump_file): Make it external.
7775
7776         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7777
7778 2009-04-14  Diego Novillo  <dnovillo@google.com>
7779
7780         * doc/plugins.texi: New.
7781         * doc/gccint.texi: Add reference to Plugins chapter.
7782         * doc/invoke.texi: Document -fplugin and -fplugin-arg
7783         * diagnostic.c (diagnostic_report_diagnostic): Warn about
7784         loaded plugins, if any.
7785         * timevar.def (TV_PLUGIN_INIT): Define.
7786         (TV_PLUGIN_RUN): Define.
7787         * plugin.c: Include timevar.h
7788         (plugins_active_p): New.
7789         (dump_active_plugins): New.
7790         (debug_active_plugins): New.
7791
7792 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
7793
7794         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7795         library paths.
7796         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7797
7798 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
7799
7800         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7801         the same as a minus without a shift.
7802
7803 2009-04-14  Nick Clifton  <nickc@redhat.com>
7804
7805         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7806         comparisons with small integers will always produce a short
7807         branch.
7808
7809 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
7810
7811         Merge:
7812         2008-12-19  Diego Novillo  <dnovillo@google.com>
7813
7814         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
7815
7816 2009-04-14  Richard Guenther  <rguenther@suse.de>
7817
7818         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7819         verification.
7820         (verify_gimple_assign_binary): Likewise.  Handle shifts and
7821         rotates correctly.
7822         (verify_gimple_phi): Print the mismatched argument position.
7823         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7824         Fix types.
7825         (vect_update_init_of_dr): Likewise.
7826         * matrix-reorg.c (transform_access_sites): Do what the
7827         comment suggests.
7828         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7829
7830 2009-04-13  Michael Eager  <eager@eagercon.com>
7831
7832         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7833         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7834         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
7835         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
7836         remove duplicate config
7837
7838 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
7839
7840         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7841         file_name:line_number type locator of the call site.
7842
7843 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
7844
7845         * genautomata.c: Put blank after comma.
7846         (automaton_decls): New.
7847         (struct unit_usage): Add comments to member next.
7848         (store_alt_unit_usage): Keep the list ordered.
7849         (unit_present_on_list_p, equal_alternatives_p): New.
7850         (check_regexp_units_distribution): Check units distribution
7851         correctness correctly.
7852         (main): Don't write automata if error is found.  Return correct
7853         exit code.
7854
7855         * config/m68k/cf.md (cfv4_ds): Remove.
7856         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7857         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7858
7859         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7860         power4-load-ext, power4-store, power4-store-update,
7861         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7862         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7863         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7864         power4-sqrt, power4-isync): Modify reservation to make correct
7865         unit distribution to automata.
7866
7867         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7868         power5-store-update, power5-two, power5-three, power5-lmul,
7869         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
7870
7871 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
7872
7873         * except.c (pass_set_nothrow_function_flags): Set name and add
7874         TODO_dump_func.
7875         (set_nothrow_function_flags): Mention in the dump file when
7876         changing a function to nothrow.
7877
7878 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
7879
7880         PR/39066
7881         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7882         instead of unsigned long.
7883
7884 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7885
7886         * config/arm/arm.c (return_used_this_function): Remove.
7887         (arm_output_function_prologue): Remove use of
7888         return_used_this_function.
7889         (output_return_instruction): Replace use of
7890         return_used_this_function
7891         by cfun->machine->return_used_this_function.
7892         (arm_output_epilogue): Likewise.
7893         (arm_output_function_epilogue): Likewise.
7894         (thumb_unexpanded_epilogue): Likewise.
7895         * config/arm/arm.h (struct machine_function):
7896         New member return_used_this_function.
7897
7898 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
7899
7900         * doc/install.texi: Correct description of default directory for
7901         --with-gxx-include-dir.
7902
7903 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
7904
7905         * fold-const.c (build_range_check): Properly deal with enumeral and
7906         boolean base types.
7907
7908 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
7909
7910         * doc/invoke.texi (max_gcse_passes): Remove documentation.
7911         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7912         * params.h (MAX_GCSE_PASSES): Remove.
7913         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7914         in sequence.  Remove ability to run multiple passes.
7915         (bypass_jumps): Report run as third CPROP pass.
7916
7917 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
7918
7919         PR middle-end/39651
7920         * except.c (can_throw_external): Look at each insn in a SEQUENCE
7921         when deciding whether the whole SEQUENCE can throw.
7922
7923 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
7924
7925         PR target/39740
7926         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7927         offseted label references.
7928
7929 2009-04-11  Jan Hubicka  <jh@suse.cz>
7930
7931         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7932
7933 2009-04-11  Richard Guenther  <rguenther@suse.de>
7934
7935         PR middle-end/39732
7936         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7937         return variables as TREE_ADDRESSABLE.
7938
7939 2009-04-11  Richard Guenther  <rguenther@suse.de>
7940
7941         PR tree-optimization/39713
7942         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7943         reference trees have SSA_NAME operands.
7944
7945 2009-04-11  Richard Guenther  <rguenther@suse.de>
7946
7947         PR c/39712
7948         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7949         address expressions.
7950
7951 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7952
7953         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
7954         match changes in Cygwin 1.7
7955         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7956         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
7957
7958 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7959
7960         PR tree-optimization/39701
7961         * doc/invoke.texi (Optimization Options): Document change in
7962         meaning and initialization of -fdelete-null-pointer-checks.
7963
7964 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7965
7966         PR middle-end/39701
7967         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7968
7969         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7970         here.
7971
7972         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7973
7974 2009-04-10  Chao-ying Fu  <fu@mips.com>
7975
7976         * doc/tm.texi (Instruction Output): Document
7977         TARGET_ASM_FINAL_POSTSCAN_INSN.
7978         * target.h (final_postscan_insn): New field in asm_out.
7979         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7980         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7981         * final.c (final_scan_insn): Call
7982         targetm.asm_out.final_postscan_insn after outputting
7983         an asm macro and a normal instruction.
7984
7985         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7986         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7987         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7988         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7989         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7990
7991 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7992
7993         PR middle-end/39701
7994         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7995         variables as non-NULL even with -fdelete-null-pointer-checks.
7996
7997 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7998
7999         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
8000
8001 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
8002
8003         PR target/39678
8004         * config/i386/i386.c (classify_argument): Handle SCmode with
8005         (bit_offset % 64) != 0.
8006
8007 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
8008
8009         * doc/invoke.texi (Optimize Options): Add cross-reference to
8010         -Q --help=optimizers examples.
8011
8012 2009-04-10  Ben Elliston  <bje@au.ibm.com>
8013
8014         PR target/36800
8015         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
8016         regalign for the reg == fpr and TDmode case.
8017
8018 2009-04-09  David Ayers  <ayers@fsfe.org>
8019
8020         PR objc/29200
8021         * objc/objc-act.c (warn_with_method): Remove helper function.
8022         (check_duplicates): Call warning and inform directly.
8023         (really_start_method): Likewise.
8024
8025 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
8026
8027         * expmed.c (expand_divmod): Always use a comparison for a division
8028         by a large unsigned integer.
8029
8030         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
8031         for things others than variables or functions as nonzero.
8032
8033 2009-04-09  Nick Clifton  <nickc@redhat.com>
8034
8035         * unwind-compat.c: Change copyright header to refer to version
8036         3 of the GNU General Public License with version 3.1 of the
8037         GCC Runtime Library Exception and to point readers at the
8038         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
8039         * config/alpha/crtfastmath.c: Likewise.
8040         * config/alpha/linux-unwind.h: Likewise.
8041         * config/alpha/qrnnd.asm: Likewise.
8042         * config/alpha/vms-crt0-64.c: Likewise.
8043         * config/alpha/vms-crt0.c: Likewise.
8044         * config/alpha/vms-dwarf2.asm: Likewise.
8045         * config/alpha/vms-dwarf2eh.asm: Likewise.
8046         * config/alpha/vms-psxcrt0-64.c: Likewise.
8047         * config/alpha/vms-psxcrt0.c: Likewise.
8048         * config/alpha/vms_tramp.asm: Likewise.
8049         * config/arc/initfini.c: Likewise.
8050         * config/arc/lib1funcs.asm: Likewise.
8051         * config/arm/bpabi-v6m.S: Likewise.
8052         * config/arm/bpabi.S: Likewise.
8053         * config/arm/bpabi.c: Likewise.
8054         * config/arm/crti.asm: Likewise.
8055         * config/arm/crtn.asm: Likewise.
8056         * config/arm/ieee754-df.S: Likewise.
8057         * config/arm/ieee754-sf.S: Likewise.
8058         * config/arm/lib1funcs.asm: Likewise.
8059         * config/arm/libunwind.S: Likewise.
8060         * config/arm/linux-atomic.c: Likewise.
8061         * config/arm/mmintrin.h: Likewise.
8062         * config/arm/pr-support.c: Likewise.
8063         * config/arm/unaligned-funcs.c: Likewise.
8064         * config/arm/unwind-arm.c: Likewise.
8065         * config/arm/unwind-arm.h: Likewise.
8066         * config/avr/libgcc.S: Likewise.
8067         * config/bfin/crti.s: Likewise.
8068         * config/bfin/crtlibid.s: Likewise.
8069         * config/bfin/crtn.s: Likewise.
8070         * config/bfin/lib1funcs.asm: Likewise.
8071         * config/bfin/linux-unwind.h: Likewise.
8072         * config/cris/arit.c: Likewise.
8073         * config/cris/cris_abi_symbol.c: Likewise.
8074         * config/darwin-64.c: Likewise.
8075         * config/darwin-crt2.c: Likewise.
8076         * config/darwin-crt3.c: Likewise.
8077         * config/darwin.h: Likewise.
8078         * config/dbxelf.h: Likewise.
8079         * config/dfp-bit.c: Likewise.
8080         * config/dfp-bit.h: Likewise.
8081         * config/elfos.h: Likewise.
8082         * config/fixed-bit.c: Likewise.
8083         * config/fixed-bit.h: Likewise.
8084         * config/fp-bit.c: Likewise.
8085         * config/fp-bit.h: Likewise.
8086         * config/fr30/crti.asm: Likewise.
8087         * config/fr30/crtn.asm: Likewise.
8088         * config/fr30/lib1funcs.asm: Likewise.
8089         * config/freebsd-spec.h: Likewise.
8090         * config/frv/cmovd.c: Likewise.
8091         * config/frv/cmovh.c: Likewise.
8092         * config/frv/cmovw.c: Likewise.
8093         * config/frv/frvbegin.c: Likewise.
8094         * config/frv/frvend.c: Likewise.
8095         * config/frv/lib1funcs.asm: Likewise.
8096         * config/glibc-stdint.h: Likewise.
8097         * config/h8300/clzhi2.c: Likewise.
8098         * config/h8300/crti.asm: Likewise.
8099         * config/h8300/crtn.asm: Likewise.
8100         * config/h8300/ctzhi2.c: Likewise.
8101         * config/h8300/fixunssfsi.c: Likewise.
8102         * config/h8300/lib1funcs.asm: Likewise.
8103         * config/h8300/parityhi2.c: Likewise.
8104         * config/h8300/popcounthi2.c: Likewise.
8105         * config/i386/ammintrin.h: Likewise.
8106         * config/i386/att.h: Likewise.
8107         * config/i386/avxintrin.h: Likewise.
8108         * config/i386/biarch64.h: Likewise.
8109         * config/i386/bmmintrin.h: Likewise.
8110         * config/i386/cpuid.h: Likewise.
8111         * config/i386/cross-stdarg.h: Likewise.
8112         * config/i386/crtfastmath.c: Likewise.
8113         * config/i386/crtprec.c: Likewise.
8114         * config/i386/cygming-crtbegin.c: Likewise.
8115         * config/i386/cygming-crtend.c: Likewise.
8116         * config/i386/cygwin.asm: Likewise.
8117         * config/i386/emmintrin.h: Likewise.
8118         * config/i386/gmm_malloc.h: Likewise.
8119         * config/i386/gthr-win32.c: Likewise.
8120         * config/i386/i386.h: Likewise.
8121         * config/i386/immintrin.h: Likewise.
8122         * config/i386/linux-unwind.h: Likewise.
8123         * config/i386/linux64.h: Likewise.
8124         * config/i386/mm3dnow.h: Likewise.
8125         * config/i386/mmintrin-common.h: Likewise.
8126         * config/i386/mmintrin.h: Likewise.
8127         * config/i386/nmmintrin.h: Likewise.
8128         * config/i386/pmm_malloc.h: Likewise.
8129         * config/i386/pmmintrin.h: Likewise.
8130         * config/i386/smmintrin.h: Likewise.
8131         * config/i386/sol2-c1.asm: Likewise.
8132         * config/i386/sol2-ci.asm: Likewise.
8133         * config/i386/sol2-cn.asm: Likewise.
8134         * config/i386/sol2-gc1.asm: Likewise.
8135         * config/i386/tmmintrin.h: Likewise.
8136         * config/i386/unix.h: Likewise.
8137         * config/i386/w32-unwind.h: Likewise.
8138         * config/i386/wmmintrin.h: Likewise.
8139         * config/i386/x86-64.h: Likewise.
8140         * config/i386/x86intrin.h: Likewise.
8141         * config/i386/xmmintrin.h: Likewise.
8142         * config/ia64/crtbegin.asm: Likewise.
8143         * config/ia64/crtend.asm: Likewise.
8144         * config/ia64/crtfastmath.c: Likewise.
8145         * config/ia64/crti.asm: Likewise.
8146         * config/ia64/crtn.asm: Likewise.
8147         * config/ia64/fde-glibc.c: Likewise.
8148         * config/ia64/lib1funcs.asm: Likewise.
8149         * config/ia64/linux-unwind.h: Likewise.
8150         * config/ia64/quadlib.c: Likewise.
8151         * config/ia64/unwind-ia64.c: Likewise.
8152         * config/linux.h: Likewise.
8153         * config/m32c/m32c-lib1.S: Likewise.
8154         * config/m32c/m32c-lib2-trapv.c: Likewise.
8155         * config/m32c/m32c-lib2.c: Likewise.
8156         * config/m32r/initfini.c: Likewise.
8157         * config/m68hc11/larith.asm: Likewise.
8158         * config/m68hc11/m68hc11-crt0.S: Likewise.
8159         * config/m68k/cf.md: Likewise.
8160         * config/m68k/crti.s: Likewise.
8161         * config/m68k/crtn.s: Likewise.
8162         * config/m68k/lb1sf68.asm: Likewise.
8163         * config/m68k/linux-unwind.h: Likewise.
8164         * config/mcore/crti.asm: Likewise.
8165         * config/mcore/crtn.asm: Likewise.
8166         * config/mcore/lib1.asm: Likewise.
8167         * config/mips/linux-unwind.h: Likewise.
8168         * config/mips/loongson.h: Likewise.
8169         * config/mips/mips16.S: Likewise.
8170         * config/mmix/crti.asm: Likewise.
8171         * config/mmix/crtn.asm: Likewise.
8172         * config/pa/fptr.c: Likewise.
8173         * config/pa/hpux-unwind.h: Likewise.
8174         * config/pa/lib2funcs.asm: Likewise.
8175         * config/pa/linux-atomic.c: Likewise.
8176         * config/pa/linux-unwind.h: Likewise.
8177         * config/pa/milli64.S: Likewise.
8178         * config/pa/quadlib.c: Likewise.
8179         * config/pa/stublib.c: Likewise.
8180         * config/picochip/libgccExtras/adddi3.asm: Likewise.
8181         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
8182         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
8183         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
8184         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
8185         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
8186         * config/picochip/libgccExtras/divmod15.asm: Likewise.
8187         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
8188         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
8189         * config/picochip/libgccExtras/longjmp.asm: Likewise.
8190         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
8191         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
8192         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
8193         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
8194         * config/picochip/libgccExtras/setjmp.asm: Likewise.
8195         * config/picochip/libgccExtras/subdi3.asm: Likewise.
8196         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
8197         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
8198         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
8199         * config/rs6000/750cl.h: Likewise.
8200         * config/rs6000/altivec.h: Likewise.
8201         * config/rs6000/biarch64.h: Likewise.
8202         * config/rs6000/crtresfpr.asm: Likewise.
8203         * config/rs6000/crtresgpr.asm: Likewise.
8204         * config/rs6000/crtresxfpr.asm: Likewise.
8205         * config/rs6000/crtresxgpr.asm: Likewise.
8206         * config/rs6000/crtsavfpr.asm: Likewise.
8207         * config/rs6000/crtsavgpr.asm: Likewise.
8208         * config/rs6000/darwin-asm.h: Likewise.
8209         * config/rs6000/darwin-fallback.c: Likewise.
8210         * config/rs6000/darwin-fpsave.asm: Likewise.
8211         * config/rs6000/darwin-ldouble.c: Likewise.
8212         * config/rs6000/darwin-tramp.asm: Likewise.
8213         * config/rs6000/darwin-unwind.h: Likewise.
8214         * config/rs6000/darwin-vecsave.asm: Likewise.
8215         * config/rs6000/darwin-world.asm: Likewise.
8216         * config/rs6000/e500crtres32gpr.asm: Likewise.
8217         * config/rs6000/e500crtres64gpr.asm: Likewise.
8218         * config/rs6000/e500crtres64gprctr.asm: Likewise.
8219         * config/rs6000/e500crtrest32gpr.asm: Likewise.
8220         * config/rs6000/e500crtrest64gpr.asm: Likewise.
8221         * config/rs6000/e500crtresx32gpr.asm: Likewise.
8222         * config/rs6000/e500crtresx64gpr.asm: Likewise.
8223         * config/rs6000/e500crtsav32gpr.asm: Likewise.
8224         * config/rs6000/e500crtsav64gpr.asm: Likewise.
8225         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
8226         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
8227         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
8228         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
8229         * config/rs6000/eabi-ci.asm: Likewise.
8230         * config/rs6000/eabi-cn.asm: Likewise.
8231         * config/rs6000/eabi.asm: Likewise.
8232         * config/rs6000/linux-unwind.h: Likewise.
8233         * config/rs6000/linux64.h: Likewise.
8234         * config/rs6000/paired.h: Likewise.
8235         * config/rs6000/paired.md: Likewise.
8236         * config/rs6000/ppc64-fp.c: Likewise.
8237         * config/rs6000/ppu_intrinsics.h: Likewise.
8238         * config/rs6000/rs6000.h: Likewise.
8239         * config/rs6000/si2vmx.h: Likewise.
8240         * config/rs6000/sol-ci.asm: Likewise.
8241         * config/rs6000/sol-cn.asm: Likewise.
8242         * config/rs6000/spe.h: Likewise.
8243         * config/rs6000/spu2vmx.h: Likewise.
8244         * config/rs6000/sysv4.h: Likewise.
8245         * config/rs6000/tramp.asm: Likewise.
8246         * config/rs6000/vec_types.h: Likewise.
8247         * config/s390/linux-unwind.h: Likewise.
8248         * config/s390/tpf-unwind.h: Likewise.
8249         * config/score/crti.asm: Likewise.
8250         * config/score/crtn.asm: Likewise.
8251         * config/sh/crt1.asm: Likewise.
8252         * config/sh/crti.asm: Likewise.
8253         * config/sh/crtn.asm: Likewise.
8254         * config/sh/divtab-sh4-300.c: Likewise.
8255         * config/sh/divtab-sh4.c: Likewise.
8256         * config/sh/divtab.c: Likewise.
8257         * config/sh/lib1funcs-4-300.asm: Likewise.
8258         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
8259         * config/sh/lib1funcs.asm: Likewise.
8260         * config/sh/lib1funcs.h: Likewise.
8261         * config/sh/linux-atomic.asm: Likewise.
8262         * config/sh/linux-unwind.h: Likewise.
8263         * config/sh/shmedia.h: Likewise.
8264         * config/sh/sshmedia.h: Likewise.
8265         * config/sh/ushmedia.h: Likewise.
8266         * config/sparc/crtfastmath.c: Likewise.
8267         * config/sparc/linux-unwind.h: Likewise.
8268         * config/sparc/sol2-c1.asm: Likewise.
8269         * config/sparc/sol2-ci.asm: Likewise.
8270         * config/sparc/sol2-cn.asm: Likewise.
8271         * config/spu/divmodti4.c: Likewise.
8272         * config/spu/divv2df3.c: Likewise.
8273         * config/spu/float_disf.c: Likewise.
8274         * config/spu/float_unsdidf.c: Likewise.
8275         * config/spu/float_unsdisf.c: Likewise.
8276         * config/spu/float_unssidf.c: Likewise.
8277         * config/spu/mfc_multi_tag_release.c: Likewise.
8278         * config/spu/mfc_multi_tag_reserve.c: Likewise.
8279         * config/spu/mfc_tag_release.c: Likewise.
8280         * config/spu/mfc_tag_reserve.c: Likewise.
8281         * config/spu/mfc_tag_table.c: Likewise.
8282         * config/spu/multi3.c: Likewise.
8283         * config/spu/spu_internals.h: Likewise.
8284         * config/spu/spu_intrinsics.h: Likewise.
8285         * config/spu/spu_mfcio.h: Likewise.
8286         * config/spu/vec_types.h: Likewise.
8287         * config/spu/vmx2spu.h: Likewise.
8288         * config/stormy16/stormy16-lib2.c: Likewise.
8289         * config/svr4.h: Likewise.
8290         * config/sync.c: Likewise.
8291         * config/v850/lib1funcs.asm: Likewise.
8292         * config/vxlib-tls.c: Likewise.
8293         * config/vxlib.c: Likewise.
8294         * config/vxworks-dummy.h: Likewise.
8295         * config/xtensa/crti.asm: Likewise.
8296         * config/xtensa/crtn.asm: Likewise.
8297         * config/xtensa/ieee754-df.S: Likewise.
8298         * config/xtensa/ieee754-sf.S: Likewise.
8299         * config/xtensa/lib1funcs.asm: Likewise.
8300         * config/xtensa/lib2funcs.S: Likewise.
8301         * config/xtensa/linux-unwind.h: Likewise.
8302         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8303         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
8304         * coretypes.h: Likewise.
8305         * crtstuff.c: Likewise.
8306         * defaults.h: Likewise.
8307         * dwarf2.h: Likewise.
8308         * emutls.c: Likewise.
8309         * gbl-ctors.h: Likewise.
8310         * gcov-io.h: Likewise.
8311         * ginclude/float.h: Likewise.
8312         * ginclude/iso646.h: Likewise.
8313         * ginclude/stdarg.h: Likewise.
8314         * ginclude/stdbool.h: Likewise.
8315         * ginclude/stddef.h: Likewise.
8316         * ginclude/stdfix.h: Likewise.
8317         * ginclude/stdint-gcc.h: Likewise.
8318         * ginclude/tgmath.h: Likewise.
8319         * gthr-aix.h: Likewise.
8320         * gthr-dce.h: Likewise.
8321         * gthr-gnat.c: Likewise.
8322         * gthr-gnat.h: Likewise.
8323         * gthr-lynx.h: Likewise.
8324         * gthr-mipssde.h: Likewise.
8325         * gthr-nks.h: Likewise.
8326         * gthr-posix.c: Likewise.
8327         * gthr-posix.h: Likewise.
8328         * gthr-posix95.h: Likewise.
8329         * gthr-rtems.h: Likewise.
8330         * gthr-single.h: Likewise.
8331         * gthr-solaris.h: Likewise.
8332         * gthr-tpf.h: Likewise.
8333         * gthr-vxworks.h: Likewise.
8334         * gthr-win32.h: Likewise.
8335         * gthr.h: Likewise.
8336         * libgcc2.c: Likewise.
8337         * libgcc2.h: Likewise.
8338         * libgcov.c: Likewise.
8339         * tsystem.h: Likewise.
8340         * typeclass.h: Likewise.
8341         * unwind-c.c: Likewise.
8342         * unwind-compat.h: Likewise.
8343         * unwind-dw2-fde-compat.c: Likewise.
8344         * unwind-dw2-fde-darwin.c: Likewise.
8345         * unwind-dw2-fde-glibc.c: Likewise.
8346         * unwind-dw2-fde.c: Likewise.
8347         * unwind-dw2-fde.h: Likewise.
8348         * unwind-dw2.c: Likewise.
8349         * unwind-dw2.h: Likewise.
8350         * unwind-generic.h: Likewise.
8351         * unwind-pe.h: Likewise.
8352         * unwind-sjlj.c: Likewise.
8353         * unwind.inc: Likewise.
8354         * config/arm/neon-gen.ml: Change generated copyright header to
8355         refer to version 3 of the GNU General Public License with
8356         version 3.1 of the GCC Runtime Library Exception and to point
8357         readers at the COPYING3 and COPYING3.RUNTIME files and the
8358         FSF's license web page.
8359         * config/arm/arm_neon.h: Regenerate.
8360
8361 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
8362
8363         * config/cris/cris.md: Change copyright header to refer to version
8364         3 of the GNU General Public License.
8365         * doc/install.texi2html: Change copyright header to refer to version
8366         3 of the GNU General Public License and to point readers at the
8367         COPYING3 file and the FSF's license web page.
8368         * config/vax/linux.h: Likewise.
8369
8370 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
8371
8372         * config/i386/i386.md (cmpcc): New.
8373         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
8374         (sync_compare_and_swap_cc*): Delete.
8375
8376         * config/s390/s390.c (s390_compare_emitted): Remove.
8377         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
8378         s390_compare_emitted used to be handled.  Assert that modes match.
8379         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
8380         refer to sync_compare_and_swap_ccsi.
8381         * config/s390/s390.h (s390_compare_emitted): Remove.
8382         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8383         instead of s390_compare_emitted.
8384         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8385         instead of s390_compare_emitted.
8386         * config/s390/s390.md (cmpcc): New.
8387         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8388         CC_REGNUM, do not pretend it's set.
8389         (sync_compare_and_swap_cc*): Delete.
8390         * config/s390/predicates.md (cc_reg_operand): New.
8391
8392         * expr.c (sync_compare_and_swap_cc): Delete.
8393         * optabs.h (sync_compare_and_swap_cc): Delete.
8394         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8395         is being used with can_compare_p.
8396         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8397         (find_cc_set): New.
8398         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8399         look for a MODE_CC set instead.  Use emit_store_flag.
8400         (expand_compare_and_swap_loop): Likewise, with some additional
8401         complication to avoid a force_reg when useless.  Use
8402         emit_cmp_and_jump_insns.
8403         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8404         * doc/md.texi (sync_compare_and_swap_cc): Merge with
8405         sync_compare_and_swap documentation.
8406
8407 2009-04-09  Jan Hubicka  <jh@suse.cz>
8408
8409         * except.c (find_prev_try): Break out from ....
8410         (duplicate_eh_regions): ... here; properly update prev_try pointers
8411         when duplication part of tree.
8412         (dump_eh_tree): Improve dumping.
8413         (verify_eh_region): New.
8414         (verify_eh_tree): Use it.
8415
8416 2009-04-06  Richard Guenther  <rguenther@suse.de>
8417
8418         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8419         &ARRAY addresses by adjusting their types and prepending
8420         a conversion.
8421         * tree-cfg.c (verify_gimple_assign_single): Verify that
8422         addresses are correct.
8423
8424 2009-04-09  Richard Guenther  <rguenther@suse.de>
8425
8426         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8427         indices into an array reference if possible.
8428         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8429         Fold POINTER_PLUS_EXPR statements with invariant address.
8430
8431 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
8432
8433         PR target/39634
8434         * config.gcc (powerpc64-*-linux*): Always build biarch.
8435
8436 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
8437
8438         PR c/39613
8439         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8440         it and pedwarn if this results in an INTEGER_CST.
8441
8442 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8443
8444         * doc/install.texi: Update minimum GMP version.  Remove obsolete
8445         text in MPFR section.
8446
8447 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
8448
8449         * dwarf2out.c (class_scope_p): New static inline.
8450         (class_or_namespace_scope_p): Use it.
8451         (gen_variable_die): Use DW_TAG_member tag for static data member
8452         declarations instead of DW_TAG_variable.
8453
8454         PR middle-end/39573
8455         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8456         variables.
8457
8458 2009-04-08  Richard Guenther  <rguenther@suse.de>
8459
8460         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8461         valueize random data.
8462
8463 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
8464
8465         * config.gcc (aix tm_file):  Add aix-stdint.h.
8466         (aix tm clause use_gcc_stdint):  Set to wrap.
8467         * config/rs6000/aix-stdint.h:  New file.
8468
8469 2009-04-08  Richard Guenther  <rguenther@suse.de>
8470
8471         PR middle-end/36291
8472         * tree-dfa.c (add_referenced_var): Do not recurse into
8473         global initializers.
8474         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8475         exposed variables.
8476         (fold_const_aggregate_ref): Likewise.
8477
8478 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8479
8480         * recog.c (ordered_comparison_operator): New.
8481         * gensupport.c (std_preds): Add it.
8482         * doc/md.texi (Machine-Independent Predicates): Document it.
8483
8484 2009-04-08  Jan Hubicka  <jh@suse.cz>
8485
8486         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8487         * function.h (rtl_eh): Remove exception_handler_label_map.
8488         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8489         remove_exception_handler_label, for_each_eh_label_1): Remove.
8490         (rtl_remove_unreachable_regions): Remove.
8491         (convert_from_eh_region_ranges): Do not remove unreachable regions.
8492         (find_exception_handler_labels): Don't build the hashtable.
8493         (maybe_remove_eh_handler): Remove.
8494         (for_each_eh_label): Rewrite to walk the tree.
8495         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8496         * except.h (maybe_remove_eh_handler): Remove.
8497         * passes.c (init_optimization_passes): Schedule second EH cleanup
8498         before out-of-ssa.
8499         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8500         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8501
8502 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8503
8504         * genoutput.c (validate_optab_operands): New.
8505         (gen_insn, gen_expand): Call it.
8506
8507         * genflags.c (gen_insn): Detect misused iterators.
8508         (main): Pass line_no to gen_insn, exit with status 1 on error.
8509
8510         * genextract.c (line_no): Make global.
8511         (VEC_safe_set_locstr): Change assertion to error message.
8512         (main): Exit with status 1 on error.
8513
8514 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
8515
8516         PR c/39614
8517         PR c/39673
8518         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8519         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8520         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8521         * c-convert.c (convert): Do not call fold on results of conversion
8522         functions when the result is a C_MAYBE_CONST_EXPR.
8523         * c-parser.c (c_parser_postfix_expression): Do not fold condition
8524         of __builtin_choose_expr.
8525         * c-typeck.c (remove_c_maybe_const_expr): New.
8526         (build_unary_op, build_conditional_expr, build_compound_expr,
8527         build_binary_op, c_objc_common_truthvalue_conversion): Call
8528         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8529         integer operands.
8530
8531 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
8532
8533         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
8534         CODE to produce a new one. Add a prototype to use fold_convert_const
8535
8536 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
8537
8538         PR bootstrap/39660
8539         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8540         mix declarations and code.
8541
8542 2009-04-08  Ben Elliston  <bje@au.ibm.com>
8543
8544         * gcc.c: Replace `CC' with `GCC' throughout.
8545
8546 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8547
8548         * doc/invoke.texi: Document Atom support.
8549
8550 2009-04-07  Jason Merrill  <jason@redhat.com>
8551
8552         PR c++/25185
8553         * c-common.h, c-common.c: Add flag_pretty_templates.
8554         * c-opts.c (c_common_handle_option): Set it.
8555         * c.opt: Add -fno-pretty-templates.
8556         * doc/invoke.texi (C++ Dialect Options): Likewise.
8557
8558 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
8559
8560         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8561         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8562         (ia64_expand_builtin): Likewise.
8563
8564 2009-04-07  Martin Jambor  <mjambor@suse.cz>
8565
8566         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8567         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8568         ADDR_EXPRS are include too.
8569
8570 2009-04-07  Richard Guenther  <rguenther@suse.de>
8571
8572         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8573         decls are only used if passes as parameters or if they are
8574         local statics and the call is not to a builtin.
8575         (call_may_clobber_ref_p_1): Likewise.
8576
8577 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8578
8579         * expr.c (do_store_flag): Remove last argument.  Simplify code
8580         to avoid duplication of tests already done by can_compare_p.
8581         (expand_expr_real_1): Adjust caller.
8582
8583 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8584
8585         * optabs.c (can_compare_p): Test the predicate of a
8586         cbranch and cstore pattern.
8587
8588 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8589
8590         * expr.c (convert_move): Use emit_store_flag instead of
8591         "emulating" it.
8592
8593 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8594
8595         * config/i386/i386.c (ix86_compare_emitted): Remove.
8596         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8597         ix86_compare_op0 like ix86_compare_emitted used to be handled.
8598         * config/i386/i386.h (ix86_compare_emitted): Remove.
8599         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8600         instead of ix86_compare_emitted.
8601         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
8602
8603 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
8604
8605         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8606         Add t-sysroot-suffix to tmake_file.
8607         * config/print-sysroot-suffix.sh: New file.
8608         * config/t-sysroot-suffix: New file.
8609
8610 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8611
8612         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8613         as the latter produces a warning when the target does not support
8614         infinity.
8615
8616 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8617
8618         * dfp.c: Replace type punning assignments with memcpy throughout.
8619         * Makefile.in (dfp.o-warn): Remove.
8620
8621 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
8622
8623         PR target/39634
8624         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8625         Include soft-fp/t-softfp after rs6000/t-linux64.
8626
8627 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8628
8629         * stor-layout.c (set_sizetype): Use the full precision of their
8630         machine mode for bitsize types.
8631
8632 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
8633
8634         * config/i386/i386.md: Revert 2 accidental checkins.
8635
8636 2009-04-06  Joey Ye  <joey.ye@intel.com>
8637             Xuepeng Guo  <xuepeng.guo@intel.com>
8638             H.J. Lu  <hongjiu.lu@intel.com>
8639
8640         Atom pipeline model, tuning and insn selection.
8641         * config.gcc (atom): Add atom config options and target.
8642
8643         * config/i386/atom.md: New.
8644
8645         * config/i386/i386.c (atom_cost): New cost.
8646         (m_ATOM): New macro flag.
8647         (initial_ix86_tune_features): Set m_ATOM.
8648         (x86_accumulate_outgoing_args): Likewise.
8649         (x86_arch_always_fancy_math_387): Likewise.
8650         (processor_target): Add Atom cost.
8651         (cpu_names): Add Atom cpu name.
8652         (override_options): Set Atom ISA.
8653         (ix86_issue_rate): New case PROCESSOR_ATOM.
8654         (ix86_adjust_cost): Likewise.
8655
8656         * config/i386/i386.h (TARGET_ATOM): New target macro.
8657         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8658         (TARGET_OPT_AGU): New target option.
8659         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8660         (processor_type): Add PROCESSOR_ATOM.
8661
8662         * config/i386/i386.md (cpu): Add new value "atom".
8663         (use_carry, movu): New attr.
8664         (atom.md): Include atom.md.
8665         (adddi3_carry_rex64): Set attr "use_carry".
8666         (addqi3_carry): Likewise.
8667         (addhi3_carry): Likewise.
8668         (addsi3_carry): Likewise.
8669         (*addsi3_carry_zext): Likewise.
8670         (subdi3_carry_rex64): Likewise.
8671         (subqi3_carry): Likewise.
8672         (subhi3_carry): Likewise.
8673         (subsi3_carry): Likewise.
8674         (x86_movdicc_0_m1_rex64): Likewise.
8675         (*x86_movdicc_0_m1_se): Likewise.
8676         (x86_movsicc_0_m1): Likewise.
8677         (*x86_movsicc_0_m1_se): Likewise.
8678         (*adddi_1_rex64): Emit add insn as much as possible.
8679         (*addsi_1): Likewise.
8680         (return_internal): Set atom_unit.
8681         (return_internal_long): Likewise.
8682         (return_pop_internal): Likewise.
8683         (*rcpsf2_sse): Set atom_sse_attr attr.
8684         (*qrt<mode>2_sse): Likewise.
8685         (*prefetch_sse): Likewise.
8686
8687         * config/i386/i386-c.c (ix86_target_macros_internal): New case
8688         PROCESSOR_ATOM.
8689         (ix86_target_macros_internal): Likewise.
8690
8691         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8692         (*prefetch_sse_rex): Likewise.
8693         (sse_rcpv4sf2): Likewise.
8694         (sse_vmrcpv4sf2): Likewise.
8695         (sse_sqrtv4sf2): Likewise.
8696         (<sse>_vmsqrt<mode>2): Likewise.
8697         (sse_ldmxcsr): Likewise.
8698         (sse_stmxcsr): Likewise.
8699         (*sse_sfence): Likewise.
8700         (sse2_clflush): Likewise.
8701         (*sse2_mfence): Likewise.
8702         (*sse2_lfence): Likewise.
8703         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8704         (<sse>_movup<ssemodesuffixf2c>): Likewise.
8705         (avx_movdqu<avxmodesuffix>): Likewise.
8706         (avx_lddqu<avxmodesuffix>): Likewise.
8707         (sse2_movntv2di): Change attr "type" to "ssemov".
8708         (sse2_movntsi): Likewise.
8709         (rsqrtv8sf2): Change attr "type" to "sseadd".
8710         (sse3_addsubv2df3): Set attr "atom_unit".
8711         (sse3_h<plusminus_insn>v4sf3): Likewise.
8712         (*sse2_pmaddwd): Likewise.
8713         (*vec_extractv2di_1_rex64): Likewise.
8714         (*vec_extractv2di_1_avx): Likewise.
8715         (sse2_psadbw): Likewise.
8716         (ssse3_phaddwv8hi3): Likewise.
8717         (ssse3_phaddwv4hi3): Likewise.
8718         (ssse3_phadddv4si3): Likewise.
8719         (ssse3_phadddv2si3): Likewise.
8720         (ssse3_phaddswv8hi3): Likewise.
8721         (ssse3_phaddswv4hi3): Likewise.
8722         (ssse3_phsubwv8hi3): Likewise.
8723         (ssse3_phsubwv4hi3): Likewise.
8724         (ssse3_phsubdv4si3): Likewise.
8725         (ssse3_phsubdv2si3): Likewise.
8726         (ssse3_phsubswv8hi3): Likewise.
8727         (ssse3_phsubswv4hi3): Likewise.
8728         (ssse3_pmaddubsw128): Likewise.
8729         (sse3_pmaddubsw: Likewise.
8730         (ssse3_palignrti): Likewise.
8731         (ssse3_palignrdi): Likewise.
8732
8733 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
8734
8735         * doc/install.texi (Specific): Fix two cross-references to MinGW.
8736
8737 2009-04-06  Richard Guenther  <rguenther@suse.de>
8738
8739         PR tree-optimization/28868
8740         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8741         of which PHI results we inserted.
8742         (insert_into_preds_of_block): Record inserted PHIs.
8743         (eliminate): Eliminate redundant PHI nodes.
8744         (init_pre): Init inserted_phi_names.
8745
8746 2009-04-06  Richard Guenther  <rguenther@suse.de>
8747
8748         PR tree-optimization/39643
8749         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8750         IMAGPART_EXPRs of complex constants.
8751         (execute_fold_all_builtins): If we folded a call queue
8752         TODO_update_address_taken.
8753
8754 2009-04-06  Jan Hubicka  <jh@suse.cz>
8755
8756         PR middle-end/39659
8757         * except.c (remove_unreachable_regions): Propagate may_contain_throw
8758         flag.
8759
8760 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
8761
8762         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8763         delay slot.
8764         (ic_invalidate_array): Likewise.
8765
8766 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8767
8768         * calls.c (emit_library_call_value_1): Fix a problem with parameter
8769         alignment for library calls.
8770
8771 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
8772
8773         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
8774         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
8775         * config/i386/mingw-stdint.h:  New file.
8776
8777 2009-04-05  Richard Guenther  <rguenther@suse.de>
8778
8779         PR tree-optimization/39648
8780         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8781         our &A vs. &A[0] IL deficiencies.
8782
8783 2009-04-04  Jan Hubicka  <jh@suse.cz>
8784
8785         * except.c (sjlj_find_directly_reachable_regions): Be ready for
8786         removed toplevel regions.
8787         (sjlj_mark_call_sites): Likewise.
8788
8789 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
8790
8791         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
8792         (cygwin tm clause use_gcc_stdint):  Set to wrap.
8793         * config/i386/cygwin-stdint.h:  New file.
8794
8795 2009-04-04  Richard Guenther  <rguenther@suse.de>
8796
8797         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8798         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8799         single-argument PHIs if we are in loop-closed SSA form.
8800         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8801         for the pre-condition.
8802         (slpeel_tree_peel_loop_to_edge): Likewise.
8803         (vect_build_loop_niters): Take an optional sequence to append stmts.
8804         (vect_generate_tmps_on_preheader): Likewise.
8805         (vect_do_peeling_for_loop_bound): Take extra guards for the
8806         pre-condition.
8807         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
8808         the cost model check.
8809         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
8810         guards if we are going to peel.  Do not apply versioning in that case.
8811         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8812         (vect_do_peeling_for_loop_bound): Likewise.
8813         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8814         loop bound only record extra pre-conditions, do not apply loop
8815         versioning.
8816
8817 2009-04-04  Richard Guenther  <rguenther@suse.de>
8818
8819         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8820         renaming code.
8821
8822 2009-04-04  Jan Hubicka  <jh@suse.cz>
8823
8824         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8825         last_basic_block for size of bb->index indexed array.
8826         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8827         compute_out, link_btr_uses, build_btr_def_use_webs,
8828         build_btr_def_use_webs, migrate_btr_defs): Likewise.
8829
8830 2009-04-04  Jan Hubicka  <jh@suse.cz>
8831
8832         * except.c (remove_eh_handler_and_replace): Break out from ...
8833         (remove_eh_handler): ... here.
8834         (bring_to_root): New function.
8835         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8836         handled ones, bring others to root of tree.
8837
8838 2009-04-04  Jan Hubicka  <jh@suse.cz>
8839
8840         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8841         (all_phis_safe_to_merge): New function.
8842         (update_info): New structure.
8843         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8844         (cleanup_empty_eh): Update SSA if possible.
8845
8846 2009-04-04  Richard Guenther  <rguenther@suse.de>
8847
8848         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8849         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8850         (append_vuse): Likewise.
8851
8852 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
8853
8854         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8855         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8856         instead of REG_UNSAVED for DW_CFA_undefined.
8857         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8858         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8859         outermost frame.
8860
8861 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
8862
8863         PR target/39501
8864         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8865         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8866         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8867
8868 2009-04-04  Richard Guenther  <rguenther@suse.de>
8869
8870         PR tree-optimization/8781
8871         PR tree-optimization/37892
8872         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8873         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8874         (valueize_refs): Call it for *& valueizations.
8875         (shared_reference_ops_from_ref): Rename to ...
8876         (valueize_shared_reference_ops_from_ref): ... this and valueize.
8877         (shared_reference_ops_from_call): Rename to ...
8878         (valueize_shared_reference_ops_from_call): ... this and valueize.
8879         (vn_reference_lookup): Update.
8880         (visit_reference_op_call): Likewise.
8881         * tree-ssa-pre.c (phi_translate_1): Fold *&.
8882         (eliminate): Value-replace the call address in call statements.
8883
8884 2009-04-04  Richard Guenther  <rguenther@suse.de>
8885
8886         PR tree-optimization/39636
8887         * tree-ssa-forwprop.c
8888         (forward_propagate_addr_into_variable_array_index): Check for
8889         GIMPLE_ASSIGN before accessing the rhs code.
8890
8891 2009-04-03  Jason Merrill  <jason@redhat.com>
8892
8893         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8894
8895 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
8896
8897         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8898         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8899         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8900         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8901         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8902         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8903         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8904         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8905         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8906         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8907         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8908         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8909         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8910         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8911         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8912         Use fr_reg_or_fp01_operand instead of fr_register_operand
8913
8914         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8915         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8916         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8917
8918 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
8919
8920         PR rtl-optimization/39607
8921         PR rtl-optimization/39631
8922
8923         Revert:
8924
8925         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8926         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8927         instead of DF_LR_OUT.
8928         * ira-lives.c (process_bb_node_lives): Ditto.
8929         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8930         instead of DF_LR_{OUT,IN}.
8931         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8932         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8933
8934 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
8935
8936         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8937         (execute_lower_omp): Always run but take the short way out if -fopenmp
8938         is not given.
8939         (gate_lower_omp): Remove, forcing the pass manager to always run the
8940         pass and always set PROP_gimple_lomp.
8941         (pass_lower_omp): Remove gate function.
8942         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8943         PROP_trees.  Instead, require it.
8944         * ipa-cp.c (pass_ipa_cp): Likewise.
8945         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8946         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8947         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8948         and PROP_gimple_leh.
8949
8950 2009-04-03  Richard Guenther  <rguenther@suse.de>
8951
8952         PR middle-end/13146
8953         PR tree-optimization/23940
8954         PR tree-optimization/33237
8955         PR middle-end/33974
8956         PR middle-end/34093
8957         PR tree-optimization/36201
8958         PR tree-optimization/36230
8959         PR tree-optimization/38049
8960         PR tree-optimization/38207
8961         PR tree-optimization/38230
8962         PR tree-optimization/38301
8963         PR tree-optimization/38585
8964         PR middle-end/38895
8965         PR tree-optimization/38985
8966         PR tree-optimization/39299
8967         * tree-ssa-structalias.h: Remove.
8968         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8969         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8970         (struct vuse_element_d): Remove.
8971         (struct vuse_vec_d): Likewise.
8972         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8973         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8974         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8975         VUSE_ELEMENT_VAR): Likewise.
8976         (struct voptype_d): Likewise.
8977         (NUM_VOP_FREE_BUCKETS): Likewise.
8978         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8979         (struct stmt_operands_d): Remove.
8980         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8981         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8982         VDEF_NUM, VDEF_VECT): Likewise.
8983         (copy_virtual_operands): Remove.
8984         (operand_build_cmp): Likewise.
8985         (create_ssa_artificial_load_stmt): Likewise.
8986         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8987         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8988         vuse_index and mayuse_index members.  Pack and move done and iter_type
8989         members to the front.
8990         (SSA_OP_VMAYUSE): Remove.
8991         (SSA_OP_VIRTUAL_USES): Adjust.
8992         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8993         (unlink_stmt_vdef): Declare.
8994         (add_to_addressable_set): Remove.
8995         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8996         (vrp_visit_stmt): Likewise.
8997         * doc/tree-ssa.texi (Alias analysis): Update.
8998         * doc/invoke.texi (max-aliased-vops): Remove docs.
8999         (avg-aliased-vops): Likewise.
9000         * tree-into-ssa.c (syms_to_rename): Remove.
9001         (need_to_update_vops_p): Likewise.
9002         (need_to_initialize_update_ssa_p): Rename to ...
9003         (update_ssa_initialized_fn): ... this.  Track function we are
9004         initialized for.
9005         (symbol_marked_for_renaming): Simplify.
9006         (add_new_name_mapping): Do not set need_to_update_vops_p.
9007         (dump_currdefs): Use SYMS_TO_RENAME.
9008         (rewrite_update_stmt): Always walk all uses/defs.
9009         (dump_update_ssa): Adjust.
9010         (init_update_ssa): Take function argument.  Track what we are
9011         initialized for.
9012         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
9013         (create_new_def_for): Initialize for cfun, assert we are initialized
9014         for cfun.
9015         (mark_sym_for_renaming): Simplify.
9016         (mark_set_for_renaming): Do not initialize update-ssa.
9017         (need_ssa_update_p): Simplify.  Take function argument.
9018         (name_mappings_registered_p): Assert we ask for the correct function.
9019         (name_registered_for_update_p): Likewise.
9020         (ssa_names_to_replace): Likewise.
9021         (release_ssa_name_after_update_ssa): Likewise.
9022         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
9023         (dump_decl_set): Do not print a newline.
9024         (debug_decl_set): Do it here.
9025         (dump_update_ssa): And here.
9026         * tree-ssa-loop-im.c (move_computations): Adjust.
9027         (movement_possibility): Likewise.
9028         (determine_max_movement): Likewise.
9029         (gather_mem_refs_stmt): Likewise.
9030         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
9031         or NAME_MEMORY_TAG.
9032         * tree-complex.c (update_all_vops): Remove.
9033         (expand_complex_move): Adjust.
9034         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
9035         Simplify test for memory referencing statement.  Exclude
9036         non-invariant ADDR_EXPRs.
9037         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
9038         * tree-loop-distribution.c (generate_memset_zero): Adjust.
9039         (rdg_flag_uses): Likewise.
9040         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
9041         related code.
9042         (tree_optimize_tail_calls_1): Also split the
9043         edge from the entry block if we have degenerate PHI nodes in
9044         the first basic block.
9045         * tree.c (init_ttree): Remove memory-tag related code.
9046         (tree_code_size): Likewise.
9047         (tree_node_structure): Likewise.
9048         (build7_stat): Re-write to be build6_stat.
9049         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
9050         (SSA_VAR_P): Adjust.
9051         (struct tree_memory_tag): Remove.
9052         (struct tree_memory_partition_tag): Likewise.
9053         (union tree_node): Adjust.
9054         (build7): Re-write to be build6.
9055         * tree-pass.h (pass_reset_cc_flags): Remove.
9056         (TODO_update_address_taken): New flag.
9057         (pass_simple_dse): Remove.
9058         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
9059         * params.h (MAX_ALIASED_VOPS): Remove.
9060         (AVG_ALIASED_VOPS): Likewise.
9061         * omp-low.c (expand_omp_taskreg): Update SSA form.
9062         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
9063         aliases the lhs in a copy stmt.
9064         * tree-ssa-dse.c (struct address_walk_data): Remove.
9065         (memory_ssa_name_same): Likewise.
9066         (memory_address_same): Likewise.
9067         (get_kill_of_stmt_lhs): Likewise.
9068         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
9069         unused stores.  Look through PHI nodes into post-dominated regions.
9070         (dse_optimize_stmt): Simplify.  Properly remove stores.
9071         (tree_ssa_dse): Compute dominators.
9072         (execute_simple_dse): Remove.
9073         (pass_simple_dse): Likewise.
9074         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
9075         gimple_loaded_syms and gimple_stored_syms computation.
9076         * toplev.c (dump_memory_report): Dump alias and pta stats.
9077         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
9078         (vn_reference_eq): Likewise.
9079         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
9080         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
9081         valueize_vuses): Remove.
9082         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
9083         (get_def_ref_stmt_vuse): ... this.
9084         (vn_reference_lookup_2): New function.
9085         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
9086         walking equivalent vuses.  Simplify.
9087         (vn_reference_lookup): Likewise.
9088         (vn_reference_insert): Likewise.
9089         (vn_reference_insert_pieces): Likewise.
9090         (visit_reference_op_call): Simplify.
9091         (visit_reference_op_load): Likewise.
9092         (visit_reference_op_store): Likewise.
9093         (init_scc_vn): Remove shared_lookup_vuses initialization.
9094         (free_scc_vn): Remove shared_lookup_vuses freeing.
9095         (sort_vuses, sort_vuses_heap): Remove.
9096         (get_ref_from_reference_ops): Export.
9097         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
9098         vector with single vuse pointer.
9099         (vn_reference_lookup_pieces, vn_reference_lookup,
9100         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
9101         (shared_vuses_from_stmt): Remove.
9102         (get_ref_from_reference_ops): Declare.
9103         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
9104         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
9105         memory-tag related code.
9106         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
9107         (likely_value): Add comment, skip static-chain of call statements.
9108         (surely_varying_stmt_p): Adjust.
9109         (gimplify_and_update_call_from_tree): Likewise.
9110         (execute_fold_all_builtins): Do not rebuild alias info.
9111         (gimplify_and_update_call_from_tree): Properly update VOPs.
9112         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
9113         (copy_ref_info): Remove memory-tag related code.
9114         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
9115         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
9116         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
9117         computation.
9118         * tree-ssa-dom.c (gimple_p): Remove typedef.
9119         (eliminate_redundant_computations): Adjust.
9120         (record_equivalences_from_stmt): Likewise.
9121         (avail_expr_hash): Likewise.
9122         (avail_expr_eq): Likewise.
9123         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
9124         (stmt_makes_single_load): Likewise.
9125         (stmt_makes_single_store): Likewise.
9126         * tree-ssa-alias.c: Rewrite completely.
9127         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
9128         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
9129         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
9130         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
9131         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
9132         Remove public functions.
9133         (pass_reset_cc_flags): Remove.
9134         (pass_build_alias): Move ...
9135         * tree-ssa-structalias.c (pass_build_alias): ... here.
9136         * tree-ssa-alias.c (may_be_aliased): Move ...
9137         * tree-flow-inline.h (may_be_aliased): ... here.
9138         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
9139         count_uses_and_derefs): Move ...
9140         * gimple.c: ... here.
9141         * gimple.h (count_uses_and_derefs): Declare.
9142         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
9143         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
9144         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
9145         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
9146         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
9147         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
9148         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
9149         New functions.
9150         * tree-dfa.c (refs_may_alias_p): Move ...
9151         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
9152         * tree-ssa-alias.h: New file.
9153         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
9154         (statement_sink_location): Likewise.
9155         * opts.c (decode_options): Do not adjust max-aliased-vops or
9156         avg-aliased-vops values.
9157         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
9158         (TV_CALL_CLOBBER): Likewise.
9159         (TV_FLOW_SENSITIVE): Likewise.
9160         (TV_FLOW_INSENSITIVE): Likewise.
9161         (TV_MEMORY_PARTITIONING): Likewise.
9162         (TV_ALIAS_STMT_WALK): New timevar.
9163         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
9164         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
9165         (get_address_description): Remove memory-tag related code.
9166         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
9167         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
9168         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
9169         and immediate uses in statements.  Document.
9170         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
9171         (dump_symbols): Remove.
9172         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
9173         * alias.c (get_deref_alias_set): New function split out from ...
9174         (get_alias_set): ... here.
9175         * alias.h (get_deref_alias_set): Declare.
9176         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
9177         type parameter.  Remove restrict pointer handling.  Create a
9178         ref-all pointer in case type-based alias sets do not conflict.
9179         (vect_analyze_data_refs): Remove SMT related code.
9180         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
9181         (vectorizable_load): Likewise.
9182         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
9183         (DR_SYMBOL_TAG, DR_VOPS): Remove.
9184         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
9185         Ignore vops and SMTs.
9186         (dr_analyze_alias): Likewise..
9187         (free_data_ref): Likewise.
9188         (create_data_ref): Likewise.
9189         (analyze_all_data_dependences): Likewise.
9190         (get_references_in_stmt): Adjust.
9191         * tree-flow-inline.h (gimple_aliases_computed_p,
9192         gimple_addressable_vars, gimple_call_clobbered_vars,
9193         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
9194         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
9195         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
9196         gimple_mem_ref_stats): Remove.
9197         (gimple_vop): New function.
9198         (op_iter_next_use): Remove vuses and mayuses cases.
9199         (op_iter_next_def): Remove vdefs case.
9200         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
9201         (clear_and_done_ssa_iter): Do not set removed fields.
9202         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
9203         Assert we are not iterating over vuses or vdefs if not also
9204         iterating over uses or defs.
9205         (op_iter_init_use): Likewise.
9206         (op_iter_init_def): Likewise.
9207         (op_iter_next_vdef): Remove.
9208         (op_iter_next_mustdef): Likewise.
9209         (op_iter_init_vdef): Likewise.
9210         (compare_ssa_operands_equal): Likewise.
9211         (link_use_stmts_after): Handle vuse operand.
9212         (is_call_used): Use is_call_clobbered.
9213         (is_call_clobbered): Global variables are always call clobbered,
9214         query the call-clobbers bitmap.
9215         (mark_call_clobbered): Ignore global variables.
9216         (clear_call_clobbered): Likewise.
9217         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
9218         virtual operands sanity check.
9219         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
9220         Remove.
9221         (TARGET_MEM_REF): Remove TMR_TAG operand.
9222         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
9223         Remove call-clobber related code.
9224         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
9225         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
9226         partitions or escape reason.
9227         (get_single_def_stmt, get_single_def_stmt_from_phi,
9228         get_single_def_stmt_with_phi): Remove.
9229         (dump_referenced_vars): Tidy.
9230         (get_ref_base_and_extent): Allow bare decls.
9231         (collect_dfa_stats): Adjust.
9232         * graphite.c (rename_variables_in_stmt): Adjust.
9233         (graphite_copy_stmts_from_block): Likewise.
9234         (translate_clast): Likewise.
9235         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
9236         (EXPR_DIES): New.
9237         (translate_vuse_through_block): Use the oracle.
9238         (phi_translate_1): Adjust.
9239         (value_dies_in_block_x): Use the oracle.  Cache the outcome
9240         in EXPR_DIES.
9241         (valid_in_sets): Check if the VUSE for
9242         a REFERENCE is available.
9243         (eliminate): Do not remove stmts during elimination,
9244         instead queue and remove them afterwards.
9245         (do_pre): Do not rebuild alias info.
9246         (pass_pre): Run TODO_rebuild_alias before PRE.
9247         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
9248         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
9249         (mark_all_v_defs_stmt): Remove.
9250         (mark_all_v_defs_seq): Adjust.
9251         (sra_replace): Likewise.
9252         (scalarize_use): Likewise.
9253         (scalarize_copy): Likewise.
9254         (scalarize_init): Likewise.
9255         (scalarize_ldst): Likewise.
9256         (todoflags): Remove.
9257         (tree_sra): Do not rebuild alias info.
9258         (tree_sra_early): Adjust.
9259         (pass_sra): Run TODO_update_address_taken before SRA.
9260         * tree-predcom.c (set_alias_info): Remove.
9261         (prepare_initializers_chain): Do not call it.
9262         (mark_virtual_ops_for_renaming): Adjust.
9263         (mark_virtual_ops_for_renaming_list): Remove.
9264         (initialize_root_vars): Adjust.
9265         (initialize_root_vars_lm): Likewise.
9266         (prepare_initializers_chain): Likewise.
9267         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
9268         (may_propagate_copy_into_stmt): Likewise.
9269         (merge_alias_info): Do nothing for now.
9270         (propagate_tree_value_into_stmt): Adjust.
9271         (stmt_may_generate_copy): Likewise.
9272         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
9273         not mark symbols for renaming.
9274         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
9275         with the same statement, make sure to update the new pointed-to one.
9276         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
9277         call statements, do not mark symbols for renaming.
9278         (mark_operand_necessary): Dump something.
9279         (ref_may_be_aliased): New function.
9280         (mark_aliased_reaching_defs_necessary_1): New helper function.
9281         (mark_aliased_reaching_defs_necessary): Likewise.
9282         (mark_all_reaching_defs_necessary_1): Likewise.
9283         (mark_all_reaching_defs_necessary): Likewise.
9284         (propagate_necessity): Do not process virtual PHIs.  For
9285         non-aliased loads mark all reaching definitions as necessary.
9286         For aliased loads and stores mark the immediate dominating
9287         aliased clobbers as necessary.
9288         (visited): New global static.
9289         (perform_tree_ssa_dce): Free visited bitmap after propagating
9290         necessity.
9291         (remove_dead_phis): Perform simple dead virtual PHI removal.
9292         (remove_dead_stmt): Properly unlink virtual operands when
9293         removing stores.
9294         (eliminate_unnecessary_stmts): Schedule PHI removal after
9295         stmt removal.
9296         * tree-ssa-ter.c (is_replaceable_p): Adjust.
9297         (process_replaceable): Likewise.
9298         (find_replaceable_in_bb): Likewise.
9299         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
9300         based on the single gimple vop.
9301         (verify_flow_insensitive_alias_info): Remove.
9302         (verify_flow_sensitive_alias_info): Likewise.
9303         (verify_call_clobbering): Likewise.
9304         (verify_memory_partitions): Likewise.
9305         (verify_alias_info): Likewise.
9306         (verify_ssa): Adjust..
9307         (execute_update_addresses_taken): Export.  Update SSA
9308         manually.  Optimize only when optimizing.  Use a local bitmap.
9309         (pass_update_address_taken): Remove TODO_update_ssa, add
9310         TODO_dump_func.
9311         (pass_update_address_taken): Just use TODO_update_address_taken.
9312         (init_tree_ssa): Do not initialize addressable_vars.
9313         (verify_ssa): Verify new VUSE / VDEF properties.
9314         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
9315         Do not call verify_alias_info.
9316         (delete_tree_ssa): Clear the VUSE, VDEF operands.
9317         Do not free the loaded and stored syms bitmaps.  Reset the escaped
9318         and callused solutions.  Do not free addressable_vars.
9319         Remove memory-tag related code.
9320         (warn_uninitialized_var): Aliases are always available.
9321         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
9322         * lambda-code.c (can_put_in_inner_loop): Adjust.
9323         (can_put_after_inner_loop): Likewise.
9324         (perfect_nestify): Likewise.
9325         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
9326         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
9327         (vectorizable_conversion): Do not mark symbols for renaming.
9328         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
9329         (expand_call_inline): Unlink the calls virtual operands before
9330         replacing it.
9331         (tree_function_versioning): Do not call update_ssa if we are not
9332         updating clones.  Simplify.
9333         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
9334         (propagate_with_phi): Likewise..
9335         * tree-outof-ssa.c (create_temp): Remove memory tag and call
9336         clobber code.  Assert we are not aliased or global.
9337         * tree-flow.h: Include tree-ssa-alias.h
9338         (enum escape_type): Remove.
9339         (struct mem_sym_stats_d): Likewise.
9340         (struct mem_ref_stats_d): Likewise.
9341         (struct gimple_df): Add vop member.  Remove global_var,
9342         call_clobbered_vars, call_used_vars, addressable_vars,
9343         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
9344         escaped and callused members.
9345         (struct ptr_info_def): Remove all members, add points-to solution
9346         member pt.
9347         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
9348         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
9349         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
9350         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
9351         (tree-ssa-alias.o): Likewise.
9352         (toplev.o): Add tree-ssa-alias.h
9353         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
9354         * gimple.c (gimple_set_bb): Fix off-by-one error.
9355         (is_gimple_reg): Do not handle memory tags.
9356         (gimple_copy): Also copy virtual operands.
9357         Delay updating the statement.  Do not reset loaded and stored syms.
9358         (gimple_set_stored_syms): Remove.
9359         (gimple_set_loaded_syms): Likewise.
9360         (gimple_call_copy_skip_args): Copy the virtual operands
9361         and mark the new statement modified.
9362         * tree-ssa-structalias.c (may_alias_p): Remove.
9363         (set_uids_in_ptset): Take the alias set to prune with as
9364         parameter.  Fold in the alias test of may_alias_p.
9365         (compute_points_to_sets): Compute whether a ptr is dereferenced
9366         in a local sbitmap.
9367         (process_constraint): Deal with &ANYTHING on the lhs, reject all
9368         other ADDRESSOF constraints on the lhs.
9369         (get_constraint_for_component_ref): Assert that we don't get
9370         ADDRESSOF constraints from the base of the reference.
9371         Properly generate UNKNOWN_OFFSET for DEREF if needed.
9372         (struct variable_info): Remove collapsed_to member.
9373         (get_varinfo_fc): Remove.
9374         (new_var_info): Do not set collapsed_to.
9375         (dump_constraint): Do not follow cycles.
9376         (dump_constraint_graph): Likewise.
9377         (build_pred_graph): Likewise.
9378         (build_succ_graph): Likewise.
9379         (rewrite_constraints): Likewise.
9380         (do_simple_structure_copy): Remove.
9381         (do_rhs_deref_structure_copy): Remove.
9382         (do_lhs_deref_structure_copy): Remove.
9383         (collapse_rest_of_var): Remove.
9384         (do_structure_copy): Re-implement.
9385         (pta_stats): New global variable.
9386         (dump_pta_stats): New function.
9387         (struct constraint_expr): Make offset signed.
9388         (UNKNOWN_OFFSET): Define special value.
9389         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9390         (solution_set_expand): New helper function split out from ...
9391         (do_sd_constraint): ... here.
9392         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
9393         (do_ds_constraint): Likewise.
9394         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
9395         and CALLUSED = *CALLUSED.
9396         (set_union_with_increment): Make inc argument signed.
9397         (type_safe): Remove.
9398         (get_constraint_for_ptr_offset): Handle unknown and negative
9399         constant offsets.
9400         (first_vi_for_offset): Handle offsets before start.  Bail
9401         out early for offsets beyond the variable extent.
9402         (first_or_preceding_vi_for_offset): New function.
9403         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9404         Together with ESCAPED = *ESCAPED this properly computes reachability.
9405         (find_what_var_points_to): New function.
9406         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9407         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9408         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9409         pt_solutions_intersect): New functions.
9410         (compute_call_used_vars): Remove.
9411         (compute_may_aliases): New main entry into PTA computation.
9412         * gimple.h (gimple_p): New typedef.
9413         (struct gimple_statement_base): Remove references_memory_p.
9414         (struct gimple_statement_with_memory_ops_base): Remove
9415         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
9416         members.
9417         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9418         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9419         gimple_set_references_memory): Remove.
9420         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9421         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9422         New functions.
9423         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9424         (verify_expr): Allow RESULT_DECL.
9425         (gimple_duplicate_bb): Do not copy virtual operands.
9426         (gimple_duplicate_sese_region): Adjust.
9427         (gimple_duplicate_sese_tail): Likewise.
9428         (mark_virtual_ops_in_region): Remove.
9429         (move_sese_region_to_fn): Do not call it.
9430         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9431         and pass_simple_dse.
9432         (execute_function_todo): Handle TODO_update_address_taken,
9433         call execute_update_addresses_taken for TODO_rebuild_alias.
9434         (execute_todo): Adjust.
9435         (execute_one_pass): Init dump files early.
9436         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9437         call-clobbered.
9438         (create_general_new_stmt): Clear vops.
9439         * tree-ssa-reassoc.c (get_rank): Adjust.
9440         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9441         symbols for renaming.
9442         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9443         (PARAM_AVG_ALIASED_VOPS): Likewise.
9444         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9445         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
9446         * tree-ssa-operands.c: Simplify for new virtual operand representation.
9447         (operand_build_cmp, copy_virtual_operands,
9448         create_ssa_artificial_load_stmt, add_to_addressable_set,
9449         gimple_add_to_addresses_taken): Remove public functions.
9450         (unlink_stmt_vdef): New function.
9451
9452 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9453
9454         * config.gcc (powerpc-*-linux*): Merge variants.
9455
9456 2009-04-02  Chao-ying Fu  <fu@mips.com>
9457             James Grosbach  <james.grosbach@microchip.com>
9458
9459         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9460         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9461         cop0_sp_offset.
9462         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9463         keep_interrupts_masked_p, use_debug_exception_return_p.
9464         (mips_attribute_table): Add interrupt, use_shadow_register_set,
9465         keep_interrupts_masked, use_debug_exception_return.
9466         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9467         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9468         New functions.
9469         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9470         (mips_print_operand): Process COP0 registers to print $0 .. $31
9471         correctly for GAS to process.
9472         (mips_interrupt_extra_call_saved_reg_p): New function.
9473         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9474         extra registers.
9475         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9476         (mips_compute_frame_info): Add supports for interrupt context that
9477         includes doubleword accumulators and COP0 registers.
9478         (mips_for_each_saved_acc): New function.
9479         (mips_for_each_saved_gpr_and_fpr): Change the function name from
9480         mips_for_each_saved_reg.
9481         (mips_save_reg): Save accumulators.
9482         (mips_kernel_reg_p): A new for_each_rtx callback.
9483         (mips_expand_prologue): Support interrupt handlers.
9484         (mips_restore_reg): Restore accumulators.
9485         (mips_expand_epilogue): Support interrupt handlers.
9486         (mips_can_use_return_insn): Return false for interrupt handlers.
9487         (mips_epilogue_uses): New function.
9488         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9489         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9490         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9491         cop0_move): New instructions.
9492         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9493         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9494         defines.
9495         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9496         New defines.
9497         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9498         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9499         interrupt handlers, we use K0 as the temporary register.
9500         (EPILOGUE_USES): Change to a function call.
9501         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9502         handlers, we use K0 as the temporary register.
9503
9504         * doc/extend.texi (Function Attributes): Document interrupt,
9505         use_shadow_register_set, keep_interrupts_masked,
9506         use_debug_exception_return for MIPS attributes.
9507
9508 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9509
9510         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9511         Remove a number of t-files from tmake_file.
9512         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9513         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9514         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9515         target_prototype, not TARGET_PROTOTYPE.
9516         (LINK_OS_GNU_SPEC): Define.
9517         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9518         and darwin-ldoubdle.c.
9519
9520 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9521
9522         PR driver/39293
9523         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9524         (cpp_options): Ditto.
9525         (default_compilers): Ditto.
9526         (display_help): Ditto.
9527         (process_command): Ditto.
9528         (do_spec_1): Ditto.
9529         (set_input): Use lbasename instead of duplicate code.
9530         (save_temps_prefix): New static for -save-temps=obj.
9531         (save_temps_length): Ditto.
9532
9533         * doc/invoke.texi (-save-temps=obj): Document new variant to
9534         -save-temps switch.
9535
9536 2009-04-02  Jeff Law  <law@redhat.com>
9537
9538         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9539         variable.
9540
9541 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9542
9543         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9544         * configure: Regenerated.
9545
9546 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9547
9548         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9549         share the argument list.
9550
9551 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9552
9553         Merge
9554
9555         2009-02-12  Diego Novillo  <dnovillo@google.com>
9556
9557         * varpool.c (debug_varpool): New.
9558         * cgraph.h (debug_varpool): Declare.
9559
9560 2009-04-02  Jan Hubicka  <jh@suse.cz>
9561
9562         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9563         pass.
9564
9565 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9566
9567         * config/i386/i386.c (ix86_abi): Move initialization to ...
9568         (override_options): Here.
9569
9570 2009-04-02  Christian Bruel  <christian.bruel@st.com>
9571
9572         * config/sh/sh.c (sh_dwarf_register_span): New function.
9573         (TARGET_DWARF_REGISTER_SPAN): Define.
9574         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
9575
9576 2009-04-02  Ira Rosen  <irar@il.ibm.com>
9577
9578         PR tree-optimization/39595
9579         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
9580         interleaved loads group is not  greater than the SLP group size.
9581
9582 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9583
9584         * builtins.c (is_builtin_name): New.
9585         (called_as_built_in): Use is_builtin_name.
9586         * tree.h (is_builtin_name): New.
9587         * varasm.c (incorporeal_function_p): Use is_builtin_name
9588
9589 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
9590
9591         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9592
9593 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
9594
9595         PR c++/26693
9596         * c-decl.c (clone_underlying_type): Move this ...
9597         * c-common.c (set_underlying_type): ... here.
9598         Also, make sure the function properly sets TYPE_STUB_DECL() on
9599         the newly created typedef variant type.
9600         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
9601         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9602         points.
9603
9604 2009-04-02  Richard Guenther  <rguenther@suse.de>
9605
9606         PR tree-optimization/37221
9607         * tree-flow.h (degenerate_phi_result): Declare.
9608         * tree-ssa-dom.c (degenerate_phi_result): Export.
9609         * tree-scalar-evolution.c (analyze_initial_condition): If
9610         the initial condition is defined by a degenerate PHI node
9611         use the degenerate value.
9612
9613 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
9614
9615         PR rtl-optimization/39588
9616         * combine.c (merge_outer_ops): Do not set the constant when this
9617         is not necessary.
9618         (simplify_shift_const_1): Do not modify it either in this case.
9619
9620 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
9621
9622         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9623         tuning is deprecated if -mtune value is set to an Itanium1 variant.
9624
9625 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
9626
9627         PR c/29027
9628         * c-lex.c (interpret_float): Default (no suffix) is double.
9629
9630 2009-04-1  Xinliang David Li  <davidxl@google.com>
9631
9632         * config/i386/i386.c (legitimate_constant_p): Recognize
9633         all one vector constant.
9634
9635 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9636
9637         * config/vax/vax.c: Add #includes to silence warnings.
9638         Change #include order to silence two warnings.
9639
9640 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9641
9642         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
9643         (ASM_SPEC): Pass -k to the assembler for PIC code.
9644
9645 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9646
9647         * config.gcc: Add vax-*-linux* to the switch.
9648         * config/vax/linux.h: New file. (TARGET_VERSION,
9649         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9650
9651 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9652
9653         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
9654         Use predicate macros instead of GET_CODE() == foo.
9655         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
9656         ashlsi3, rotrsi3, <unnamed>): Likewise.
9657
9658 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9659
9660         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
9661         jbbccihi, jbbccisi): Remova trailing whitespace.
9662         * config/vax/constraints.md: Likewise.
9663         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9664         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9665         * config/vax/predicates.md: Likewise.
9666         * config/vax/vax.c (print_operand_address, vax_output_int_move,
9667         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
9668         * config/vax/vax.h: Likewise.
9669         * config/vax/vax.md (nonlocal_goto): Likewise.
9670
9671 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9672
9673         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
9674         (indirectable_address_p, adjacent_operands_p): Add spaces around
9675         braces.
9676         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
9677
9678 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9679
9680         * config/vax/vax.c (legitimate_constant_address_p,
9681         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9682         index_term_p, reg_plus_index_p, legitimate_address_p,
9683         vax_mode_dependent_address_p): Update comments to match functions
9684         modified by the recent int->bool conversion.
9685
9686 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9687
9688         * config/vax/builtins.md: Update copyright message.
9689         * config/vax/constraints.md: Likewise.
9690         * config/vax/netbsd-elf.h: Likewise.
9691         * config/vax/predicates.md: Likewise.
9692         * config/vax/vax-protos.h: Likewise.
9693         * config/vax/vax.c: Likewise.
9694         * config/vax/vax.h: Likewise.
9695         * config/vax/vax.md: Likewise.
9696         * config/vax/vax.opt: Likewise.
9697
9698 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9699
9700         * config/vax/builtins.md (ffssi2, ffssi2_internal,
9701         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
9702         * config/vax/constraints.md (B, R): Likewise.
9703         * config/vax/predicates.md (external_memory_operand,
9704         nonimmediate_addsub_di_operand): Likewise.
9705         * config/vax/vax.c (vax_output_int_add): Likewise.
9706         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
9707         untyped_call): Likewise.
9708
9709 2009-04-01  Matt Thomas  <matt@3am-software.com>
9710
9711         * config/vax/predicates.md: New file.
9712         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
9713         external_const_operand, nonsymbolic_operand, external_memory_operand,
9714         indirect_memory_operand, indexed_memory_operand,
9715         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9716         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9717         predicate.
9718         * config/vax/constraints.md: New file.
9719         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9720         New constraint.
9721         * config/vax/builtins.md: New file.
9722         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9723         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9724         jbbccisi): Define.
9725         * config/vax/vax.opt (mqmath): Add option.
9726         * config/vax/vax.md (isfx): Extend with DI.
9727         (VAXintQH, VAXintQHSD): Define.
9728         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9729         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9730         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9731         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9732         (movdi): Update constraints and use vax_output_int_move().
9733         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9734         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9735         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9736         nonlocal_goto): New.
9737         (mov<mode>): Extend accepted operand types.
9738         (subdi3_old): Rename from subdi3, change update constraints and use
9739         a new implementation.
9740         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
9741         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9742         MOVE_RATIO, CLEAR_RATIO): Define.
9743         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9744         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9745         (PRINT_OPERAND): Redefine using a function instead of inlined code.
9746         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9747         (split_quadword_operands): Make static and really allow variable
9748         splitting.
9749         (print_operand_address): Update for PIC generation.
9750         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9751         indexable_address_p, fixup_mathdi_operand,
9752         vax_expand_addsub_di_operands, adjacent_operands_p): New.
9753         (vax_float_literal, legitimate_constant_p,
9754         indirectable_constant_address_p, index_term_p,
9755         reg_plus_index_p): Return bool instead of int.
9756         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9757         where needed.
9758         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9759         generation.
9760         (vax_output_conditional_branch): Indent.
9761         (legitimate_constant_address_p, indirectable_constant_address_p,
9762         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9763         vax_mode_dependent_address_p): Return bool instead of int, update for
9764         PIC generation.
9765         * config/vax/vax-protos.h (legitimate_constant_address_p,
9766         legitimate_constant_p, legitimate_address_p,
9767         vax_mode_dependent_address_p): Change declaration to bool.
9768         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9769         vax_expand_addsub_di_operands, vax_output_int_subtract,
9770         vax_output_movmemsi): Declare.
9771         (split_quadword_operands, vax_float_literal): Delete declaration.
9772         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9773         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9774         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9775         ASM_OUTPUT_DWARF_PCREL): Define.
9776         (ASM_SPEC): Change definition to allow PIC generation.
9777
9778 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
9779
9780         * doc/sourcebuild.texi: Update front-end requirements.
9781
9782 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9783
9784         PR target/39226
9785         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9786         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9787         (booldi3_internal3): Use boolean_or_operator instead of
9788         boolean_operator.
9789
9790 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
9791
9792         PR c/39605
9793         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9794         declarator whose size is not an integer constant expression but
9795         folds to an integer constant, then treat it as a constant
9796         subsequently.
9797
9798 2009-04-01  Richard Guenther  <rguenther@suse.de>
9799
9800         * fold-const.c (fold_plusminus_mult_expr): Do not fold
9801         i * 4 + 2 to (i * 2 + 1) * 2.
9802
9803 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9804
9805         PR c/37772
9806         * c-parser.c (c_parser_asm_statement): Skip until close paren and
9807         return if c_parser_asm_string_literal returned NULL.
9808
9809 2009-04-01  Nick Clifton  <nickc@redhat.com>
9810
9811         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9812         already defined.
9813         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9814         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
9815         other typedefs to avoid conflicts with libgcc2.c.  Define labels
9816         to gain 16-bit bit-manipulation functions from libgcc2.c and then
9817         include it.
9818         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
9819         to gain 16-bit trapping arithmetic functions from libgcc2.c and
9820         then include it.
9821
9822 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
9823
9824         * varasm.c (default_function_rodata_section): Declare DOT as
9825         const char*.
9826
9827 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
9828             Andrey Galkin  <agalkin@hypercom.com>
9829
9830         PR/39492
9831         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9832         Make object_name unique for each process.
9833
9834 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9835
9836         PR other/39591
9837         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9838         addressable variables in the parallel that could go out of scope while
9839         running queued tasks.
9840
9841 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
9842
9843         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9844         (CASE_VALUES_THRESHOLD): Redefine.
9845         * config/avr/avr.c (avr_override_options): Remove initialization of
9846         avr_case_values_threshold variable.
9847         (avr_case_values_threshold): Remove variable. Add new function.
9848         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9849         * config/avr/avr.opt (mno-tablejump): Remove option.
9850         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9851
9852 2009-04-01  DJ Delorie  <dj@redhat.com>
9853
9854         * varasm.c (default_function_rodata_section): Don't assume
9855         anything about where the first '.' in the section name is.
9856
9857 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
9858
9859         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9860         rs6000_emit_stack_tie.
9861
9862 2009-03-31  Ian Lance Taylor  <iant@google.com>
9863
9864         * tree-eh.c (tree_remove_unreachable_handlers): Compare
9865         gimple_code with GIMPLE_RESX, not RESX.
9866
9867 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9868
9869         * c-common.c (c_get_ident): New.
9870         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9871
9872 2009-04-01  Ben Elliston  <bje@au.ibm.com>
9873
9874         * config/rs6000/sysv4.opt (msdata): Improve option description.
9875
9876 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
9877
9878         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9879         (divdf3_internal_lat): Remove.
9880         (divxf3_internal_lat): Remove.
9881         (divxf3_internal_thr): Remove.
9882         (divxf): Use divxf3_internal.
9883         * config/ia64/div.md (divsf3_internal_lat): New.
9884         (divdf3_internal_lat): New.
9885         (divxf3_internal): New.
9886
9887 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9888
9889         PR c/448
9890         * Makefile.in (USE_GCC_STDINT): Define.
9891         (stmp-int-hdrs): Install stdint.h if applicable.
9892         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9893         if known.
9894         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9895         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9896         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9897         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9898         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9899         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9900         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9901         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9902         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9903         (c_common_nodes_and_builtins): Initialize
9904         underlying_wchar_type_node.  Do not initialize
9905         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
9906         nodes for new types.
9907         (c_stddef_cpp_builtins): Define macros for new types.
9908         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9909         Remove.
9910         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9911         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9912         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9913         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9914         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9915         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9916         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9917         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9918         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9919         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9920         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9921         int16_type_node, int32_type_node, int64_type_node,
9922         uint8_type_node, uint16_type_node, c_uint32_type_node,
9923         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9924         int_least32_type_node, int_least64_type_node,
9925         uint_least8_type_node, uint_least16_type_node,
9926         uint_least32_type_node, uint_least64_type_node,
9927         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9928         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9929         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9930         uintptr_type_node): Define.
9931         * c-cppbuiltin.c (builtin_define_constants,
9932         builtin_define_type_minmax): New.
9933         (builtin_define_stdint_macros): Define more macros.
9934         (c_cpp_builtins): Define more limit macros.
9935         (type_suffix): New.
9936         (builtin_define_type_max): Define in terms of
9937         builtin_define_type_minmax.  Remove is_long parameter.  All
9938         callers changed.
9939         * config.gcc (use_gcc_stdint): Define.
9940         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9941         Add newlib-stdint.h for generic targets.
9942         * config/glibc-stdint.h, config/newlib-stdint.h,
9943         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9944         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9945         * config/score/score.h (UINTPTR_TYPE): Define.
9946         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9947         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9948         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9949         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9950         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9951         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9952         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9953         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9954         * config/spu/spu.h (STDINT_LONG32): Define.
9955         * configure.ac (use_gcc_stdint): Substitute.
9956         * configure: Regenerate.
9957         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9958         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9959         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9960         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9961         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9962         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9963         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9964         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9965         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9966         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9967         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9968         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9969         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9970         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9971         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9972         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9973         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9974         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9975         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9976         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9977         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9978         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9979         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9980         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9981         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9982         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9983         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9984         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9985         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9986
9987 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9988
9989         * loop-iv.c (suitable_set_for_replacement): Renamed from
9990         simplify_using_assignment; changed to return bool and to accept new
9991         args DEST and SRC.  Return true iff we find a source/destination pair
9992         that can be used to make a replacement, and fill SRC and DEST if so.
9993         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
9994         changed.
9995         (simplify_using_initial_values): Deal with altered regs here and track
9996         more precisely the effect they have on the validity of our expression.
9997
9998         * loop-iv.c (simplify_using_condition): A condition of the form
9999         (EQ REG CONST) can be used to simply make a substitution.
10000         (simplify_using_initial_values): Keep track of conditions we have seen
10001         and keep using them to simplify new expressions, while applying the
10002         same substitutions to them as to the expression.
10003
10004         * simplify-rtx.c (simplify_relational_operation_1): Simplify
10005         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
10006         GEU/LTU reversed.
10007
10008         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
10009         changed.  Use this when trying to improve the upper bound.
10010         Generate the comparison by using simplify_gen_relational.
10011
10012         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
10013
10014         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
10015         functions.
10016         (simplify_using_assignment, simplify_using_initial_values): Call
10017         replace_in_expr to make replacements.  Call replace_single_def_regs
10018         once on the initial version of the expression.
10019
10020 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10021
10022         PR target/27237
10023         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
10024
10025 2009-03-31  Richard Guenther  <rguenther@suse.de>
10026
10027         PR middle-end/31029
10028         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
10029         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
10030
10031 2009-03-31  Richard Guenther  <rguenther@suse.de>
10032
10033         * tree.h (div_if_zero_remainder): Declare.
10034         * fold-const.c (div_if_zero_remainder): Export.
10035         * tree-ssa-forwprop.c
10036         (forward_propagate_addr_into_variable_array_index): Handle
10037         constant array index addition outside of the variable index.
10038
10039 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
10040
10041         PR target/39592
10042         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
10043         define_splits, floatunssi<mode>2): Require x87 conversions from
10044         DImode to be permitted.
10045
10046 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
10047
10048         PR preprocessor/15638
10049         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
10050
10051 2009-03-31  Richard Guenther  <rguenther@suse.de>
10052
10053         PR middle-end/23401
10054         PR middle-end/27810
10055         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
10056         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
10057         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
10058         a separate statement.
10059         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
10060         (lookup_tmp_var): Likewise.
10061         (is_gimple_formal_tmp_or_call_rhs): Remove.
10062         (is_gimple_reg_or_call_rhs): Rename to ...
10063         (is_gimple_reg_rhs_or_call): ... this.
10064         (is_gimple_mem_or_call_rhs): Rename to ...
10065         (is_gimple_mem_rhs_or_call): ... this.
10066         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
10067         DECL_GIMPLE_REG_P only if is_formal is true.
10068         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
10069         for non-proper post-modify expression gimplification.
10070         (gimplify_self_mod_expr): For post-modify expressions gimplify
10071         the lvalue to a minimal lvalue.
10072         (rhs_predicate_for): Remove formal temp case.
10073         (gimplify_modify_expr_rhs): Likewise.
10074         (gimplify_addr_expr): Use is_gimple_reg.
10075         (gimplify_expr): Remove formal temp cases.
10076         (gimple_regimplify_operands): Likewise.
10077         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
10078         and FILTER_EXPR like constants.
10079         * gimple.c (walk_gimple_op): Fix val_only initialization, use
10080         is_gimple_reg.
10081         (is_gimple_formal_tmp_rhs): Remove.
10082         (is_gimple_reg_rhs): Remove special casing.
10083         (is_gimple_mem_rhs): Fix.
10084         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
10085         (is_gimple_formal_tmp_var): Remove.
10086         (is_gimple_formal_tmp_reg): Likewise.
10087         (is_gimple_min_lval): Allow invariant component ref parts.
10088         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
10089         is_gimple_formal_tmp_reg): Remove declarations.
10090         * tree-cfg.c (verify_expr): Verify that variables with address
10091         taken do not have DECL_GIMPLE_REG_P set.
10092         * tree-mudflap.c (mf_build_check_statement_for): Use
10093         force_gimple_operand instead of gimplify_expr.
10094
10095 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
10096
10097         * modulo-sched.c (sms_schedule_by_order): Pass the actual
10098         schedulable rows to compute_split_row.
10099
10100 2009-03-31  Ben Elliston  <bje@au.ibm.com>
10101
10102         PR target/31635
10103         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
10104         OPT_mvrsave.
10105
10106 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
10107
10108         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
10109         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
10110         * configure: Regenerate.
10111         * config.in: Regenerate.
10112         * config/rs6000/rs6000.opt (mtls-markers): Add.
10113         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
10114         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
10115         (tls_ld_aix, tls_ld_sysv): Likewise.
10116         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
10117         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
10118
10119 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
10120
10121         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
10122
10123 2009-03-30  Jan Hubicka  <jh@suse.cz>
10124
10125         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
10126         out of RESX.
10127         (tree_remove_unreachable_handlers): Cleanup EH predecestor
10128         detection and label handling.
10129
10130 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
10131
10132         * ira-int.h (ira_allocno): Rename left_conflicts_num to
10133         left_conflicts_size.
10134         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
10135         ALLOCNO_LEFT_CONFLICTS_SIZE.
10136
10137         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
10138         remove_allocno_from_bucket_and_push,
10139         allocno_spill_priority_compare, push_allocnos_to_stack,
10140         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10141         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
10142         (setup_allocno_left_conflicts_num): Ditto.  Rename to
10143         setup_allocno_left_conflicts_size.
10144         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
10145         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
10146         setup_allocno_left_conflicts_size instead of
10147         setup_allocno_left_conflicts_num.
10148
10149         * ira-build.c (ira_create_allocno): Use
10150         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
10151         ALLOCNO_LEFT_CONFLICTS_NUM.
10152
10153 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
10154
10155         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10156         instead of DF_LR_OUT.
10157
10158         * ira-lives.c (process_bb_node_lives): Ditto.
10159
10160         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10161         instead of DF_LR_{OUT,IN}.
10162
10163         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10164
10165         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10166
10167 2009-03-30  Jan Hubicka  <jh@suse.cz>
10168
10169         * except.c (label_to_region_map): Fix thinko.
10170
10171 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
10172
10173         PR middle-end/38237
10174         * tree.h (tree_find_value): New declaration.
10175         * tree.c (tree_find_value): New function.
10176         * varasm.c (assemble_external): Avoid duplicate entries on lists.
10177
10178 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
10179
10180         PR debug/39563
10181         * c-decl.c (struct c_binding): Add locus field.
10182         (bind): Add locus argument, set locus field from it.
10183         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
10184         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
10185         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
10186         implicitly_declare, undeclared_variable, lookup_label,
10187         declare_label, c_make_fname_decl, c_builtin_function,
10188         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
10189         bind callers.
10190
10191 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
10192
10193         PR target/38781
10194         * config/i386/i386.c (classify_argument): Check total size of
10195         structure.
10196
10197 2009-03-30  Martin Jambor  <mjambor@suse.cz>
10198
10199         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
10200         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
10201         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
10202         respectively.
10203
10204         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
10205         seen_variable_array_ref while also traversing a union.
10206
10207         * tree-inline.c (optimize_inline_calls): Do not call
10208         cgraph_node_remove_callees.
10209         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
10210         (pass_remove_cgraph_callee_edges): New variable.
10211         * passes.c (init_optimization_passes): Add
10212         pass_remove_cgraph_callee_edges after early inlining and before all
10213         late intraprocedural passes.
10214
10215         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
10216
10217 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10218
10219         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
10220         Fix typos in names.
10221
10222 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10223
10224         * combine.c (simplify_comparison): Use have_insn_for.
10225         * dojump.c (do_jump): Likewise.
10226
10227 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10228
10229         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
10230         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
10231         sparc_compare_op0 like sparc_compare_emitted used to be handled.
10232         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
10233         instead of sparc_compare_emitted.
10234         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
10235         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
10236         instead of sparc_compare_emitted.
10237
10238 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10239
10240         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
10241         enter/exit cfglayout mode.
10242         (pass_partition_block): Require it.
10243         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
10244         (combine_instructions): Track basic blocks instead of labels.
10245         (update_cfg_for_uncondjump): New.
10246         (try_combine): Use it.  Update jumps after rescanning.
10247         (pass_combine): Require PROP_cfglayout.
10248         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
10249
10250 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10251
10252         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
10253         Provide/destroy PROP_cfglayout respectively.
10254         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
10255         * tree-pass.h (PROP_cfglayout): New.
10256
10257 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
10258
10259         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
10260         fold_convert_const_fixed_from_fixed,
10261         fold_convert_const_fixed_from_int,
10262         fold_convert_const_fixed_from_real, fold_negate_const): Do not
10263         set TREE_CONSTANT_OVERFLOW.
10264         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
10265         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
10266
10267 2009-03-30  Ira Rosen  <irar@il.ibm.com>
10268
10269         * tree-vect-loop-manip.c: New file.
10270         * tree-vectorizer.c: Update documentation and included files.
10271         (vect_loop_location): Make extern.
10272         (rename_use_op): Move to tree-vect-loop-manip.c
10273         (rename_variables_in_bb, rename_variables_in_loop,
10274         slpeel_update_phis_for_duplicate_loop,
10275         slpeel_update_phi_nodes_for_guard1,
10276         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
10277         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
10278         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
10279         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
10280         find_loop_location): Likewise.
10281         (new_stmt_vec_info): Move to tree-vect-stmts.c.
10282         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
10283         get_vectype_for_scalar_type, vect_is_simple_use,
10284         supportable_widening_operation, supportable_narrowing_operation):
10285         Likewise.
10286         (bb_in_loop_p): Move to tree-vect-loop.c.
10287         (new_loop_vec_info, destroy_loop_vec_info,
10288         reduction_code_for_scalar_code, report_vect_op,
10289         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
10290         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
10291         (vect_supportable_dr_alignment): Likewise.
10292         * tree-vectorizer.h (tree-data-ref.h): Include.
10293         (vect_loop_location): Declare.
10294         Reorganize function declarations according to the new file structure.
10295         * tree-vect-loop.c: New file.
10296         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
10297         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
10298         * tree-vect-data-refs.c: New file.
10299         * tree-vect-patterns.c (timevar.h): Don't include.
10300         * tree-vect-stmts.c: New file.
10301         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
10302         tree-vect-slp.c, tree-vect-loop.c.
10303         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
10304         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
10305         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
10306         (tree-vect-analyze.o): Remove.
10307         (tree-vect-transform.o): Likewise.
10308         (tree-vect-data-refs.o): Add rule.
10309         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
10310         tree-vect-slp.o): Likewise.
10311         (tree-vect-patterns.o): Remove redundant dependencies.
10312         (tree-vectorizer.o): Likewise.
10313         * tree-vect-slp.c: New file.
10314
10315 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10316
10317         * optc-gen.awk: Warn if an option flag has multiple different
10318         help strings.
10319
10320 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
10321
10322         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
10323         -floop-block): Document dependences on PPL, CLooG and Graphite.
10324
10325 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
10326
10327         PR rtl-optimization/323
10328         * c-common.c (c_fully_fold, convert_and_check,
10329         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
10330         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
10331         * c-common.def (EXCESS_PRECISION_EXPR): New.
10332         * c-cppbuiltin.c (builtin_define_float_constants): Define
10333         constants with enough digits for long double.
10334         * c-lex.c (interpret_float): Interpret constant with excess
10335         precision where appropriate.
10336         * c-opts.c (c_common_post_options): Set
10337         flag_excess_precision_cmdline.  Give an error for
10338         -fexcess-precision=standard for C++ for processors where the
10339         option is significant.
10340         * c-parser.c (c_parser_conditional_expression): Handle excess
10341         precision in condition.
10342         * c-typeck.c (convert_arguments): Handle arguments with excess
10343         precision.
10344         (build_unary_op): Move excess precision outside operation.
10345         (build_conditional_expr): Likewise.
10346         (build_compound_expr): Likewise.
10347         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
10348         (build_modify_expr): Handle excess precision in RHS.
10349         (convert_for_assignment): Handle excess precision in converted
10350         value.
10351         (digest_init, output_init_element, process_init_element): Handle
10352         excess precision in initializer.
10353         (c_finish_return): Handle excess precision in return value.
10354         (build_binary_op): Handle excess precision in operands and add
10355         excess precision as needed for operation.
10356         * common.opt (-fexcess-precision=): New option.
10357         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
10358         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
10359         For standard excess precision, output explicit conversion to and
10360         truncation from XFmode.
10361         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
10362         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
10363         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
10364         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
10365         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
10366         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
10367         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
10368         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
10369         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
10370         define_splits, sqrt<mode>2): Disable where appropriate for
10371         standard excess precision.
10372         * convert.c (convert_to_real): Do not shorten arithmetic to type
10373         for which excess precision would be used.
10374         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
10375         * doc/invoke.texi (-fexcess-precision=): Document option.
10376         (-mfpmath=): Correct index entry.
10377         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
10378         flag_excess_precision): New.
10379         * langhooks.c (lhd_post_options): Set
10380         flag_excess_precision_cmdline.
10381         * opts.c (common_handle_option): Handle -fexcess-precision=.
10382         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10383         init_excess_precision): New.
10384         (lang_dependent_init_target): Call init_excess_precision.
10385         * tree.c (excess_precision_type): New.
10386         * tree.h (excess_precision_type): Declare.
10387
10388 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
10389
10390         PR c/35235
10391         * c-typeck.c (build_component_ref): Do not copy qualifiers from
10392         non-lvalue to component.
10393
10394 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
10395
10396         PR preprocessor/34695
10397         * Makefile.in (c-opts.o): Depend on c-tree.h.
10398         * c-common.c: Move down include of diagnostic.h.
10399         (done_lexing, c_cpp_error): New.
10400         * c-common.h (done_lexing): Declare.
10401         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10402         (parse_in).
10403         * c-opts.c: Include c-tree.h.
10404         (c_common_init_options): Set preprocessor error callback.
10405         (c_common_handle_option): Do not set preprocessor
10406         inhibit_warnings, warnings_are_errors, warn_system_headers,
10407         pedantic_errors or inhibit_warnings flags.
10408         (c_common_post_options): Do not check cpp_errors (parse_in).
10409         (c_common_finish): Do not output dependencies if there were
10410         errors.  Do not check return value of cpp_finish.
10411         * c-ppoutput.c (pp_file_change): Set input_location.
10412         * c-tree.h (c_cpp_error): Declare.
10413         * diagnostic.c (diagnostic_set_info_translated): Also initialize
10414         override_column.
10415         (diagnostic_build_prefix): Check override_column.
10416         * diagnostic.h (diagnostic_info): Add override_column field.
10417         (diagnostic_override_column): Define.
10418
10419 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
10420
10421         * c-common.c (c_expand_expr, c_staticp): Remove.
10422         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10423         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10424         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10425         * c-gimplify.c (gimplify_compound_literal_expr,
10426         optimize_compound_literals_in_ctor): Remove.
10427         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10428         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10429         * c-semantics.c (emit_local_var): Remove.
10430
10431         * langhooks-def.h (lhd_expand_expr): Remove.
10432         * langhooks.c (lhd_expand_expr): Remove.
10433         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10434
10435         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10436         handling from c-semantics.c; don't call into langhook.
10437         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10438         * gimplify.c (gimplify_compound_literal_expr,
10439         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10440         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10441         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10442         as was done in c-gimplify.c.
10443         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10444         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10445         Move from c-common.h.
10446         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
10447
10448         * tree.c (staticp): Do not call langhook.
10449         * langhooks.c (lhd_staticp): Delete.
10450         * langhooks-def.h (lhd_staticp): Delete prototype.
10451         (LANG_HOOKS_STATICP): Delete.
10452         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10453
10454         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10455         instead of DECL_STMTs.
10456
10457 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
10458
10459         PR c/456
10460         PR c/5675
10461         PR c/19976
10462         PR c/29116
10463         PR c/31871
10464         PR c/35198
10465         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10466         void_type_node.
10467         (fold_call_expr): Return a NOP_EXPR from folding rather than the
10468         contained expression.
10469         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
10470         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
10471         conditional expressions for C.
10472         (decl_constant_value_for_optimization): Move from
10473         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
10474         whether optimizing and that the expression is a VAR_DECL not of
10475         array type instead of doing such checks in the caller.  Do not
10476         check pedantic.  Call gcc_unreachable for C++.
10477         * c-common.def (C_MAYBE_CONST_EXPR): New.
10478         * c-common.h (c_fully_fold, c_save_expr,
10479         decl_constant_value_for_optimization): New prototypes.
10480         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10481         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10482         EXPR_INT_CONST_OPERANDS): Define.
10483         * c-convert.c (convert): Strip nops from expression.
10484         * c-decl.c (groktypename): Take extra parameters expr and
10485         expr_const_operands.  Update call to grokdeclarator.
10486         (start_decl): Update call to grokdeclarator.  Add statement for
10487         expressions used in type of decl.
10488         (grokparm): Update call to grokdeclarator.
10489         (push_parm_decl): Update call to grokdeclarator.
10490         (build_compound_literal): Add parameter non_const and build a
10491         C_MAYBE_COSNT_EXPR if applicable.
10492         (grokdeclarator): Take extra parameters expr and
10493         expr_const_operands.  Track expressions used in declaration
10494         specifiers and declarators.  Fold array sizes and track whether
10495         they are constant expressions and whether they are integer
10496         constant expressions.
10497         (parser_xref_tag): Set expr and expr_const_operands fields in
10498         return value.
10499         (grokfield): Update call to grokdeclarator.
10500         (start_function): Update call to grokdeclarator.
10501         (build_null_declspecs): Set expr and expr_const_operands fields in
10502         return value.
10503         (declspecs_add_type): Handle expressions in typeof specifiers.
10504         * c-parser.c (c_parser_declspecs): Set expr and
10505         expr_const_operands fields for declaration specifiers.
10506         (c_parser_enum_specifier): Likewise.
10507         (c_parser_struct_or_union_specifier): Likewise.
10508         (c_parser_typeof_specifier): Likewise.  Update call to
10509         groktypename.  Fold expression as needed.  Return expressions with
10510         type instead of adding statements.
10511         (c_parser_attributes): Update calls to c_parser_expr_list.
10512         (c_parser_statement_after_labels): Fold expression before passing
10513         to objc_build_throw_stmt.
10514         (c_parser_condition): Fold expression.
10515         (c_parser_asm_operands): Fold expression.
10516         (c_parser_conditional_expression): Use c_save_expr.  Update call
10517         to build_conditional_expr.
10518         (c_parser_alignof_expression): Update call to groktypename.
10519         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10520         original_code.  Fold expression argument of va_arg.  Create
10521         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10522         argument to va_arg.  Update calls to groktypename.  Fold array
10523         index for offsetof.  Verify that first argument to
10524         __builtin_choose_expr has integer type.
10525         (c_parser_postfix_expression_after_paren_type): Update calls to
10526         groktypename and build_compound_literal.  Handle expressions with
10527         side effects in type name.
10528         (c_parser_postfix_expression_after_primary): Update call to
10529         c_parser_expr_list.  Set original_code for calls to
10530         __builtin_constant_p.
10531         (c_parser_expr_list): Take extra parameter fold_p.  Fold
10532         expressions if requested.
10533         (c_parser_objc_type_name): Update call to groktypename.
10534         (c_parser_objc_synchronized_statement): Fold expression.
10535         (c_parser_objc_receiver): Fold expression.
10536         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10537         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10538         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10539         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10540         (struct c_typespec): Add elements expr and expr_const_operands.
10541         (struct c_declspecs): Add elements expr and expr_const_operands.
10542         (groktypename, build_conditional_expr, build_compound_literal):
10543         Update prototypes.
10544         (in_late_binary_op): Declare.
10545         * c-typeck.c (note_integer_operands): New function.
10546         (in_late_binary_op): New variable.
10547         (decl_constant_value_for_broken_optimization): Move to c-common.c
10548         and rename to decl_constant_value_for_optimization.
10549         (default_function_array_conversion): Do not strip nops.
10550         (default_conversion): Do not call
10551         decl_constant_value_for_broken_optimization.
10552         (build_array_ref): Do not fold result.
10553         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
10554         result when operand is a VLA.
10555         (c_expr_sizeof_type): Update call to groktypename.  Handle
10556         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
10557         result when operand names a VLA type.
10558         (build_function_call): Update call to build_compound_literal.
10559         Only fold result for calls to __builtin_* functions.  Strip
10560         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
10561         the function designator.
10562         (convert_arguments): Fold arguments.  Update call to
10563         convert_for_assignment.
10564         (build_unary_op): Handle increment and decrement of
10565         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
10566         decrement earlier.  Fold operand of increment and decrement.
10567         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
10568         built for integer operand.  Wrap returns that are INTEGER_CSTs
10569         without being integer constant expressions or that have integer
10570         constant operands without being INTEGER_CSTs.
10571         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10572         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
10573         result is an integer constant expression or can be used in
10574         unevaluated parts of one and avoid folding and wrap as
10575         appropriate.  Fold operands before possibly doing -Wsign-compare
10576         warnings.
10577         (build_compound_expr): Wrap result for C99 if operands can be used
10578         in integer constant expressions.
10579         (build_c_cast): Update call to digest_init.  Do not ignore
10580         overflow from casting floating-point constants to integers.  Wrap
10581         results that could be confused with integer constant expressions,
10582         null pointer constants or floating-point constants.
10583         (c_cast_expr): Update call to groktypename.  Handle expressions
10584         included in type name.
10585         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
10586         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
10587         Update calls to convert_for_assignment.
10588         (convert_for_assignment): Take new parameter
10589         null_pointer_constant.  Do not strip nops or call
10590         decl_constant_value_for_broken_optimization.  Set
10591         in_late_binary_op for conversions to boolean.
10592         (store_init_value): Update call to digest_init.
10593         (digest_init): Take new parameter null_pointer_constant.  Do not
10594         call decl_constant_value_for_broken_optimization.  pedwarn for
10595         initializers not constant expressions.  Update calls to
10596         convert_for_assignment.
10597         (constructor_nonconst): New.
10598         (struct constructor_stack): Add nonconst element.
10599         (really_start_incremental_init, push_init_level, pop_init_level):
10600         Handle constructor_nonconst and nonconst element.
10601         (set_init_index): Call constant_expression_warning for array
10602         designators.
10603         (output_init_element): Fold value.  Set constructor_nonconst as
10604         applicable.  pedwarn for initializers not constant expressions.
10605         Update call to digest_init.  Call constant_expression_warning
10606         where constant initializers are required.
10607         (process_init_element): Use c_save_expr.
10608         (c_finish_goto_ptr): Fold expression.
10609         (c_finish_return): Fold return value.  Update call to
10610         convert_for_assignment.
10611         (c_start_case): Fold switch expression.
10612         (c_process_expr_stmt): Fold expression.
10613         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
10614         ensure statement expression is not evaluated in constant expression.
10615         (build_binary_op): Track whether results are integer constant
10616         expressions or may occur in such, disable folding and wrap results
10617         as applicable.  Fold operands for -Wsign-compare warnings unless
10618         in_late_binary_op.
10619         (c_objc_common_truthvalue_conversion): Handle results folded to
10620         integer constants that are not integer constant expressions.
10621         * doc/extend.texi: Document when typeof operands are evaluated,
10622         that condition of __builtin_choose_expr is an integer constant
10623         expression, and more about use of __builtin_constant_p in
10624         initializers.
10625
10626 2009-03-29  Richard Guenther  <rguenther@suse.de>
10627
10628         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10629         propagate addresses of array references.
10630
10631 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
10632
10633         * regmove.c (perhaps_ends_bb_p): Remove.
10634         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
10635         from INSN and check that the main loop stays within that basic block.
10636         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10637         (regmove_forward_pass): Split out from regmove_optimize.  Use
10638         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10639         (regmove_backward_pass): Split out from regmove_optimize.  Use
10640         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10641         (regmove_optimize): Simplify.
10642
10643 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10644
10645         PR target/39545
10646         * config/i386/i386.c (classify_argument): Ignore flexible array
10647         member in struct and warn ABI change.
10648
10649 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10650
10651         * config/i386/i386-protos.h (ix86_agi_dependent): New.
10652
10653         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10654         (ix86_adjust_cost): Updated.
10655
10656 2009-03-29  Jan Hubicka  <jh@suse.cz>
10657
10658         PR middle-end/28850
10659         * tree-pass.h (pass_cleanup_eh): New function.
10660         (remove_unreachable_regions): Break code handling RTL
10661         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10662         that can not be reached by runtime.
10663         (can_be_reached_by_runtime): New function.
10664         (label_to_region_map): New function.
10665         (num_eh_regions): New function.
10666         (rtl_remove_unreachable_regions): New function.
10667         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10668         (remove_eh_region): New function.
10669         * except.h: Include sbitmap and vecprim.
10670         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10671         num_eh_regions): Declare.
10672         * passes.c (init_optimization_passes): Schedule cleanup_eh.
10673         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
10674         * tree-eh.c (tree_remove_unreachable_handlers): New function.
10675         (tree_empty_eh_handler_p): New function.
10676         (cleanup_empty_eh): New function.
10677         (cleanup_eh): New function.
10678         (pass_cleanup_eh): New function.
10679
10680 2009-03-29  Jan Hubicka  <jh@suse.cz>
10681
10682         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10683         for removed regions.
10684
10685 2009-03-29  Jan Hubicka  <jh@suse.cz>
10686
10687         * except.c (dump_eh_tree): Dump all datastructures.
10688
10689 2009-03-29  Jan Hubicka  <jh@suse.cz>
10690
10691         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10692         (duplicate_eh_regions_1): Likewise.
10693         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10694         vector; call EH verification.
10695         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10696         Be ready for region being removed.
10697
10698 2009-03-29  Jan Hubicka  <jh@suse.cz>
10699
10700         * bitmap.c (bitmap_last_set_bit): New function.
10701         * bitmap.h (bitmap_last_set_bit): Declare.
10702
10703 2009-03-29  David Ayers  <ayers@fsfe.org>
10704
10705         PR objc/27377
10706         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10707         by calling objc_compare_types and surpress warnings about
10708         incompatible C pointers that are compatible ObjC pointers.
10709
10710 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
10711
10712         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10713         call initialize_inline_failed.
10714         (initialize_inline_failed): Move it from here ...
10715         * cgraph.c (initialize_inline_failed): ... to here.
10716         (cgraph_create_edge): Call initialize_inline_failed rather than
10717         setting inline_failed directly.
10718
10719 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10720
10721         PR target/32542
10722         * sysv4.opt (msdata): Improve comment.
10723         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10724         * sysv4.h (SVR4_ASM_SPEC): Likewise.
10725
10726 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10727
10728         PR target/30451
10729         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10730         load and store attributes.
10731
10732 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10733
10734         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10735         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10736         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10737         * doc/extend.texi (X86 Built-in Functions): Add index entries for
10738         __builtin_infq and __builtin_huge_valq.
10739
10740 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
10741
10742         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10743         atmega8m1 devices.
10744         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10745         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10746
10747 2009-03-28  Xinliang David Li  <davidxl@google.com>
10748
10749         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
10750         (do_dbg_cnt): New function.
10751
10752 2009-03-28  Jan Hubicka  <jh@suse.cz>
10753
10754         Merge from pretty-ipa:
10755
10756         2009-03-27  Jan Hubicka  <jh@suse.cz>
10757
10758         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10759         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10760         * passes.c (function_called_by_processed_nodes_p): New.
10761         * ipa-pure-const.c (check_call): Fix handling of operands.
10762         (analyze_function): Dump debug output for skipped bodies.
10763         (local_pure_const): Use function_called_by_processed_nodes_p.
10764         * dwarf2out.c (reference_to_unused): Use output.
10765         * passes.c (do_per_function_toporder): Likewise.
10766
10767         2008-11-12  Jan Hubicka  <jh@suse.cz>
10768
10769         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10770         * ipa-pure-const.c (funct_state_d): Add can throw field; make
10771         state_set_in_source enum
10772         (check_decl): Ignore memory tags; do not set fake looping flags;
10773         dump diagnostics.
10774         (check_operand, check_tree, check_rhs_var, check_lhs_var,
10775         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10776         (check_call, analyze_function): Rewrite.
10777         (check_stmt): New.
10778         (add_new_function): Update call of analyze_function.
10779         (generate_summary): Add call of analyze_function.
10780         (propagate): Propagate can_throw; handle state_set_in_source correctly.
10781         (local_pure_const): New function.
10782         (pass_local_pure_const): New pass.
10783         * ipa-inline.c (inline_transform): Set after_inlining.
10784         * tree-eh.c (stmt_can_throw_external): New.
10785         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10786         work with aliasing built.
10787         * tree-flow.h (stmt_can_throw_external): New.
10788         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10789         and local pure/const pass in early and late optimization queue.
10790
10791 2009-03-28  Martin Jambor  <mjambor@suse.cz>
10792
10793         * fold-const.c (get_pointer_modulus_and_residue): New parameter
10794         allow_func_align.
10795         (fold_binary): Allow function decl aligment consideration is the
10796         second argument is integer constant one.
10797         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10798         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10799         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10800
10801 2009-03-28  Jan Hubicka  <jh@suse.cz>
10802
10803         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10804         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10805         * function.h (rtl_data): Add nothrow flag.
10806         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10807         set DECL_NOTHROW for AVAILABLE functions.
10808
10809 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
10810
10811         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10812         following vector keyword has expansion starting with pixel or bool
10813         keyword, expand vector to __vector and pixel or bool to __pixel or
10814         __bool.
10815
10816         PR c++/39554
10817         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10818         warn_if_disallowed_function_p): Removed.
10819         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10820         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10821         warning_if_disallowed_function_p.
10822         * flags.h (warn_if_disallowed_function_p,
10823         warn_disallowed_functions): Removed.
10824         * common.opt (Wdisallowed-function-list=): Removed.
10825         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10826
10827 2009-03-28  Richard Guenther  <rguenther@suse.de>
10828
10829         PR tree-optimization/38723
10830         * tree-ssa-pre.c (compute_avail): Add all default definitions to
10831         the entry block.
10832
10833 2009-03-28  Jan Hubicka  <jh@suse.cz>
10834
10835         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10836         test introduced by my previous patch.
10837
10838 2009-03-28  Richard Guenther  <rguenther@suse.de>
10839
10840         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10841         the PHIs value undefined.
10842
10843 2009-03-28  Jan Hubicka  <jh@suse.cz>
10844
10845         * tree-pass.h (pass_fixup_cfg): New pass.
10846         * ipa-inline.c (inline_transform): Set
10847         always_inline_functions_inlined/after_inlining.
10848         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10849         (pass_fixup_cfg): New pass.
10850         * passes.c (init_optimization_passes): Add fixup_cfg.
10851
10852 2009-03-28  Richard Guenther  <rguenther@suse.de>
10853
10854         PR tree-optimization/38458
10855         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10856         argument use the arguments copy-of value.
10857
10858 2009-03-28  Richard Guenther  <rguenther@suse.de>
10859
10860         PR tree-optimization/38180
10861         * tree-ssa-ccp.c (get_default_value): Simplify.
10862         (likely_value): Likewise.
10863         (surely_varying_stmt_p): Properly handle VOP case.
10864         (ccp_initialize): Likewise.
10865         (ccp_fold): Handle propagating through *&.
10866         (fold_const_aggregate_ref): Also handle decls.
10867
10868 2009-03-28  Jan Hubicka  <jh@suse.cz>
10869
10870         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10871         * cgraph.h (cgraph_node): Likewise.
10872         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10873         (cgraph_reset_node): Use process flag.
10874         (cgraph_mark_functions_to_output): Likewise.
10875         (cgraph_expand_function): Likewise.
10876         (cgraph_expand_all_functions): Likewise.
10877         (cgraph_output_in_order): Likewise.
10878         * dwarf2out.c (reference_to_unused): Likewise.
10879         * passes.c do_per_function_toporder): Likewise.
10880
10881 2009-03-28  Jan Hubicka  <jh@suse.cz>
10882
10883         Bring from lto-branch:
10884
10885         2008-09-03  Doug Kwan  <dougkwan@google.com>
10886
10887         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10888         enums instead of reason strings.
10889         * cgraph.c (cgraph_create_edge): Same.
10890         (cgraph_inline_failed_string): New function.
10891         * cgraph.h (cgraph_inline_failed_t): New enum type.
10892         (cgraph_inline_failed_string): New prototype.
10893         (struct cgraph_edge): Change type of INLINED_FAILED from constant
10894         char pointer to cgraph_inline_failed_t.
10895         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10896         (cgraph_default_inline_p): Ditto.
10897         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
10898         to cgraph_inline_failed_t pointer.
10899         * cif-code.def: New file.
10900         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10901         reason string.
10902         (cgraph_check_inline_limits): Change type of REASON to pointer to
10903         cgraph_inline_failed_t.  Replace reason strings with enums.
10904         (cgraph_default_inline_p): Ditto.
10905         (cgraph_recursive_inlining_p): Ditto.
10906         (update_caller_keys): Change type of FAILED_REASON to
10907         cgraph_inline_failed_t.
10908         (cgraph_set_inline_failed): Change type of REASON to pointer to
10909         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
10910         convert enums to strings for text output.
10911         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10912         to be of type cgraph_inline_failed_t.  Replace reason strings with
10913         enums.  Call cgraph_inline_failed_string to covert enums
10914         to strings for text output.
10915         (cgraph_decide_inlining): Replace reason strings with enums.
10916         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10917         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
10918         for text output.
10919         * tree-inline.c (expand_call_inline): Change type of REASON
10920         to cgraph_inline_failed_t.  Replace reason strings with enums.
10921         Call cgraph_inline_failed_string for text output.
10922         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10923         (cgraph.o): Ditto.
10924
10925 2009-03-28  Jan Hubicka  <jh@suse.cz>
10926
10927         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10928         cgraph_clone_node): Remove master clone handling.
10929         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10930         * cgraph.h (master_clone): Remove.
10931         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10932         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10933         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10934
10935 2009-03-28  Jan Hubicka  <jh@suse.cz>
10936
10937         * cgraph.c (cgraph_function_body_availability): Functions declared
10938         inline are always safe to assume that it is not going to be replaced.
10939
10940 2009-03-28  Richard Guenther  <rguenther@suse.de>
10941
10942         PR tree-optimization/38513
10943         * tree-ssa-pre.c (eliminate): Remove redundant stores.
10944         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10945         EXC_PTR_EXPR and FILTER_EXPR.
10946         (get_ref_from_reference_ops): Likewise.
10947
10948 2009-03-28  Richard Guenther  <rguenther@suse.de>
10949
10950         PR tree-optimization/38968
10951         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10952         Use FLOOR_MOD_EXPR to compute misalignment.
10953
10954 2009-03-28  Richard Guenther  <rguenther@suse.de>
10955
10956         PR tree-optimization/37795
10957         * tree.h (combine_comparisons): Declare.
10958         * fold-const.c (combine_comparisons): Export.
10959         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10960         comparisons.
10961         (ifcombine_iforif): Use combine_comparisons.
10962
10963 2009-03-28  Jan Hubicka  <jh@suse.cz>
10964
10965         * tree-eh.c (inlinable_call_p): New function.
10966         (make_eh_edges): Use it.
10967         (verify_eh_edges): Use it.
10968         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10969         * except.c (reachable_next_level): Add inlinable_function argument
10970         (sjlj_find_directly_reachable_regions): Update.
10971         (add_reachable_handler): Do not set saw_any_handlers.
10972         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10973         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10974         Add new inlinable call parameter.
10975         (can_throw_internal, can_throw_external): Update.
10976         * except.h (can_throw_internal_1, can_throw_external_1,
10977         foreach_reachable_handler): Update declaration.
10978
10979 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
10980
10981         * config/arm/t-arm-coff, config/h8300/coff.h,
10982         config/i386/i386-aout.h, config/i386/i386-coff.h,
10983         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10984         config/pdp11/2bsd.h, config/rs6000/aix41.h,
10985         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10986         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10987         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10988         sys-types.h: Remove.
10989         * Makefile.in: Remove protoize and fixproto support and references
10990         in comments.
10991         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10992         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10993         Remove.
10994         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10995         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10996         unprotoize$(exeext).
10997         (rest.encap): Don't depend on $(STMP_FIXPROTO)
10998         (.PHONY): Don't depend on proto.
10999         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
11000         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
11001         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
11002         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
11003         build/gen-protos.o, build/scan.o, xsys-protos.h,
11004         build/fix-header$(build_exeext), build/fix-header.o,
11005         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
11006         stmp-install-fixproto): Remove.
11007         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
11008         SYSCALLS.c or fixproto files.
11009         (install-common): Don't install protoize.
11010         (install-headers-tar, install-headers-cpio, install-headers-cp):
11011         Don't depend on $(STMP_FIXPROTO).
11012         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
11013         install fixproto files or write out fixproto settings.
11014         (uninstall): Don't uninstall protoize.
11015         * config.gcc (use_fixproto): Remove.
11016         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
11017         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
11018         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
11019         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
11020         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
11021         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
11022         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
11023         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
11024         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
11025         * config/t-vxworks (STMP_FIXPROTO): Remove.
11026         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
11027         STMP_FIXPROTO): Remove.
11028         * config.in, configure: Regenerate.
11029         * crtstuff.c (gid_t, uid_t): Don't undefine.
11030         * doc/install.texi: Change m68k-coff to m68k-elf in example.
11031         (arm-*-coff, arm-*-aout: Remove target entries.
11032         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
11033         Remove mention of AIX 4.1.
11034         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
11035         * doc/invoke.texi (Running Protoize): Remove.
11036         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
11037         (Protoize Caveats): Remove.
11038         * tsystem.h: Update comments on headers assumed to exist.
11039
11040 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
11041
11042         * genautomata.c: Add a new year to the copyright.  Add a new
11043         reference.
11044         (struct insn_reserv_decl): Add comments for member bypass_list.
11045         (find_bypass): Remove.
11046         (insert_bypass): New.
11047         (process_decls): Use insert_bypass.
11048         (output_internal_insn_latency_func): Output all bypasses with the
11049         same input insn in one switch case.
11050
11051         * rtl.def (define_bypass): Describe bypass choice.
11052         * doc/md.texi (define_bypass): Ditto.
11053
11054 2009-03-27  Richard Guenther  <rguenther@suse.de>
11055
11056         * gimplify.c (mark_addressable): Export.
11057         * tree-flow.h (mark_addressable): Declare.
11058         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
11059         * tree-ssa.c (verify_phi_args): Verify that address taken
11060         variables have TREE_ADDRESSABLE set.
11061
11062 2009-03-27  Richard Guenther  <rguenther@suse.de>
11063
11064         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
11065         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
11066         Do not mark decls TREE_ADDRESSABLE.
11067         (build_fold_addr_expr): Adjust.
11068         (fold_addr_expr): Remove.
11069         (fold_unary): Use build_fold_addr_expr.
11070         (fold_comparison): Likewise.
11071         (split_address_to_core_and_offset): Likewise.
11072         * coverage.c (tree_coverage_counter_addr): Mark the array decl
11073         TREE_ADDRESSABLE.
11074         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
11075         (gimplify_modify_expr_to_memcpy): Mark source and destination
11076         addressable.
11077         * omp-low.c (create_omp_child_function): Mark the object decl
11078         TREE_ADDRESSABLE.
11079         (lower_rec_input_clauses): Mark the var we take the address of
11080         TREE_ADDRESSABLE.
11081         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
11082
11083 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11084
11085         PR middle-end/39315
11086         * cfgexpand.c (expand_one_stack_var_at): Change alignment
11087         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
11088
11089 2009-03-27  Richard Guenther  <rguenther@suse.de>
11090
11091         PR tree-optimization/39120
11092         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
11093         constraints.
11094         (handle_lhs_call): Process return constraints.  Add escape
11095         constraints if necessary.
11096         (handle_const_call): Fill out return constraints.  Make nested
11097         case more precise.  Avoid consttmp if possible.
11098         (handle_pure_call): Fill out return constraints.  Avoid
11099         callused if possible.
11100         (find_func_aliases): Simplify call handling.
11101
11102 2009-03-27  Richard Guenther  <rguenther@suse.de>
11103
11104         PR tree-optimization/39120
11105         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
11106         as a representative.
11107         (solve_graph): Do propagate CALLUSED.
11108         (handle_pure_call): Use a scalar constraint from CALLUSED for
11109         the return value.
11110         (find_what_p_points_to): CALLUSED shall not appear in poins-to
11111         solutions.
11112
11113 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11114
11115         PR c/39323
11116         * c-common.c (handle_aligned_attribute): Properly check alignment
11117         overflow.  Use (1U << i) instead of (1 << i).
11118
11119         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
11120
11121         * expr.h (get_mem_align_offset): Updated.
11122
11123         * tree.h (tree_decl_common): Change align to "unsigned int" and
11124         move it before pointer_alias_set.
11125
11126 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11127             Jakub Jelinek  <jakub@redhat.com>
11128
11129         PR target/38034
11130         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
11131         gr_register_operand with gr_reg_or_0_operand.
11132         (cmpxchg_rel_di): Likewise.
11133         (sync_lock_test_and_set<mode>): Likewise.
11134
11135 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11136
11137         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
11138         (true_regnum): Likewise.
11139
11140         * rtlanal.c (subreg_info): Moved to ...
11141         * rtl.h (subreg_info): Here.  New.
11142         (subreg_get_info): New.
11143
11144         * rtlanal.c (subreg_get_info): Make it extern.
11145
11146 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11147
11148         PR target/39472
11149         * config/i386/i386.c (ix86_abi): New.
11150         (override_options): Handle -mabi=.
11151         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
11152         (ix86_call_abi_override): Likewise.
11153         (init_cumulative_args): Likewise.
11154         (function_arg_advance): Likewise.
11155         (function_arg_64): Likewise.
11156         (function_arg): Likewise.
11157         (ix86_pass_by_reference): Likewise.
11158         (ix86_function_value_regno_p): Likewise.
11159         (ix86_build_builtin_va_list_abi): Likewise.
11160         (setup_incoming_varargs_64): Likewise.
11161         (is_va_list_char_pointer): Likewise.
11162         (ix86_init_machine_status): Likewise.
11163         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
11164         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
11165         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
11166         (ix86_function_abi): Make it static and return enum calling_abi.
11167         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
11168         with ix86_abi.
11169         (ix86_fn_abi_va_list): Updated.
11170
11171         * config/i386/i386.h (ix86_abi): New.
11172         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
11173         (CONDITIONAL_REGISTER_USAGE): Likewise.
11174         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
11175         (machine_function): Likewise.
11176
11177         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
11178         with ix86_abi.
11179         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
11180         (STACK_BOUNDARY): Likewise.
11181         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
11182
11183         * config/i386/i386.opt (mabi=): New.
11184
11185         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
11186         return enum calling_abi.
11187         (ix86_function_type_abi): Likewise.
11188         (ix86_function_abi): Removed.
11189
11190         * doc/invoke.texi: Document -mabi= option for x86.
11191
11192 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11193
11194         * builtins.c (real_dconstp): Delete.
11195         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
11196
11197 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
11198             Jakub Jelinek  <jakub@redhat.com>
11199
11200         PR debug/37959
11201         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
11202         (gen_subprogram_die): When a function is explicit, generate the
11203         DW_AT_explicit attribute.
11204         * langhooks.h (struct lang_hooks_for_decls): Add
11205         function_decl_explicit_p langhook.
11206         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
11207         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
11208
11209 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
11210
11211         * builtins.c (fold_builtin_memory_op): Optimize memmove
11212         into memcpy if we can prove source and destination don't overlap.
11213
11214         * tree-inline.c: Include gt-tree-inline.h.
11215         (clone_fn_id_num): New variable.
11216         (clone_function_name): New function.
11217         (tree_function_versioning): Use it.
11218         * Makefile.in (GTFILES): Add tree-inline.c.
11219
11220 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
11221
11222         * BASE-VER: Change to 4.5.0.
11223
11224 2009-03-27  Xinliang David Li  <davidxl@google.com>
11225
11226         PR tree-optimization/39557
11227         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
11228
11229 2009-03-27  Xinliang David Li  <davidxl@google.com>
11230
11231         PR tree-optimization/39548
11232         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
11233         candidate check.
11234
11235 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11236
11237         * c-common.c (pointer_int_sum): Use %wd on return from
11238         tree_low_cst.
11239
11240 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11241
11242         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
11243         on return from tree_low_cst.
11244
11245 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11246
11247         PR c++/36799
11248         * ginclude/stdarg.h (va_copy): Define also for
11249         __GXX_EXPERIMENTAL_CXX0X__.
11250
11251 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11252
11253         PR c++/35652
11254         * builtins.h (c_strlen): Do not warn here.
11255         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11256         * c-common.c (pointer_int_sum): Take an explicit location.
11257         Warn about offsets out of bounds.
11258         * c-common.h (pointer_int_sum): Adjust declaration.
11259
11260 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11261
11262         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
11263         markup glitch.
11264
11265 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
11266
11267         PR c++/39554
11268         * opts.c (warn_if_disallowed_function_p): Don't assume
11269         get_callee_fndecl must return non-NULL.
11270
11271 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
11272
11273         PR rtl-optimization/39522
11274         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
11275         when reg_reloaded_valid is set.
11276
11277 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11278
11279         * config/spu/divv2df3.c: New file.
11280         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
11281         (DPBIT_FUNCS): Filter out _div_df.
11282
11283 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
11284
11285         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
11286         a jump insn, count that jump in the distance to the loop start.
11287
11288 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11289
11290         PR target/39523
11291         * config/sh/sh.c (calc_live_regs): Fix condition for global
11292         registers except PIC_OFFSET_TABLE_REGNUM.
11293
11294 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
11295
11296         PR/39518
11297         * doc/invoke.texi (-mconsole): New.
11298         (-mcygwin): New.
11299         (-mno-cygwin): New.
11300         (-mdll): New.
11301         (-mnop-fun-dllimport): New.
11302         (-mthread): New.
11303         (-mwin32): New.
11304         (-mwindows): New.
11305         (sub section "i386 and x86-64 Windows Options"): New.
11306
11307 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
11308
11309         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
11310         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
11311
11312 2009-03-25  Richard Guenther  <rguenther@suse.de>
11313
11314         PR middle-end/39497
11315         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
11316         of -Wno-error.
11317
11318 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
11319
11320         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
11321         neither of haifa/selective schedulers are working.
11322
11323 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11324
11325         * doc/invoke.texi (Debugging Options): Fix description of
11326         -fno-merge-debug-strings.
11327
11328 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
11329
11330         * config/cris/libgcc.ver: New version-script.
11331         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
11332
11333         * configure.ac <GAS features, nop mnemonic>: Add pattern
11334         crisv32-*-* for "nop".
11335         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
11336         * configure: Regenerate.
11337
11338 2009-03-24  Ira Rosen  <irar@il.ibm.com>
11339
11340         PR tree-optimization/39529
11341         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11342         mark_sym_for_renaming for the tag copied to the new vector
11343         pointer.
11344
11345 2009-03-24  Arthur Loiret  <aloiret@debian.org>
11346
11347         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
11348         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
11349         EXTRA_SPEC_FUNCTIONS.
11350         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
11351         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
11352         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
11353         -march and -mtune options.
11354
11355 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
11356
11357         * config/m68k/t-rtems: Add m5329 multilib.
11358
11359 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
11360             Jakub Jelinek  <jakub@redhat.com>
11361
11362         PR debug/39524
11363         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
11364         nodes.
11365
11366 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
11367
11368         PR c/39495
11369         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
11370         instead of c_parser_expression_conv, if original_code isn't one of the
11371         4 allowed comparison codes, fail.
11372
11373 2009-03-23  Richard Guenther  <rguenther@suse.de>
11374
11375         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
11376         * tree.h (struct tree_type): Likewise.
11377         * reload.h (struct insn_chain): Likewise.
11378         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
11379         * function.h (struct function): Likewise.
11380         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11381
11382 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
11383
11384         PR tree-optimization/39516
11385         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11386
11387 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
11388
11389         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
11390         should be set true if BITS_PER_WORD of target is bigger than 32
11391
11392 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
11393
11394         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11395         Translate -B-options to -rpath-link.  Correct existing
11396         rpath-link and conditionalize on !nostdlib.
11397
11398 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11399
11400         * doc/extend.texi (Function Attributes, Variable Attributes):
11401         Fix typos.
11402         * doc/invoke.texi (Debugging Options, Optimize Options)
11403         (i386 and x86-64 Options, MCore Options): Likewise.
11404
11405 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
11406
11407         PR debug/37890
11408         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11409         it for block local namespace aliases.
11410         (gen_decl_die): Pass context_die to gen_namespace_die.
11411
11412 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11413
11414         PR c/39495
11415         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11416         minimum or maximum value.
11417
11418 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
11419
11420         * reginfo.c (globalize_reg): Recompute derived reg sets.
11421
11422 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
11423
11424         PR target/39063
11425         * libgcc2.c (mprotect): Do not use signed arguments for
11426         VirtualProtect, use DWORD arguments.  Also fix the 'may
11427         be used uninitialized' warning for the np variable.
11428
11429 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11430
11431         PR target/39496
11432         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11433         functions using regparm calling conventions when not optimizing.
11434         (ix86_function_sseregparm): Similarly for sseregparm calling
11435         conventions.
11436
11437 2009-03-19  Li Feng  <nemokingdom@gmail.com>
11438
11439         PR middle-end/39500
11440         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11441         dependence if the first conflict is after niter iterations.
11442
11443 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
11444
11445         PR middle-end/38609
11446         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11447         functions with dynamic stack-pointer adjustments.
11448
11449 2009-03-19  Ben Elliston  <bje@au.ibm.com>
11450
11451         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11452         option; change to -msdata=data.
11453
11454 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11455
11456         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11457         and -fopenmp.
11458
11459 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
11460
11461         PR target/35180
11462         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11463
11464 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
11465
11466         * doc/invoke.texi (Code Gen Options): Expand discussion of
11467         -fno-common.
11468
11469 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
11470
11471         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11472         * matrix-reorg.c (struct matrix_info): Likewise.
11473         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11474         * rtl.h (struct mem_attrs): Likewise.
11475         * df.h (struct df): Likewise.
11476         * tree-data-ref.h (struct data_dependence_relation): Likewise.
11477         * ira-int.h (struct ira_allocno): Likewise.
11478         * df-scan.c (struct df_collection_rec): Likewise.
11479         * ira.c (struct equivalence): Likewise.
11480         * function.c (struct temp_slot): Likewise.
11481         * cfgloop.h (struct loop): Likewise.
11482
11483         PR debug/39485
11484         * function.c (use_register_for_decl): When not optimizing, disregard
11485         register keyword for variables with types containing methods.
11486
11487 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
11488
11489         PR middle-end/39447
11490         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11491         (is_simple_operand): Call contains_component_ref_p before calling data
11492         reference analysis that would fail on COMPONENT_REFs.
11493
11494         * tree-vrp.c (search_for_addr_array): Fix formatting.
11495
11496 2009-03-18  Richard Guenther  <rguenther@suse.de>
11497
11498         * tree-vect-transform.c (vect_loop_versioning): Fold the
11499         generated comparisons.
11500         * tree-vectorizer.c (set_prologue_iterations): Likewise.
11501         (slpeel_tree_peel_loop_to_edge): Likewise.
11502
11503 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11504
11505         PR middle-end/37805
11506         * opts.c (print_specific_help): In addition to `undocumented',
11507         accept `separate' and `joined' flags if passed alone.  Describe
11508         output by the first matched one of those.
11509         (common_handle_option): Skip over empty strings.
11510         * gcc.c (display_help): Fix help string for `--help='.
11511         * doc/invoke.texi (Option Summary, Overall Options): With
11512         `--help=', classes and qualifiers can both be repeated, but
11513         only the latter can be negated.  One should not pass only
11514         negated qualifiers.  Fix markup and examples.
11515
11516         Revert
11517         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
11518         PR middle-end/37805
11519         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11520         and -fhelp=separate.
11521
11522 2009-03-17  Jing Yu  <jingyu@google.com>
11523
11524         PR middle-end/39378
11525         * function.h (struct rtl_data): Move is_thunk from here...
11526         (struct function): ...to here.
11527         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
11528         * varasm.c (assemble_start_function): Change is_thunk from crtl to
11529         cfun.
11530         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11531         cfun.
11532         (alpha_does_function_need_gp, alpha_start_function): Likewise.
11533         (alpha_output_function_end_prologue): Likewise.
11534         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11535         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11536         (rs6000_output_function_epilogue): Likewise.
11537         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
11538
11539 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
11540
11541         PR target/39482
11542         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11543         from different units in a single alternative.
11544         (*truncdfsf_i387): Ditto.
11545         (*truncxfsf2_mixed): Ditto.
11546         (*truncxfdf2_mixed): Ditto.
11547
11548 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
11549
11550         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11551         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11552
11553         PR debug/39474
11554         * tree-ssa-live.c (remove_unused_locals): Don't remove local
11555         unused non-artificial variables when not optimizing.
11556
11557         PR debug/39471
11558         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11559         DW_TAG_imported_module even if decl is IMPORTED_DECL with
11560         NAMESPACE_DECL in its DECL_INITIAL.
11561
11562         PR middle-end/39443
11563         * optabs.c (set_user_assembler_libfunc): New function.
11564         * expr.h (set_user_assembler_libfunc): New prototype.
11565         * c-common.c: Include libfuncs.h.
11566         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11567         for memcmp, memset, memcpy, memmove and abort.
11568         * Makefile.in (c-common.o): Depend on libfuncs.h.
11569
11570         PR debug/39412
11571         * dwarf2out.c (gen_inlined_enumeration_type_die,
11572         gen_inlined_structure_type_die, gen_inlined_union_type_die,
11573         gen_tagged_type_instantiation_die): Removed.
11574         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11575         do nothing.
11576
11577 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
11578
11579         PR testsuite/38526
11580         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11581         its use.
11582         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11583         (check-parallel-%): Ditto.
11584         (check-consistency): Ditto.
11585
11586 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
11587
11588         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11589         local variable rhs by NULL_TREE.
11590
11591 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11592
11593         PR target/39477
11594         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
11595
11596 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11597
11598         PR target/39476
11599         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
11600
11601 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11602
11603         PR target/39473
11604         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11605         for ms->sysv ABI calls only in 64bit mode.
11606
11607         * config/i386/i386.md (untyped_call): Support 32bit.
11608
11609 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11610
11611         * doc/extend.texi: Replace x86_65 with x86_64.
11612
11613 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
11614
11615         PR tree-optimization/39455
11616         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11617         mismatches for POINTER_TYPE_P (type).
11618         (number_of_iterations_le): Likewise.
11619
11620 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11621
11622         * config/picochip/picochip.c: Removed profiling support.
11623         * config/picochip/picochip.md: Removed profiling instruction.
11624         * config/picochip/picochip.h: Removed profiling builtin.
11625
11626 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
11627
11628         * doc/install.texi (--with-host-libstdcxx): Document.
11629
11630 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
11631
11632         PR target/34299
11633         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11634         generate a warning if the function name does not begin with
11635         "__vector" and the function has either the 'signal' or 'interrupt'
11636         attribute, from here to ...
11637         (avr_declare_function_name): ...here. New function.
11638         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11639         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11640
11641 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
11642
11643         PR bootstrap/39454
11644         * cse.c (fold_rtx): Don't modify original const_arg1 when
11645         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11646         separate variable instead.
11647         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11648         from out of range shift counts.
11649         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11650
11651 2009-03-13  Catherine Moore  <clm@codesourcery.com>
11652
11653         * config/i386/x-mingw32 (host-mingw32.o): Replace
11654         diagnostic.h with $(DIAGNOSTIC_H).
11655
11656 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
11657
11658         PR target/39431
11659         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11660         predicate.
11661         * config/i386/sync.md (sync_compare_and_swap<mode>,
11662         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11663         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11664         into a register.
11665         (sync_double_compare_and_swapdi_pic,
11666         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11667         cmpxchg8b_pic_memory_operand instead of just memory_operand.
11668
11669 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11670
11671         PR target/39445
11672         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
11673
11674 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11675
11676         PR target/39327
11677         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11678         (avx_addsubv4df3): Likewise.
11679         (*avx_addsubv4sf3): Likewise.
11680         (sse3_addsubv4sf3): Likewise.
11681
11682 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11683
11684         PR target/38824
11685         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
11686
11687 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11688
11689         PR debug/39432
11690         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11691         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11692         registers for allocnos created from user-defined variables.
11693
11694 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11695
11696         PR target/39181
11697         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11698         of non-integer mode as well.
11699
11700 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
11701
11702         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11703         for functions for which the parameter types are unknown.
11704
11705 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
11706
11707         PR target/39137
11708         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
11709         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11710         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11711         * config/i386/i386.c (ix86_local_alignment): For
11712         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11713         long long variables on the stack to avoid dynamic realignment.
11714         Allow the first argument to be a decl rather than type.
11715         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11716
11717 2009-03-11  Nick Clifton  <nickc@redhat.com>
11718
11719         PR target/5362
11720         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11721         options.
11722         Add description to mno-lsim option.
11723         * config/mcore/mcore.h: Remove comment about deprecated m4align
11724         option.
11725         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11726         * doc/invoke.texi: Add description of mno-lsim and
11727         mstack-increment options.
11728
11729         * config/fr30/fr30.opt: Document the -mno-lsim option.
11730         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11731         and -mno-lsim options.
11732
11733 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11734
11735         * fold-const.c (fold_comparison): Only call fold_inf_compare
11736         if the mode supports infinities.
11737
11738 2009-03-11  Jason Merrill  <jason@redhat.com>
11739
11740         PR debug/39086
11741         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11742         end already did.  Notice GIMPLE_CALL modifications of the result.
11743         Don't copy debug information from an ignored decl or a decl from
11744         another function.
11745
11746 2009-03-10  Richard Guenther  <rguenther@suse.de>
11747             Nathan Froyd  <froydnj@codesourcery.com>
11748
11749         PR middle-end/37850
11750         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
11751         (__divMODE3): Likewise.
11752
11753 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
11754
11755         PR tree-optimization/39394
11756         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11757         DECL_SIZE_UNIT of variable length FIELD_DECLs.
11758
11759 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11760
11761         * recog.c (verfiy_changes): Disallow renaming of hard regs in
11762         inline asms for register asm ("") declarations.
11763
11764 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11765
11766         * fold-const.c (fold_unary): Fix comment.
11767
11768 2009-03-07  Jan Hubicka  <jh@suse.cz>
11769
11770         PR target/39361
11771         * tree-inline.c (setup_one_parameter): Do replacement of const
11772         argument by constant in SSA form.
11773
11774 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11775
11776         PR middle-end/38028
11777         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11778         determine alignment passed to assign_stack_local.
11779         (assign_parms_unsplit_complex): Likewise.
11780         * except.c (sjlj_build_landing_pads): Likewise.
11781
11782 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11783
11784         PR middle-end/39360
11785         * tree-flow.h (add_referenced_var): Return bool instead of void.
11786         * tree-dfa.c (add_referenced_var): Return result of
11787         referenced_var_check_and_insert call.
11788         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11789         of referenced_var_check_and_insert.
11790
11791         PR debug/39372
11792         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
11793         (gen_variable_die): Emit DW_AT_location on abstract static variable's
11794         DIE, don't emit it if abstract origin already has it.
11795         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11796         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11797
11798 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11799
11800         * genpreds.c (needs_variable): Fix parentheses at variable name
11801         detection.
11802         (write_tm_constrs_h): Indent generated code.
11803
11804 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11805
11806         * doc/extend.texi (Function Attributes): Add documentation
11807         for isr attributes.
11808
11809 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11810
11811         PR debug/39387
11812         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11813         take locus from its DECL_SOURCE_LOCATION instead of input_location.
11814
11815 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11816
11817         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11818         the loop as bad.
11819
11820 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
11821
11822         PR debug/39379
11823         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11824         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11825
11826 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
11827
11828         * config/i386/i386.md (R8_REG, R9_REG): New constants.
11829         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11830         constants instead of magic numbers.
11831         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11832         (QI_REG_P): Ditto.
11833         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11834         (x86_64_ms_abi_int_parameter_registers): Ditto.
11835         (x86_64_int_return_registers): Ditto.
11836         (ix86_maybe_switch_abi): Ditto.
11837         (ix86_expand_call): Ditto for clobbered_registers array.
11838         (ix86_hard_regno_mode_ok): Ditto.
11839         (x86_extended_QIreg_mentioned_p): Ditto.
11840
11841 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
11842
11843         PR tree-optimization/39349
11844         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11845
11846         * combine.c (gen_lowpart_for_combine): Use omode when generating
11847         clobber.
11848
11849 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
11850
11851         PR rtl-optimization/39235
11852         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11853
11854 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11855
11856         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11857
11858 2009-03-04  Richard Guenther  <rguenther@suse.de>
11859
11860         PR tree-optimization/39362
11861         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11862         that occur in abnormal PHIs should be varying.
11863
11864 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11865
11866         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11867         Extend comments.
11868         (simple_iv):  Take loop as an argument instead of statement.
11869         * tree-scalar-evolution.h (simple_iv): Declaration changed.
11870         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11871         to simple_iv.
11872         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11873         Ditto.
11874         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11875         * matrix-reorg.c (analyze_transpose): Ditto.
11876         * tree-data-ref.c (dr_analyze_innermost): Ditto.
11877         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11878         * tree-predcom.c (ref_at_iteration): Ditto.
11879         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11880
11881 2009-03-04  Richard Guenther  <rguenther@suse.de>
11882
11883         PR tree-optimization/39358
11884         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11885         escaped_id and callused_id.
11886         (solve_graph): Likewise.
11887
11888 2009-03-04  Richard Guenther  <rguenther@suse.de>
11889
11890         PR tree-optimization/39339
11891         * tree-sra.c (try_instantiate_multiple_fields): Make it
11892         no longer ICE on the above.
11893
11894 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
11895
11896         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11897         that fits within Pmode.
11898
11899 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11900
11901         PR middle-end/10109
11902         * tm.texi (LIBCALL_VALUE): Update description.
11903
11904 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11905
11906         PR middle-end/34443
11907         * doc/extend.texi (section): Update description.
11908
11909 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
11910
11911         PR middle-end/39345
11912         * tree-inline.c (remapped_type): New.
11913         (can_be_nonlocal): Call remapped_type instead of remap_type.
11914
11915 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11916
11917         PR fortran/39354
11918         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11919         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11920
11921 2009-03-03  Richard Guenther  <rguenther@suse.de>
11922
11923         PR middle-end/39272
11924         * tree.c (tree_nonartificial_location): New function.
11925         * tree.h (tree_nonartificial_location): Declare.
11926         * builtins.c (expand_builtin_memory_chk): Provide location
11927         of the call location for artificial function pieces.
11928         (maybe_emit_chk_warning): Likewise.
11929         (maybe_emit_sprintf_chk_warning): Likewise.
11930         (maybe_emit_free_warning): Likewise.
11931         * expr.c (expand_expr_real_1): Likewise.
11932
11933 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11934
11935         PR tree-optimization/39343
11936         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11937         COMPONENT_REF t has ARRAY_TYPE.
11938
11939 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
11940
11941         PR middle-end/39335
11942         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11943         when the type precision of the induction variable should be
11944         larger than the type precision of nit.
11945         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11946         * graphite.c (graphite_loop_normal_form): Same.
11947         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11948
11949 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11950
11951         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11952         (*call_1_rex64_ms_sysv): Use named constants instead of magic
11953         numbers to describe clobbered registers.
11954         (*call_value_0_rex64_ms_sysv): Ditto.
11955         * config/i386/mmx.md (mmx_emms): Ditto.
11956         (mmx_femms): Ditto.
11957
11958 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
11959
11960         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11961         of ABI_64.
11962
11963 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11964
11965         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11966         (spu_section_type_flags): New function.
11967
11968 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11969
11970         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11971         reg_class_contents of FLOAT_REGS into a temporary.
11972
11973 2009-03-02  Richard Guenther  <rguenther@suse.de>
11974             Ira Rosen  <irar@il.ibm.com>
11975
11976         PR tree-optimization/39318
11977         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11978         information to the vectorized statement.
11979
11980 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
11981
11982         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11983         variable.  Use defined names instead of magic constants for REX SSE
11984         registers.
11985
11986 2009-03-01  Richard Guenther  <rguenther@suse.de>
11987
11988         PR tree-optimization/39331
11989         * omp-low.c (lower_send_shared_vars): Do not receive new
11990         values for the reference of DECL_BY_REFERENCE parms or results.
11991
11992 2009-03-01  Jan Hubicka  <jh@suse.cz>
11993
11994         PR debug/39267
11995         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11996         BLOCK_NONLOCALIZED_VAR): New macros.
11997         (tree_block): Add nonlocalized_vars.
11998         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11999         gen_decl_die): Add origin argument.  Allow generation of die with
12000         origin at hand only.
12001         (gen_member_die, gen_type_die_with_usage, force_decl_die,
12002         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
12003         of gen_*.
12004         (gen_block_die): Fix checking for unused blocks.
12005         (process_scope_var): Break out from .... ; work with origins only.
12006         (decls_for_scope) ... here; process nonlocalized list.
12007         (dwarf2out_ignore_block): Look for nonlocalized vars.
12008         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
12009         vars.
12010         (dump_scope_block): Dump them.
12011         * tree-inline.c (remap_decls): Handle nonlocalized vars.
12012         (remap_block): Likewise.
12013         (can_be_nonlocal): New predicate.
12014         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
12015
12016 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12017
12018         * configure: Regenerate.
12019
12020 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12021
12022         * optc-gen.awk: No need to duplicate option flags twice.
12023         Reuse help texts for duplicate options which do not have any.
12024
12025         * gcc.c (display_help): Document --version.
12026
12027         * gcc.c (main): If print_help_list and verbose_flag, ensure
12028         driver output comes before subprocess output.
12029
12030         * optc-gen.awk: Assign all remaining fields to help string,
12031         space-separated, for multi-line help in *.opt.
12032
12033         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
12034         -Wno-pedantic-ms-format is for MinGW targets only.
12035
12036         * doc/options.texi (Option file format): Fix bad indentation,
12037         restoring dropped sentence.
12038
12039 2009-02-28  Jan Hubicka  <jh@suse.cz>
12040
12041         * tree-inline.c (tree_function_versioning): Output debug info.
12042
12043 2009-02-28  Jan Hubicka  <jh@suse.cz>
12044
12045         PR debug/39267
12046         * tree-inline.c (setup_one_parameter): Do not copy propagate
12047         arguments when not optimizing.
12048
12049 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
12050
12051         PR target/39327
12052         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12053         (avx_addsubv4df3): Likewise.
12054         (*avx_addsubv4sf3): Likewise.
12055         (sse3_addsubv4sf3): Likewise.
12056         (*avx_addsubv2df3): Likewise.
12057         (sse3_addsubv2df3): Likewise.
12058         (avx_unpckhps256): Correct item selectors.
12059         (avx_unpcklps256): Likewise.
12060         (avx_unpckhpd256): Likewise.
12061         (avx_unpcklpd256): Likewise.
12062
12063 2009-02-28  Jan Hubicka  <jh@suse.cz>
12064
12065         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
12066         static vars.
12067         (copy_arguments_for_versioning): If var is declared don't declare it.
12068         (tree_function_versioning): First setup substitutions and then copy
12069         args.
12070
12071 2009-02-27  Jan Hubicka  <jh@suse.cz>
12072
12073         PR debug/39267
12074         * cgraph.h (varpool_output_debug_info): Remove.
12075         * cgraphunit.c (varpool_output_debug_info): Remove.
12076         * dwarf2out.c (deferred_locations_struct): New struct
12077         (deferred_locations): New type.
12078         (deferred_locations_list): New static var.
12079         (deffer_location): New function.
12080         (gen_variable_die): Use it.
12081         (decls_for_scope): Output info on local static vars.
12082         (dwarf2out_finish): Process deferred locations.
12083         * varpool.c (varpool_output_debug_info): Remove.
12084
12085 2009-02-27  Jan Hubicka  <jh@suse.cz>
12086
12087         PR debug/39267
12088         * tree.h (TREE_PROTECTED): Fix comment.
12089         (BLOCK_HANDLER_BLOCK): Remove.
12090         (struct tree_block): Remove handler_block add body_block.
12091         (inlined_function_outer_scope_p): New.
12092         (is_body_block): Remove.
12093         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
12094         * dwarf2out.c (is_inlined_entry_point): Remove.
12095         (add_high_low_attributes): Use inlined_function_outer_scope_p.
12096         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
12097         code.
12098         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
12099         * gimplify.c (gimplify_expr): Gimplify body blocks.
12100         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
12101         block with multiple subblocks.
12102         (dump_scope_block): Prettier output; dump more flags and info.
12103         (dump_scope_blocks): New.
12104         (remove_unused_locals): Use dump_scope_blocks.
12105         * tree-flow.h (dump_scope_blocks): Declare.
12106         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
12107         * stmt.c (is_body_block): Remove.
12108         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
12109         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
12110
12111 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
12112
12113         PR middle-end/39308
12114         * graphite.c (graphite_loop_normal_form): Do not call
12115         number_of_iterations_exit from a gcc_assert.
12116
12117 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12118
12119         * config/s390/s390.c (s390_swap_cmp): Look for conditional
12120         jumps if COND is NULL.
12121         (find_cond_jump): New function.
12122         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
12123         * config/s390/s390.md: Remove z10_cobra attribute value.
12124
12125 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
12126
12127         * config/alpha/alpha.h (alpha_expand_mov): Return false if
12128         force_const_mem returns NULL_RTX.
12129
12130 2009-02-26  Jan Hubicka  <jh@suse.cz>
12131
12132         PR debug/39267
12133         * cgraph.h (varpool_output_debug_info): Remove.
12134         * cgraphunit.c (varpool_output_debug_info): Remove.
12135         * dwarf2out.c (deferred_locations_struct): New struct
12136         (deferred_locations): New type.
12137         (deferred_locations_list): New static var.
12138         (deffer_location): New function.
12139         (gen_variable_die): Use it.
12140         (decls_for_scope): Output info on local static vars.
12141         (dwarf2out_finish): Process deferred locations.
12142         * varpool.c (varpool_output_debug_info): Remove.
12143
12144 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
12145
12146         PR rtl-optimization/39241
12147         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
12148         to subreg_offset_representable_p.
12149
12150 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
12151
12152         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
12153         execute function prototype.  Get f and nregs from max_reg_num
12154         and get_insns.  Remove the first backward pass as it's dead,
12155         guard the forward pass by flag_expensive_optimizations.
12156         (rest_of_handle_regmove): Delete.
12157         (pass_regmove): Replace it with regmove_optimize.
12158
12159 2009-02-25  Martin Jambor  <mjambor@suse.cz>
12160
12161         PR tree-optimization/39259
12162         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
12163         calls_alloca function flags.
12164         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
12165         calls are detected.
12166
12167 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
12168
12169         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
12170         flags_set_1_rtx, flags_set_1_set): Delete.
12171         (regmove_optimize): Do not call mark_flags_life_zones.
12172
12173 2009-02-24  Julian Brown  <julian@codesourcery.com>
12174
12175         PR target/35965
12176         * config/arm/arm.c (require_pic_register): Only set
12177         cfun->machine->pic_reg once per function.
12178
12179 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
12180
12181         * doc/invoke.texi (Link Options): Document an easier way to pass
12182         options that take arguments to the GNU linker using -Xlinker and -Wl.
12183
12184 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
12185
12186         PR target/33785
12187         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
12188
12189 2009-02-24  Richard Guenther  <rguenther@suse.de>
12190
12191         PR debug/39285
12192         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
12193
12194 2009-02-24  Richard Guenther  <rguenther@suse.de>
12195             Zdenek Dvorak  <ook@ucw.cz>
12196
12197         PR tree-optimization/39233
12198         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
12199         from converting them to a generic type.
12200
12201 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
12202
12203         PR tree-optimization/39260
12204         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
12205         contains a condition with a real type.
12206         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
12207
12208 2009-02-23  Jason Merrill  <jason@redhat.com>
12209
12210         PR c++/38880
12211         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
12212         narrowing_initializer_constant_valid_p.
12213         (narrowing_initializer_constant_valid_p): Don't return
12214         null_pointer_node for adding a pointer to itself.
12215
12216 2009-02-23  Jan Hubicka  <jh@suse.cz>
12217
12218         PR c/12245
12219         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
12220         resizing.
12221
12222 2009-02-23  Jan Hubicka  <jh@suse.cz>
12223
12224         PR tree-optimization/37709
12225         * tree.c (block_ultimate_origin): Move here from dwarf2out.
12226         * tree.h (block_ultimate_origin): Declare.
12227         * dwarf2out.c (block_ultimate_origin): Move to tree.c
12228         * tree-ssa-live.c (remove_unused_scope_block_p):
12229         Eliminate blocks containig no instructions nor live variables nor
12230         nested blocks.
12231         (dump_scope_block): New function.
12232         (remove_unused_locals): Enable removal of dead blocks by default;
12233         enable dumping at TDF_DETAILS.
12234
12235 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
12236
12237         * config/i386/i386.c (classify_argument): Don't allow COImode
12238         and OImode.
12239         (function_arg_advance_32): Don't allow OImode.
12240         (function_arg_32): Likewise.
12241         (function_value_32): Likewise.
12242         (return_in_memory_32): Likewise.
12243         (function_arg_64): Remove OImode comment.
12244
12245 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
12246
12247         PR target/39261
12248         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
12249         ix86_expand_vector_set for V4DImode in 64bit mode only.
12250         (ix86_expand_vector_init_one_var): Likewise.
12251
12252 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
12253
12254         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
12255
12256 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
12257
12258         PR bootstrap/39257
12259         * loop-iv.c: Revert last change.
12260         * emit-rtl.c: Likewise.
12261
12262 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
12263
12264         PR target/39256
12265         * config/i386/i386.c (type_natural_mode): Remove an extra
12266         space in the warning message.
12267         (function_value_32): Handle 32-byte vector modes.
12268         (return_in_memory_32): Likewise.
12269
12270 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
12271
12272         * loop-iv.c (truncate_value): New function.
12273         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
12274         of lowpart_subreg.
12275         (lowpart_subreg): Move to...
12276         * emit-rtl.c: ...here.
12277
12278 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
12279
12280         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
12281         accidental and undocumented change at revision 140860.
12282
12283 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
12284
12285         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
12286         take gimple_seq * arguments.
12287         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
12288         types_compatible_p langhook.
12289
12290 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
12291             Joseph Myers  <joseph@codesourcery.com>
12292
12293         * config/arm/arm.c (arm_builtin_va_list): New function.
12294         (arm_expand_builtin_va_start): Likewise.
12295         (arm_gimplify_va_arg_expr): Likewise.
12296         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
12297         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
12298         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
12299         (va_list_type): New variable.
12300         (arm_mangle_type): Mangle va_list_type appropriately.
12301
12302 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
12303
12304         PR middle-end/39157
12305         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
12306         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
12307         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
12308         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
12309         parameter to 1000 for -O1 by default.
12310         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
12311         parameter.
12312         * loop-invariant.c: Include params.h.
12313         (move_loop_invariants): Don't call move_single_loop_invariants on
12314         very large loops.
12315
12316 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
12317
12318         * calls.c (emit_library_call_value_1): Use slot_offset instead of
12319         offset when calculating bounds for indexing stack_usage_map.  Fixes
12320         a buffer overflow with certain target setups.
12321
12322 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
12323
12324         PR target/39240
12325         * calls.c (expand_call): Clear try_tail_call if caller and callee
12326         disagree in promotion of function return value.
12327
12328 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
12329
12330         PR target/39175
12331         * c-common.c (c_determine_visibility): If visibility changed and
12332         DECL_RTL has been already set, call make_decl_rtl to update symbol
12333         flags.
12334
12335 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
12336
12337         PR c++/39188
12338         * varasm.c (assemble_variable): Don't check DECL_NAME when
12339         globalizing a variable.
12340
12341 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
12342
12343         PR c/38483
12344         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
12345         expression before any __builtin_trap call.
12346         * c-typeck.c (build_function_call): Convert and check function
12347         arguments before generating a call to a trap.  Evaluate the
12348         function arguments before the trap.
12349
12350 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
12351
12352         PR target/39228
12353         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
12354         (UNSPEC_FXAM_MEM): New unspec.
12355         (fxam<mode>2_i387_with_temp): New insn and split pattern.
12356         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
12357         memory using fxam<mode>2_i387_with_temp to remove excess precision.
12358
12359 2009-02-19  Richard Guenther  <rguenther@suse.de>
12360
12361         PR tree-optimization/39207
12362         PR tree-optimization/39074
12363         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
12364         storedanything_tree): New.
12365         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
12366         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
12367         (build_succ_graph): Add edges from STOREDANYTHING to all
12368         non-direct nodes.
12369         (init_base_vars): Initialize STOREDANYTHING.
12370         (compute_points_to_sets): Free substitution info after
12371         building the succ graph.
12372         (ipa_pta_execute): Likewise.
12373
12374         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
12375         field.
12376         (do_ds_constraint): Do not add to special var or non-pointer
12377         field solutions.
12378         (type_could_have_pointers): Split out from ...
12379         (could_have_pointers): ... here.  For arrays use the element type.
12380         (create_variable_info_for): Initialize may_have_pointers.
12381         (new_var_info): Likewise.
12382         (handle_lhs_call): Make the HEAP variable unknown-sized.
12383         (intra_create_variable_infos): Use a type with pointers for
12384         PARM_NOALIAS, make it unknown-sized.
12385
12386 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12387
12388         PR target/39224
12389         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
12390
12391 2009-02-18  Jason Merrill  <jason@redhat.com>
12392
12393         PR target/39179
12394         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12395         value if DECL_EXTERNAL.
12396         * tree-sra.c (sra_walk_gimple_assign): Likewise.
12397         * target.h (gcc_target::binds_local_p): Clarify "module".
12398         * tree.h (TREE_PUBLIC): Clarify "module".
12399
12400 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
12401
12402         PR target/38891
12403         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12404         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12405
12406 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
12407
12408         PR target/39082
12409         * c.opt (Wabi): Support C and ObjC.
12410         (Wpsabi): New.
12411
12412         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12413
12414         * config/i386/i386.c (classify_argument): Warn once about the ABI
12415         change when passing union with long double.
12416
12417         * doc/invoke.texi: Update -Wabi for warning psABI changes.
12418
12419 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
12420
12421         PR c/35447
12422         * c-parser.c (c_parser_compound_statement): Always enter and leave
12423         a scope.
12424
12425 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12426
12427         PR target/34587
12428         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12429
12430 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
12431
12432         PR tree-optimization/36922
12433         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12434         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12435         Likewise.
12436
12437 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12438
12439         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12440         to 0 for EABI64.
12441
12442 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12443
12444         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12445
12446 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12447
12448         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12449         tree sharing.
12450
12451 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
12452             Richard Sandiford  <rdsandiford@googlemail.com>
12453
12454         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12455         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12456         (loongson_biadd): ...this.
12457
12458 2009-02-17  Richard Guenther  <rguenther@suse.de>
12459
12460         PR tree-optimization/39202
12461         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12462         a var make sure to follow existing collapses.
12463
12464 2009-02-17  Richard Guenther  <rguenther@suse.de>
12465
12466         PR middle-end/39214
12467         * langhooks.c (lhd_print_error_function): Check for NULL block.
12468
12469 2009-02-17  Richard Guenther  <rguenther@suse.de>
12470
12471         PR tree-optimization/39204
12472         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12473         of the PHI arg.
12474
12475 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
12476
12477         * config/soft-fp/double.h: Update from glibc CVS.
12478
12479 2009-02-17  Richard Guenther  <rguenther@suse.de>
12480
12481         PR tree-optimization/39207
12482         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12483         strict-aliasing warnings for pointers pointing to NULL.
12484
12485 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
12486
12487         PR c/35446
12488         * c-parser.c (c_parser_braced_init): Call pop_init_level when
12489         skipping until next close brace.
12490
12491 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
12492
12493         PR target/37049
12494         * config/i386/i386.c (ix86_expand_push): Set memory alignment
12495         to function argument boundary.
12496
12497 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
12498
12499         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12500         in the lea_add. Reload eventually constraints it properly.
12501         * config/picochip/constraints.md: Remove the target constraint
12502         "b", since it is not needed anymore.
12503
12504 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
12505
12506         * gthr-dce.h: Uglify function parameter and local variable names.
12507         * gthr-gnat.h: Likewise.
12508         * gthr-mipssde.h: Likewise.
12509         * gthr-nks.h: Likewise.
12510         * gthr-posix95.h: Likewise.
12511         * gthr-posix.h: Likewise.
12512         * gthr-rtems.h: Likewise.
12513         * gthr-single.h: Likewise.
12514         * gthr-solaris.h: Likewise.
12515         * gthr-tpf.h: Likewise.
12516         * gthr-vxworks.h: Likewise.
12517         * gthr-win32.h: Likewise.
12518
12519 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12520
12521         PR target/39196
12522         * config/i386/i386.md: Restrict the new peephole2 to move
12523         between MMX/SSE registers.
12524
12525 2009-02-15  Richard Guenther  <rguenther@suse.de>
12526
12527         Revert
12528         2009-02-13  Richard Guenther  <rguenther@suse.de>
12529
12530         * configure.ac: Enable LFS.
12531         * configure: Re-generate.
12532         * config.in: Likewise.
12533
12534 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12535
12536         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12537         spu_srqwbyte, spu_srqwbytebc): Define.
12538         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12539         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12540         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12541         "shrqby_<mode>"): New insn-and-split patterns.
12542         * config/spu/spu.c (expand_builtin_args): Determine and return
12543         number of operands using spu_builtin_description data.
12544         (spu_expand_builtin_1): Use it.
12545
12546 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
12547
12548         PR target/38056
12549         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12550         TARGET_CONST_GP.
12551
12552 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12553
12554         PR target/39149
12555         * config/i386/i386.c (override_options): Correct warning
12556         messages for -malign-loops, -malign-jumps and -malign-functions.
12557
12558 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12559
12560         PR target/39152
12561         * config/i386/i386.md: Restrict the new peephole2 to move
12562         between the general purpose registers.
12563
12564 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12565
12566         PR target/39162
12567         * config/i386/i386.c (type_natural_mode): Add a new argument.
12568         Return the original mode and warn ABI change if vector size is 32byte.
12569         (function_arg_advance): Updated.
12570         (function_arg): Likewise.
12571         (ix86_function_value): Likewise.
12572         (ix86_return_in_memory): Likewise.
12573         (ix86_sol10_return_in_memory): Likewise.
12574         (ix86_gimplify_va_arg): Likewise.
12575         (function_arg_32): Don't warn ABX ABI change here.
12576         (function_arg_64): Likewise.
12577
12578 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
12579
12580         * loop-iv.c (implies_p): In the final case, test that operands 0
12581         of the two comparisons match.
12582
12583         * config/bfin/bfin.c (find_prev_insn_start): New function.
12584         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12585         (find_next_insn_start): Move.
12586
12587 2009-02-13  Richard Guenther  <rguenther@suse.de>
12588
12589         * configure.ac: Enable LFS.
12590         * configure: Re-generate.
12591         * config.in: Likewise.
12592
12593 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
12594
12595         PR c/35444
12596         * c-parser.c (c_parser_parms_list_declarator): Discard pending
12597         sizes on syntax error after some arguments have been parsed.
12598
12599 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12600
12601         * doc/invoke.texi (-fira): Remove.
12602
12603 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12604
12605         * caller-save.c: Replace regclass.c with reginfo.c in comments.
12606         * recog.c: Likewise.
12607         * rtl.h: Likewise.
12608
12609 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
12610
12611         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12612         (umul_ppmm): Likewise.
12613         (count_leading_zeros): Likewise.
12614         (count_trailing_zeros): Likewise.
12615         (UMUL_TIME): Likewise.
12616
12617 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12618
12619         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12620         soft-fp/t-softfp to tmake_file.
12621
12622         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
12623         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12624         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12625         IA64_BUILTIN_INFQ]: New.
12626         (ia64_init_builtins): Initialize __builtin_infq,
12627         __builtin_fabsq and __builtin_copysignq if not HPUX.
12628         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12629         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12630
12631         * config/ia64/lib1funcs.asm (__divtf3): Define only if
12632         SHARED is defined.
12633         (__fixtfti): Likewise.
12634         (__fixunstfti): Likewise.
12635         (__floattitf): Likewise.
12636
12637         * config/ia64/libgcc-glibc.ver: New.
12638         * config/ia64/t-fprules-softfp: Likewise.
12639         * config/ia64/sfp-machine.h: Likewise.
12640
12641         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12642         (LIBGCC2_TF_CEXT): Likewise.
12643         (TF_SIZE): Likewise.
12644         (TARGET_INIT_LIBFUNCS): Likewise.
12645
12646         * config/ia64/t-glibc (SHLINB_MAPFILES):
12647         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
12648
12649 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12650
12651         * config/i386/i386.c (construct_container): Rewrite processing
12652         BLKmode with X86_64_SSE_CLASS.
12653
12654 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
12655
12656         PR target/39152
12657         * config/i386/i386.md: Replace simplify_replace_rtx with
12658         replace_rtx in the new peephole2.
12659
12660 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
12661
12662         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12663         loop unrolling do not happen at -O2.
12664
12665 2009-02-12  Michael Matz  <matz@suse.de>
12666
12667         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12668
12669 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12670
12671         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12672         for -g3.
12673
12674 2009-02-12  Ben Elliston  <bje@au.ibm.com>
12675
12676         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12677         patterns when updating the back chain.  Missed in the 2009-02-10
12678         change.
12679
12680 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
12681
12682         * doc/extend.texi (Decimal Floating Types): Update identifier of
12683         draft TR and list of missing support.
12684
12685 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
12686
12687         PR middle-end/39154
12688         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12689         bit to variable length decl's flags, add it also to its
12690         pointer replacement variable.
12691
12692 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
12693             Jakub Jelinek  <jakub@redhat.com>
12694
12695         PR target/39118
12696         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12697         (memory_blockage): New expander.
12698         (*memory_blockage): New insn pattern.
12699         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12700         instead of general blockage at the end of function prologue when
12701         frame pointer is used to access red zone area.  Do not emit blockage
12702         when profiling, it is emitted in generic code.
12703         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12704         function epilogue when frame pointer is used to access red zone area.
12705
12706 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
12707
12708         PR target/38824
12709         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12710         by arithmetic with memory operands.
12711         * config/i386/predicates.md (commutative_operator): New.
12712
12713 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
12714
12715         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12716         bulleted lists.
12717
12718 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12719
12720         * alias.h (record_alias_subset): Declare.
12721         * alias.c (record_alias_subset): Make global.
12722
12723 2009-02-10  Nick Clifton  <nickc@redhat.com>
12724
12725         * tree-parloops.c: Change license to GPLv3.
12726         * ipa-struct-reorg.c: Change license to GPLv3.
12727         * ipa-struct-reorg.h: Change license to GPLv3.
12728
12729 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
12730
12731         PR c/39084
12732         * c-decl.c (start_struct): Return NULL on error.
12733
12734 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
12735
12736         PR middle-end/39124
12737         * cfgloopmanip.c (remove_path): Call remove_bbs after
12738         cancel_loop_tree, not before it.
12739
12740         PR target/39139
12741         * function.h (struct function): Add has_local_explicit_reg_vars bit.
12742         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12743         VAR_DECLs were seen.
12744         * tree-ssa-live.c (remove_unused_locals): Recompute
12745         cfun->has_local_explicit_reg_vars.
12746         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12747         copies or clearings if cfun->has_local_explicit_reg_vars.
12748
12749 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
12750
12751         PR target/39118
12752         * config/i386/i386.c (expand_prologue): Emit blockage at the end
12753         of function prologue when frame pointer is used to access
12754         red zone area.
12755
12756 2009-02-10  Richard Guenther  <rguenther@suse.de>
12757
12758         PR middle-end/39127
12759         * gimplify.c (gimple_regimplify_operands): Always look if
12760         we need to create a temporary.
12761
12762 2009-02-10  Richard Guenther  <rguenther@suse.de>
12763
12764         PR tree-optimization/39132
12765         * tree-loop-distribution.c (todo): New global var.
12766         (generate_memset_zero): Trigger TODO_rebuild_alias.
12767         (tree_loop_distribution): Return todo.
12768
12769 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
12770
12771         PR target/39119
12772         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12773         (x86_64_reg_class_name): Removed.
12774         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
12775         first one isn't X86_64_SSE_CLASS or any other ones aren't
12776         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
12777         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12778         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
12779         and 3 X86_64_SSEUP_CLASS.
12780         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
12781         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12782
12783 2009-02-10  Ben Elliston  <bje@au.ibm.com>
12784
12785         * config/rs6000/rs6000.md (allocate_stack): Always use an update
12786         form instruction to update the stack back chain word, even if the
12787         user has disabled the generation of update instructions.
12788         (movdi_<mode>_update_stack): New.
12789         (movsi_update_stack): Likewise.
12790         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12791         always use an update form instruction to update the stack back
12792         chain word.
12793
12794 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
12795
12796         PR middle-end/38953
12797         * graphite.c (if_region_set_false_region): After moving a region in
12798         the false branch of a condition, remove the empty dummy basic block.
12799         (gloog): Remove wrong fix for PR38953.
12800
12801 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12802
12803         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12804         generation due to implicit sign extension.
12805
12806 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12807
12808         PR middle-end/38981
12809         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12810         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12811
12812 2009-02-09  Richard Guenther  <rguenther@suse.de>
12813
12814         PR middle-end/35202
12815         * convert.c (convert_to_real): Disable (float)fn((double)x)
12816         to fnf(x) conversion if errno differences may occur and
12817         -fmath-errno is set.
12818
12819 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
12820
12821         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12822         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12823         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12824
12825 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12826
12827         PR c/35434
12828         * c-common.c (handle_alias_attribute): Disallow attribute for
12829         anything not a FUNCTION_DECL or VAR_DECL.
12830
12831 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
12832
12833         PR c/39035
12834         * real.c (do_compare): Special-case compare of zero against
12835         decimal float value.
12836
12837 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12838
12839         PR c/36432
12840         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12841         as indicating flexible array members unless the field itself is
12842         being declarared as the incomplete array.
12843
12844 2009-02-06  Jan Hubicka  <jh@suse.cz>
12845
12846         PR tree-optimization/38844
12847         * ipa-inline.c (try_inline): Stop inlining recursion when edge
12848         is already inlined.
12849
12850 2009-02-06  Richard Guenther  <rguenther@suse.de>
12851
12852         PR middle-end/38977
12853         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12854         fork because we may expand it as __gcov_fork.
12855
12856 2009-02-06  Nick Clifton  <nickc@redhat.com>
12857
12858         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
12859
12860 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
12861
12862         PR tree-optimization/35659
12863         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12864         vn_phi_eq): Shortcut if hashcode does not match.
12865         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12866         NULL operands.
12867         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12868         and avoid iterative_hash_expr.
12869         (FOR_EACH_VALUE_ID_IN_SET): New.
12870         (value_id_compare): Remove.
12871         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12872         sort expressions by value id.
12873
12874 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
12875
12876         PR target/38991
12877         * config/sh/predicates.md (general_movsrc_operand): Don't check
12878         the subreg of system registers here.
12879
12880 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
12881
12882         PR c++/39106
12883         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12884         on the copied decl.
12885
12886 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
12887
12888         PR rtl-optimization/39110
12889         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12890         addresses, not aligned ones.
12891
12892 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
12893             Richard Guenther  <rguenther@suse.de>
12894
12895         PR tree-optimization/39100
12896         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12897         comment says and add edges.
12898
12899 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
12900
12901         PR c/35435
12902         * c-common.c (handle_tls_model_attribute): Ignore attribute for
12903         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12904
12905 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
12906
12907         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12908         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12909         register_bb_in_sese, new_sese, free_sese): Moved.
12910         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12911         outermost_loop_in_scop, build_scop_iteration_domain,
12912         expand_scalar_variables_ssa_name, get_vdef_before_scop,
12913         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12914         Use loop_in_sese_p instead of loop_in_scop_p.
12915         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12916         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12917         (scopdet_basic_block_info): Fix bug in scop detection.
12918         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12919         eq_loop_to_cloog_loop): Remove.
12920         (nb_loops_around_loop_in_scop, nb_loop
12921         ref_nb_loops): Moved here...
12922         * graphite.h (ref_nb_loops): ... from here.
12923         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12924         (loop_domain_dim, loop_iteration_vector_dim): Remove.
12925         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12926         * testsuite/gcc.dg/graphite/scop-19.c: New
12927
12928 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
12929             Hans-Peter Nilsson  <hp@axis.com>
12930
12931         PR rtl-optimization/37889
12932         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12933         Move offset handling from PLUS to before the switch.  Use new
12934         arguments when considering SYMBOL_REFs too.
12935         (rtx_addr_can_trap_p): Pass dummy offset and size.
12936         (enum may_trap_p_flags): Remove.
12937         (may_trap_p_1): Pass size from MEM_SIZE.
12938
12939         PR rtl-optimization/38921
12940         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12941         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12942         * rtlanal.c (may_trap_after_code_motion_p): Delete.
12943         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12944
12945 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
12946
12947         AVX Programming Reference (January, 2009)
12948         * config/i386/sse.md (*vpclmulqdq): New.
12949
12950 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR tree-optimization/38977
12953         PR gcov-profile/38292
12954         * calls.c (special_function_p): Disregard __builtin_ prefix.
12955
12956 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
12957
12958         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12959         non-indexable addresses even before reload.
12960
12961 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12962
12963         PR c/29129
12964         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12965         as having variable size.  Do not give an error for unnamed
12966         parameters with [*] declarators.  Give a warning for type names
12967         with [*] declarators and mark them as variable size.
12968         * c-parser.c (c_parser_sizeof_expression): Do not give an error
12969         for sizeof applied to [*] type names.
12970
12971 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12972
12973         PR C++/36607
12974         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12975
12976 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12977
12978         * gcc.c (process_command): Update copyright notice dates.
12979         * gcov.c (print_version): Likewise.
12980         * gcov-dump.c (print_version): Likewise.
12981         * mips-tfile.c (main): Likewise.
12982         * mips-tdump.c (main): Likewise.
12983
12984 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12985
12986         PR c/35433
12987         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12988         for composite type involving a zero-length array type.
12989
12990 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12991
12992         PR target/35318
12993         * function.c (match_asm_constraints_1): Skip over
12994         initial optional % in the constraint.
12995
12996         PR inline-asm/39059
12997         * c-parser.c (c_parser_postfix_expression): If fixed point is not
12998         supported, don't accept FIXED_CSTs.
12999         * c-decl.c (finish_declspecs): Error if fixed point is not supported
13000         and _Sat is used without _Fract/_Accum.  Set specs->type to
13001         integer_type_node for cts_fract/cts_accum if fixed point is not
13002         supported.
13003
13004 2009-02-02  Catherine Moore  <clm@codesourcery.com>
13005
13006         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
13007
13008 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
13009
13010         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
13011         (ABI_HAS_64BIT_SYMBOLS): Use it.
13012         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
13013
13014 2009-02-02  Paul Brook  <paul@codesourcery.com>
13015
13016         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
13017
13018 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
13019
13020         PR inline-asm/39058
13021         * recog.h (asm_operand_ok): Add constraints argument.
13022         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
13023         recurse on matching constraint.
13024         (check_asm_operands): Pass constraints as 3rd argument to
13025         asm_operand_ok.  Don't look up matching constraint here.
13026         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
13027         to asm_operand_ok.
13028
13029 2009-02-02  Ben Elliston  <bje@au.ibm.com>
13030
13031         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
13032         TARGET_NARROW_VOLATILE_BITFIELD macro names.
13033
13034 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13035
13036         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
13037         information.  Remove some obsolete information.  Reorganize.
13038
13039         * config/pa/fptr.c: Revert license to GPL 2.
13040         * config/pa/milli64.S: Likewise.
13041
13042 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
13043
13044         PR target/38904
13045         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
13046         LIBRARY name in, instead of hard-coding it.
13047         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
13048         extra target make frag to tmake_files according to EH model.
13049         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
13050         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
13051         frags that define makefile variable EH_MODEL appropriately.
13052         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
13053         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
13054         to "-sjlj" according to type of EH configured.
13055         (LIBGCC_SONAME):  Concatenate it to shared library base name.
13056         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
13057         to "_sjlj" according to type of EH configured.
13058         (LIBGCC_SONAME):  Concatenate it to shared library base name.
13059         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
13060         (SHLIB_LINK):  Add missing semicolon to if-else construct.
13061         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
13062         string value of "pe_dll" command-line option.
13063         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
13064         (SHLIB_SONAME):  Use it when overriding t-cygming default.
13065         (SHLIB_IMPLIB):  Override t-cygming default.
13066         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
13067         string value of "pe_dll" command-line option.
13068
13069 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
13070
13071         PR target/38952
13072         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
13073         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
13074
13075 2009-01-31  Richard Guenther  <rguenther@suse.de>
13076
13077         PR tree-optimization/38937
13078         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
13079         computing the transitive closure.
13080
13081 2009-01-30  Richard Guenther  <rguenther@suse.de>
13082
13083         PR tree-optimization/39041
13084         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
13085         Propagate variable indices only if the types match for this stmt.
13086
13087 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
13088
13089         PR target/39013
13090         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
13091         inline but never defined.
13092
13093 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
13094
13095         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
13096         (*insv_h_di_reg_extimm): New insn.
13097         (*insv_l<mode>_reg_extimm): New insn.
13098
13099 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
13100
13101         * config/picochip/picochip.c (flag_conserve_stack): set
13102         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
13103         fconserve-stack. Reduce call-overhead used by inliner.
13104
13105 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
13106
13107         PR/38157
13108         * common.opt (flag_conserve_stack): Initialised to zero.
13109
13110 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
13111
13112         PR/39002
13113         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
13114         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
13115         method.
13116
13117 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13118
13119         * ira-color.c (allocno_reload_assign): Update comments.
13120         * regmove.c (regmove_optimize): Likewise.
13121
13122         * ra.h: Removed.
13123
13124 2009-01-29  Robert Millan  <rmh@aybabtu.com>
13125
13126         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
13127         * config/i386/kopensolaris-gnu.h: New file.  Undefine
13128         `MD_UNWIND_SUPPORT'.
13129         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
13130
13131 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
13132
13133         PR tree-optimization/39007
13134         * tree-loop-distribution.c (generate_builtin): Use
13135         recompute_dominator to compute the immediate dominator of the
13136         basic block just after the loop.
13137
13138 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13139
13140         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
13141         (ASM_OUTPUT_DWARF_PCREL): Define.
13142
13143 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13144
13145         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
13146         * doc/passes.texi: Remove entries about regclass, local-alloc, and
13147         global.  Modify entries about regmove and IRA.
13148
13149         * ra-conflict.c: Remove the file.
13150
13151         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
13152
13153         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
13154         (pass_regclass_init): Rename to pass_reginfo_init.
13155
13156         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
13157
13158         * toplev.h (flag_ira): Remove.
13159
13160         * caller-save.c (setup_save_areas): Remove flag_ira.
13161
13162         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
13163
13164         * global.c: Remove the file.
13165
13166         * opts.c (decode_options): Remove flag_ira.
13167
13168         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
13169
13170         * regmove.c: Modify file description.
13171         (find_use_as_address, try_auto_increment): Define them only if
13172         AUTO_INC_DEC is defined.
13173         (replacement_quality, replace_in_call_usage, fixup_match_1,
13174         stable_and_no_regs_but_for_p): Remove.
13175         (reg_set_in_bb): Make it static.
13176         (regmove_optimize): Remove flag_ira and code which worked for
13177         !flag_ira.
13178
13179         * local-alloc.c: Remove the file.
13180
13181         * common.opt (fira): Remove.
13182
13183         * ira.c: Include except.h.
13184         (eliminable_regset): Move from global.c.
13185         (mark_elimination): Ditto.  Remove flag_ira.
13186         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
13187         equiv_mem_modified, validate_equiv_mem_from_store,
13188         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
13189         contains_replace_regs, memref_referenced_p, memref_used_between_p,
13190         no_equiv, recorded_label_ref): Move from local-alloc.c.
13191         (update_equiv_regs): Ditto.  Make it static.
13192         (print_insn_chain, print_insn_chains): Move it from global.c.
13193         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
13194         (build_insn_chain): Ditto.  Make it static.
13195         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
13196         Rename to init_live_subregs.
13197         (gate_ira): Remove flag_ira.
13198
13199         * regclass.c: Rename reginfo.c.  Change file description.
13200         (FORBIDDEN_INC_DEC_CLASSES): Remove.
13201         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
13202         (init_reg_sets_1): Remove code for evaluation of
13203         reg_class_superclasses and losing_caller_save_reg_set.
13204         (init_regs): Remove init_reg_autoinc.
13205         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
13206         ok_for_base_p_nonstrict): Remove.
13207         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
13208         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
13209         corresponding entries.
13210         (dump_regclass, record_operand_costs, scan_one_insn,
13211         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
13212         record_address_regs, auto_inc_dec_reg_p): Remove.
13213         (gt-regclass.h): Rename to gt-reginfo.h.
13214
13215         * rtl.h (dump_global_regs, retry_global_alloc,
13216         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
13217
13218         * Makefile.in (RA_H): Remove.
13219         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
13220         Rename regclass.o to reginfo.o.
13221         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
13222         gt-reginfo.h.
13223         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
13224         (GTFILES): Rename regclass.c to reginfo.c.
13225
13226         * passes.c (init_optimization_passes): Remove pass_local_alloc and
13227         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
13228
13229         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13230         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
13231         Remove flag_ira.
13232         (finish_spills): Ditto.  Remove code for !flag_ira.
13233
13234 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
13235
13236         PR middle-end/35854
13237         * doc/invoke.texi (rtl debug options): Complete rewrite.
13238         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
13239         to auto_inc_dec".
13240         * mode-switching.c (pass_mode_switching): Rename pass from
13241         "mode-sw" to "mode_sw".
13242         * except.c (pass_convert_to_eh_ranges): Rename pass from
13243         "eh-ranges" to "eh_ranges".
13244         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
13245         to "subreg1".
13246
13247
13248 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
13249             Alexander Monakov  <amonakov@ispras.ru>
13250
13251         PR middle-end/38857
13252         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
13253         register.
13254         (move_exprs_to_boundary): Change return type and pass through
13255         should_move from move_op.  Relax assert.  Update usage ...
13256         (schedule_expr_on_boundary): ... here.  Use should_move instead of
13257         cant_move.
13258         (move_op_orig_expr_found): Indicate that insn was disconnected from
13259         stream.
13260         (code_motion_process_successors): Do not call after_merge_succs
13261         callback if original expression was not found when traversing any of
13262         the branches.
13263         (code_motion_path_driver): Change return type.  Update prototype.
13264         (move_op): Update comment.  Add a new parameter (should_move).  Update
13265         prototype.  Set *should_move based on indication provided by
13266         move_op_orig_expr_found.
13267
13268 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13269
13270         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
13271         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
13272         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
13273         * config/rs6000/rs6000.c (rs6000_override_options): Default
13274         avoid-indexed-addresses on for Power6, off for everything else.
13275         (avoiding_indexed_address_p): New function.
13276         (rs6000_legitimize_address): Use it.
13277         (rs6000_legitimate_address): Likewise.
13278         * config/rs6000/rs6000.md (movXX_updateX): Likewise
13279
13280 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
13281
13282         PR tree-optimization/38997
13283         * tree-loop-distribution.c (generate_memset_zero): Use
13284         POINTER_PLUS_EXPR for a pointer addition.
13285
13286 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
13287
13288         * config/s390/s390.md (bswap<mode>2): New pattern added.
13289
13290 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
13291
13292         * config/s390/s390.md (*tls_load_31): Added type attribute.
13293
13294 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
13295
13296         * config/s390/s390.md: Fix a few comments.
13297
13298 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
13299
13300         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
13301         (*tm<mode>_full): Fixed z10prop attribute.
13302         (*tst<mode>_extimm): Fixed z10prop attribute.
13303         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
13304         (*tstqiCCT_cconly): Fixed z10prop attribute.
13305         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
13306         (*movsi_larl): Fixed z10prop attribute.
13307         (*movsi_zarch): Fixed z10prop attribute.
13308         (*movsi_eas): Fixed z10prop attribute.
13309         (*movhi): Fixed z10prop attribute.
13310         (*movqi): Fixed z10prop attribute.
13311         (*movstrictqi): Fixed z10prop attribute.
13312         (*mov<mode>): Fixed z10prop attribute.
13313         (*movcc): Fixed z10prop attribute.
13314         (*sethighpartdi_64): Fixed z10prop attribute.
13315         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
13316         (*negdi2_sign_cc): Fixed z10prop attribute.
13317         (*negdi2_sign): Fixed z10prop attribute.
13318         (*absdi2_sign_cc): Fixed z10prop attribute.
13319         (*absdi2_sign): Fixed z10prop attribute.
13320         (*negabsdi2_sign_cc): Fixed z10prop attribute.
13321         (*negabsdi2_sign): Fixed z10prop attribute.
13322         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
13323         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
13324         (doloop_si64): Fixed z10prop attribute.
13325         (doloop_si31): Fixed z10prop attribute.
13326         (doloop_long): Fixed z10prop attribute.
13327         (indirect_jump): Fixed z10prop attribute.
13328         (nop): Fixed z10prop attribute.
13329         (main_base_64): Fixed z10prop attribute.
13330         (reload_base_64): Fixed z10prop attribute.
13331
13332 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
13333
13334         PR rtl-optimization/38740
13335         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
13336         if !optimize.
13337         * config/mips/mips.c (mips_reorg): Likewise.
13338
13339 2009-01-28  Richard Guenther  <rguenther@suse.de>
13340
13341         PR tree-optimization/38926
13342         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
13343         with the correct value id to a value.
13344         (do_regular_insertion): Use the value number of edoubleprime
13345         for the value number of the expr.
13346
13347         Revert
13348         2008-08-21  Richard Guenther  <rguenther@suse.de>
13349
13350         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
13351         a PHI ask VN if it is already available.
13352         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
13353         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
13354
13355 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
13356
13357         PR middle-end/38934
13358         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
13359         set to varying whenever max has TREE_OVERFLOW set, similarly
13360         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
13361
13362 2009-01-28  Richard Guenther  <rguenther@suse.de>
13363
13364         PR middle-end/38908
13365         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
13366         uninitialized aggregate uses in call arguments.
13367
13368 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
13369
13370         PR tree-optimization/38984
13371         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
13372         the nothing_id variable if -fno-delete-null-pointer-checks.
13373
13374 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
13375
13376         PR target/38988
13377         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
13378         (set_got_offset_rex64): Ditto.
13379
13380 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13381
13382         PR target/38941
13383         * doc/extend.texi: Improve local variable with asm reg.
13384
13385 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
13386
13387         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13388         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13389         was not supplied then set warn_packed_bitfield_compat to the
13390         default value of 1.
13391         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13392         against 1.
13393
13394 2009-01-27  Richard Guenther  <rguenther@suse.de>
13395
13396         PR tree-optimization/38503
13397         * cfgexpand.c (expand_gimple_basic_block): Ignore
13398         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13399         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13400         variables that cannot have TBAA applied.
13401         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13402         statements.
13403
13404 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
13405
13406         PR middle-end/38969
13407         * calls.c (initialize_argument_information): Do not wrap complex
13408         arguments in SAVE_EXPR.
13409
13410 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
13411
13412         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
13413         (INSTALL_LIBGCC): Revert typo commit.
13414
13415 2009-01-26  Richard Guenther  <rguenther@suse.de>
13416
13417         PR tree-optimization/38745
13418         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13419         from special handling.
13420
13421 2009-01-26  Richard Guenther  <rguenther@suse.de>
13422
13423         PR tree-optimization/38745
13424         * tree-ssa.c (execute_update_addresses_taken): Do not include
13425         variables that cannot possibly be a register in not_reg_needs.
13426         Do not clear TREE_ADDRESSABLE on vars that may not become
13427         registers.
13428         * tree-ssa.c (update_alias_info_1): Include those in the set
13429         of addressable vars.
13430
13431 2009-01-26  Richard Guenther  <rguenther@suse.de>
13432
13433         PR middle-end/38851
13434         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13435         * tree-ssa-dse.c: Include langhooks.h
13436         (execute_simple_dse): Remove stores with zero size.
13437
13438 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
13439
13440         PR c/38957
13441         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13442         as PLUS_EXPR.
13443
13444 2009-01-24  Julian Brown  <julian@codesourcery.com>
13445
13446         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13447         config/arm/linux-atomic.c.
13448         * config/arm/linux-atomic.c: New.
13449
13450 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
13451
13452         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13453         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13454         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13455
13456 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13457
13458         PR c/38938
13459         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
13460         properly.
13461
13462 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
13463
13464         PR tree-optimization/38953
13465         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13466         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13467         (gloog): Split the exit of the scop when the scop exit is a loop exit.
13468         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13469         changed the CFG.
13470
13471 2009-01-24  Paul Brook  <paul@codesourcery.com>
13472
13473         * config/arm/neon.md (neon_type): Move to arm.md.
13474         (neon_mov<VSTRUCT>): Add neon_type attribute.
13475         * config/arm/arm.md (neon_type): Move to here.
13476         (conds): Add "unconditioal" and use as default for NEON insns.
13477
13478 2009-01-24  Ben Elliston  <bje@au.ibm.com>
13479
13480         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13481         void *' warning from -Wc++-compat.
13482         * Makefile.in (dominance.o-warn): Remove.
13483
13484 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
13485
13486         PR tree-optimization/38932
13487         * fold-const.c (fold_unary_ignore_overflow): New.
13488         * tree.h (fold_unary_ignore_overflow): Declare.
13489         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13490         * tree-ssa-sccvn.c (visit_reference_op_load,
13491         simplify_unary_expression): Likewise.
13492
13493 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
13494
13495         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13496         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
13497         regardless of their type.
13498         * c-common.c (handle_packed_attribute): Don't ignore packed on
13499         bitfields.
13500         * c.opt (Wpacked-bitfield-compat): New warning option.
13501         * stor-layout.c (place_field): Warn if offset of a field changed.
13502         * doc/extend.texi (packed): Mention the ABI change.
13503         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13504         (Warning Options): Add it to the list.
13505
13506 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
13507
13508         * c-opts.c (c_common_post_options): Fix a typo in comments.
13509
13510 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
13511
13512         PR middle-end/38615
13513         * gimplify.c (gimplify_init_constructor): Fix promotion of const
13514         variables to static.
13515         * doc/invoke.texi (-fmerge-all-constants): Update description.
13516
13517 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
13518
13519         PR target/38931
13520         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13521         (*movdi_1_rex64): Use type "mmx" for alternative 5.
13522
13523 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
13524
13525         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13526         a word boundary.
13527         (LOCAL_ALIGNMENT): Similarly.
13528
13529 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13530             Joseph Myers  <joseph@codesourcery.com>
13531
13532         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13533         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13534         * config/arm/arm-tune.md: Regenerate.
13535         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13536         -march=iwmmxt2.
13537
13538 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13539
13540         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13541         version number to five.
13542
13543 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
13544
13545         PR c++/38930
13546         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
13547         * c-common.c (set_underlying_type): Likewise.
13548         (is_typedef_decl ): Likewise
13549         * tree.h: Likewise
13550         (set_underlying_type): Likewise.
13551         (is_typedef_type): Likewise.
13552
13553 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
13554
13555         PR middle-end/38587
13556         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13557         crossing setjmps.
13558
13559 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13560
13561         PR bootstrap/37660
13562         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
13563         (LIBGCC_SPEC):  Don't define.
13564         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
13565
13566 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
13567
13568         PR rtl-optimization/38879
13569         * alias.c (base_alias_check): Unaligned access via AND address can
13570         alias all surrounding object types except those with sizes equal
13571         or wider than the size of unaligned access.
13572
13573 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
13574
13575         PR c++/26693
13576         * c-decl.c (clone_underlying_type): Move this ...
13577         * c-common.c (set_underlying_type): ... here.
13578         Also, make sure the function properly sets TYPE_STUB_DECL() on
13579         the newly created typedef variant type.
13580         (is_typedef_decl ): New entry point.
13581         * tree.h: Added a new member member_types_needing_access_check to
13582         struct tree_decl_non_common.
13583         (set_underlying_type): New entry point.
13584         (is_typedef_type): Likewise.
13585
13586 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
13587
13588         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13589         Check whether two instructions have memory references that
13590         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
13591         are helper functions for traversing.
13592         * alias.h (insn_alias_sets_confilict_p): New prototypes.
13593         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13594         not to draw dependency edge for instructions with non-conflicting
13595         alias sets.
13596
13597 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
13598
13599         PR other/38758
13600         * longlong.h: Update copyright years.  Use soft-fp license notice.
13601         Sync __clz_tab declaration with glibc.
13602
13603 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
13604
13605         PR target/30687
13606         * doc/extend.texi (syscall_linkage): New.
13607         (version_id): Modify.
13608
13609 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13610             Richard Guenther  <rguenther@suse.de>
13611
13612         PR tree-optimization/38747
13613         PR tree-optimization/38748
13614         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13615         conversion if the base address is an indirect reference and the
13616         aliasing sets could cause issues.
13617
13618 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13619
13620         * common.opt (fgraphite, fgraphite-identity): Add comment for
13621         explaining why these options are not documented.
13622
13623 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13624
13625         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13626         gimple_call_lhs is NULL.
13627
13628 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
13629
13630         PR target/38868
13631         * emit-rtl.c (adjust_address_1): Make sure memref is never
13632         overwritten.
13633
13634 2009-01-20  Ben Elliston  <bje@au.ibm.com>
13635
13636         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13637         const qualifier from arg parameter. Remove unnecessary cast to char *.
13638         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13639         const qualifier from arg 2.
13640
13641 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
13642
13643         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
13644
13645 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
13646
13647         PR c/38869
13648         * rtl.h (reinit_regs): New prototype.
13649         * regclass.c: Include ira.h.
13650         (reinit_regs): New.
13651         * Makefile.in (regclass.o): Add ira.h.
13652         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13653
13654 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
13655
13656         PR target/38736
13657         * c-common.c (handle_aligned_attribute): Use
13658         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13659         default alignment value.
13660
13661         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13662
13663         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13664         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13665
13666         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
13667         __BIGGEST_ALIGNMENT__.
13668
13669         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13670
13671 2009-01-18  Richard Guenther  <rguenther@suse.de>
13672
13673         PR tree-optimization/38819
13674         * tree-flow.h (operation_could_trap_helper_p): Declare.
13675         * tree-eh.c (operation_could_trap_helper_p): Export.
13676         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13677         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13678         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13679         are about to insert a possibly trapping instruction and fail
13680         in this case.
13681
13682 2009-01-18  Andreas Schwab  <schwab@suse.de>
13683
13684         * doc/install.texi (Configuration): Remove obsolete paragraph
13685         about use of --with-gnu-ld with --with-gnu-as.
13686
13687 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
13688
13689         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13690         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13691         Follow spelling conventions.
13692
13693 2009-01-18  Ben Elliston  <bje@au.ibm.com>
13694
13695         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13696         C++ warning about implicit conversion from void * to struct
13697         bitmap_head_def *.
13698         (bitmap_obstack_free): Likewise for bitmap_element *.
13699         * Makefile.in (bitmap.o-warn): Remove.
13700
13701 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
13702
13703         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
13704
13705 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
13706             Tobias Grosser  <tobi.grosser@amd.com>
13707
13708         * graphite.c (graphite_trans_scop_block): Do not block single
13709         nested loops.
13710
13711 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
13712
13713         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13714         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13715         test with assertion.
13716
13717 2009-01-16  Richard Guenther  <rguenther@suse.de>
13718
13719         PR tree-optimization/38835
13720         PR middle-end/36227
13721         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13722         and INT + PTR -> (INT)(PTR p+ INT) folding.
13723         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13724
13725 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
13726
13727         PR target/38554
13728         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13729         the subreg from a lowpart subreg if it is also casting the value.
13730
13731 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13732             Tobias Grosser  <tobi.grosser@amd.com>
13733
13734         * graphite.c (compare_prefix_loops): New.
13735         (build_scop_canonical_schedules): Rewritten.
13736         (graphite_transform_loops): Move build_scop_canonical_schedules
13737         after build_scop_iteration_domain.
13738
13739 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13740             Tobias Grosser  <tobi.grosser@amd.com>
13741
13742         * graphite.c (add_conditions_to_domain): Add the loops to
13743         the dimension of the iteration domain.  Do copy the domain
13744         only when it exists.
13745         (build_scop_conditions_1): Do not call add_conditions_to_domain.
13746         (add_conditions_to_constraints): New.
13747         (can_generate_code_stmt, can_generate_code): Removed.
13748         (gloog): Do not call can_generate_code.
13749         (graphite_transform_loops): Call add_conditions_to_constraints
13750         after building the iteration domain.
13751
13752 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
13753
13754         PR tree-optimization/38789
13755         * tree-ssa-threadedge.c
13756         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13757         __builtin_constant_p.
13758
13759 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
13760
13761         * dce.c (delete_unmarked_insns): Reversed the order that insns are
13762         examined before deleting them.
13763
13764 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
13765
13766         * function.c (aggregate_value_p): Correctly extract the function
13767         type from CALL_EXPR_FN lookup.
13768
13769 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13770
13771         * config/picochip/picochip.c (picochip_override_options): Revert
13772         CFI asm flag disable commited previously.
13773
13774 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13775             Tobias Grosser  <tobi.grosser@amd.com>
13776             Jan Sjodin  <jan.sjodin@amd.com>
13777
13778         * graphite.c (scan_tree_for_params): On substractions negate
13779         all the coefficients of the term.
13780         (clast_to_gcc_expression_red): New.  Handle reduction expressions
13781         of more than two operands.
13782         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13783         (get_vdef_before_scop): Handle also the case of default definitions.
13784
13785 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
13786
13787         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13788         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13789         Also use them when walking CALL_INSN_FUNCTION_USAGE.
13790
13791 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13792             Joey Ye  <joey.ye@intel.com>
13793
13794         PR middle-end/37843
13795         * cfgexpand.c (expand_stack_alignment): Don't update stack
13796         boundary nor check incoming stack boundary here.
13797         (gimple_expand_cfg): Update stack boundary and check incoming
13798         stack boundary here.
13799
13800 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
13801
13802         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
13803
13804 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
13805
13806         PR rtl-optimization/38245
13807         * calls.c (expand_call): Add stack arguments to
13808         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13809         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13810         in regs and partially in memory or BLKmode arguments.
13811         (emit_library_call_value_1): Add stack arguments to
13812         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13813         ACCUMULATE_OUTGOING_ARGS).
13814         * dce.c: Include tm_p.h.
13815         (find_call_stack_args): New function.
13816         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
13817         argument.
13818         (mark_insn): Call find_call_stack_args for CALL_Ps.
13819         (prescan_insns_for_dce): Walk insns backwards in bb rather than
13820         forwards.  Allocate and free arg_stores bitmap if needed, pass it
13821         down to deletable_insn_p, don't mark stores set in arg_stores
13822         bitmap, clear the bitmap at the beginning of each bb.
13823         * Makefile.in (dce.o): Depend on $(TM_P_H).
13824
13825 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
13826
13827         PR target/22599
13828         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13829         to make sure the insn is a conditional test (bug 22599).  Reformat a
13830         few long lines.
13831
13832 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
13833
13834         PR middle-end/38431
13835         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13836         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13837         (gloog): Do not call cleanup_tree_cfg.
13838         (graphite_transform_loops): Call cleanup_tree_cfg after all
13839         scops have been code generated.
13840
13841 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
13842         * doc/gty.texi (Invoking the garbage collector): Added new node
13843         and section documenting ggc_collect.
13844
13845 2009-01-14  Richard Guenther  <rguenther@suse.de>
13846
13847         PR tree-optimization/38826
13848         PR middle-end/38477
13849         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13850         initialization notes only if we actually emitted a warning.
13851         (intra_create_variable_infos): Add constraints for a result decl
13852         that is passed by hidden reference.
13853         (build_pred_graph): Mark all related variables non-direct on
13854         address-taking.
13855
13856 2009-01-14  Nick Clifton  <nickc@redhat.com>
13857
13858         * ira-conflicts.c: Include addresses.h for the definition of
13859         base_reg_class.
13860         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13861         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
13862
13863 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
13864
13865         PR target/38811
13866         * Makefile.in (ira-lives.o): Add except.h.
13867
13868         * ira-lives.c: Include except.h.
13869         (process_bb_node_lives): Process can_throw_internal.
13870
13871 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
13872
13873         PR rtl-optimization/38774
13874         * combine.c (simplify_set): When undoing cc_use change, don't do
13875         PUT_CODE on the newly created comparison, but instead put back the
13876         old comparison.
13877
13878 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
13879
13880         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13881         values.  Remove duplicate arm8 entry.
13882
13883 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13884
13885         PR tree-optimization/38786
13886         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13887         the SSA_NAME case of expand_scalar_variables_expr.
13888         Set the type of an expression to the type of its assign statement.
13889         (expand_scalar_variables_expr): Also gather the scalar computation
13890         used to index the memory access.  Do not pass loop_p.
13891         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
13892         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
13893         the gimple_stmt_iterator where it inserts new code.
13894         Do not pass loop_p.
13895         (copy_bb_and_scalar_dependences): Do not pass loop_p.
13896         (translate_clast): Update call to copy_bb_and_scalar_dependences.
13897
13898 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13899
13900         * graphite.h (debug_value): Removed.
13901         * graphite.c (debug_value): Removed.
13902
13903 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13904
13905         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13906         ldrd/strd with two 32-bit instructions.
13907
13908 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13909
13910         * config/arm/arm.c (struct processors): Pass for speed down into
13911         cost helper functions.
13912         (const_ok_for_op): Handle COMPARE and inequality nodes.
13913         (arm_rtx_costs_1): Rewrite.
13914         (arm_size_rtx_costs): Update prototype.
13915         (arm_rtx_costs): Pass speed down to helper functions.
13916         (arm_slowmul_rtx_costs): Rework cost calculations.
13917         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13918         (arm_9e_rtx_costs): Likewise.
13919
13920 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
13921
13922         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
13923         relocations of local symbols wider than UNITS_PER_WORD are not valid.
13924         (alpha_legitimize_address): Do not split local symbols wider than
13925         UNITS_PER_WORD into HIGH/LO_SUM parts.
13926
13927 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
13928
13929         PR bootstrap/38580
13930         * gcc.c (process_command): Replace call to execvp with calls
13931         to pex_one and exit.
13932
13933 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
13934
13935         PR target/29141
13936         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13937         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13938         variant for devices with 3-byte PC.
13939         (__tablejump_elpm__): New.
13940
13941 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13942
13943         PR c/32041
13944         * c-parser.c (c_parser_postfix_expression): Allow `->' in
13945         offsetof member-designator, handle it as `[0].'.
13946
13947 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13948
13949         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13950         function when not using named sections on targets with named sections
13951         if branch distance is less than 262132.
13952
13953 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
13954
13955         * combine.c (combine_instructions):  Recompute
13956         optimize_this_for_speed_p  for each BB in the main combine loop.
13957
13958 2009-01-12  Tomas Bily  <tbily@suse.cz>
13959
13960         PR middlend/38385
13961         * tree-loop-distribution.c (prop_phis): New function.
13962         (generate_builtin): Call prop_phis.
13963         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
13964
13965 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13966
13967         PR tree-optimization/38807
13968         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13969         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13970
13971 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
13972
13973         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13974         subreg of op0 to the original op0.
13975
13976 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
13977
13978         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
13979
13980 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
13981
13982         PR debug/7055
13983         * mips-tfile.c (parse_def): Fix parsing of def strings
13984         starting with digits.
13985
13986 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
13987
13988         PR target/38695
13989         * config/arm/arm.c (arm_is_long_call_p): Don't call
13990         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13991
13992 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
13993
13994         * regrename.c (regrename_optimize): Fix dumping.
13995         (find_oldest_value_reg): Preserve REG_POINTER.
13996         (copy_hardreg_forward_1): Likewise.
13997
13998 2009-01-09  Diego Novillo  <dnovillo@google.com>
13999
14000         * gimple.h (struct gimple_statement_base) <uid>: Document
14001         the restrictions on its use.
14002         (gimple_uid): Tidy.
14003         (gimple_set_uid): Tidy.
14004
14005 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
14006
14007         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
14008         zero guard even if align_bytes != 0 and count is smaller than
14009         size_needed.
14010
14011 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
14012
14013         PR rtl-optimization/38495
14014         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
14015         (add_range_and_copies_from_move_list): Print all added ranges.
14016         Add ranges to memory optimized destination.
14017
14018 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
14019
14020         PR target/38686
14021         PR target/38708
14022         * config/i386/i386.c (override_options): Reject
14023         -mstringop-strategy=rep_8byte with -m32.
14024         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
14025         to 1.  Do count comparison against epilogue_size_needed at compile
14026         time even when count_exp was constant forced into register.  For
14027         size_needed don't jump to epilogue, instead just avoid aligning
14028         and invoke the body algorithm.  If need_zero_guard, add zero guard
14029         even if count is non-zero, but smaller than size_needed + number of
14030         bytes that could be stored for alignment.
14031         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
14032         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
14033         but smaller than size_needed + number of bytes that could be stored
14034         for alignment.  Compare size_needed with epilogue_size_needed instead
14035         of desired_align - align, don't adjust size_needed, pass
14036         epilogue_size_needed to the epilogue expanders.
14037
14038         PR c/35742
14039         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
14040
14041 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14042
14043         * pa.c (last_address): Change to unsigned.
14044         (update_total_code_bytes): Change argument to unsigned.  Don't
14045         check if insn addresses are set.
14046         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
14047         addresses are not set.
14048         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
14049
14050 2009-01-09  Nick Clifton  <nickc@redhat.com>
14051
14052         * config/sh/symbian.c: Replace uses of DECL_INLINE with
14053         DECL_DECLARED_INLINE_P.
14054
14055 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
14056
14057         PR middle-end/38347
14058         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
14059         GET_MODE (op0) in operand_subword_force calls.
14060
14061         PR middle-end/38771
14062         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
14063         fold_convert arg0 operands to TREE_TYPE (op0) first.
14064
14065 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
14066
14067         * params.def (ira-max-conflict-table-size): Decrease default value
14068         to 1000.
14069
14070 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
14071
14072         PR tree-optimization/37031
14073         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
14074         on parameter_set.
14075         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
14076         allocate it using gc instead of heap, use VEC_quick_push instead of
14077         VEC_safe_push.
14078         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
14079         instead of heap, use VEC_quick_push instead of VEC_safe_push.
14080         * tree-data-ref.h (struct access_matrix): Change matrix to gc
14081         allocated vector from heap allocated.
14082         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
14083         * tree-loop-linear.c (linear_transform_loops): Allocate nest
14084         vector only after perfect_loop_nest_depth call.
14085
14086 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
14087             Jan Sjodin  <jan.sjodin@amd.com>
14088
14089         PR tree-optimization/38559
14090         * graphite.c (debug_value, copy_constraint,
14091         swap_constraint_variables, scale_constraint_variable, ): New.
14092         (get_lower_bound, get_upper_bound): Removed.
14093         (graphite_trans_bb_strip_mine): Clean up this code that works
14094         only for constant number of iterations.  Fully copy upper and
14095         lower bound constraints, not only the constant part of them.
14096         * graphite.h (debug_value): Declared.
14097
14098 2009-01-08  Ira Rosen  <irar@il.ibm.com>
14099
14100         PR tree-optimization/37194
14101         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
14102         Don't add the cost of cost model guard in prologue to scalar
14103         outside cost in case of known number of iterations.
14104
14105 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
14106             Alan Modra  <amodra@bigpond.net.au>
14107
14108         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
14109         non-word-aligned REG+CONST addressing.
14110
14111 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
14112
14113         PR target/38706
14114         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
14115         free_after_compilation when outputting a thunk.
14116         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
14117         Do not call free_after_compilation here.
14118
14119 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
14120
14121         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
14122         (ix86_valid_target_attribute_inner_p): Ditto.
14123
14124 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
14125
14126         PR tree-optimization/38492
14127         PR tree-optimization/38498
14128         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
14129         * tree-chrec.h (scev_is_linear_expression): Declared.
14130         * graphite.c (graphite_cannot_represent_loop_niter): New.
14131         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
14132         (graphite_loop_normal_form): Use gcc_assert.
14133         (scan_tree_for_params): Use CASE_CONVERT.
14134         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
14135         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
14136         Use gcc_assert.  Discard scops that contain unhandled cases.
14137         (build_scop_conditions): Return a boolean status for unhandled cases.
14138         (strip_mine_profitable_p): Print the loop number, not its depth.
14139         (is_interchange_valid): Pass the depth of the loop nest, don't
14140         recompute it wrongly.
14141         (graphite_trans_bb_block): Same.
14142         (graphite_trans_bb_block): Print tentative of loop blocking.
14143         (graphite_trans_scop_block): Do not print that the loop has been
14144         blocked.
14145         (graphite_transform_loops): Do not handle scops that contain condition
14146         scalar phi nodes.
14147
14148 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
14149
14150         AVX Programming Reference (December, 2008)
14151         * config/i386/avxintrin.h (_mm256_stream_si256): New.
14152         (_mm256_stream_pd): Likewise.
14153         (_mm256_stream_ps): Likewise.
14154
14155         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
14156         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
14157         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
14158         (bdesc_special_args): Add __builtin_ia32_movntdq256,
14159         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
14160         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
14161         (ix86_expand_special_args_builtin): Likewise.
14162
14163         * config/i386/sse.md (AVXMODEDI): New.
14164         (avx_movnt<mode>): Likewise.
14165         (avx_movnt<mode>): Likewise.
14166         (<sse>_movnt<mode>): Remove AVX support.
14167         (sse2_movntv2di): Likewise.
14168
14169 2009-01-07  Richard Guenther  <rguenther@suse.de>
14170
14171         PR middle-end/38751
14172         * fold-const.c (extract_muldiv): Remove obsolete comment.
14173         (fold_plusminus_mult_expr): Undo MINUS_EXPR
14174         to PLUS_EXPR canonicalization for the canonicalization.
14175
14176 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
14177
14178         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
14179         hosted cross-compilers generating less efficient code.
14180
14181 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
14182
14183         * function.h (rtl_data): Add a dbr_scheduled_p field.
14184         * reorg.c (dbr_schedule): Set it.
14185         (gate_handle_delay_slots): Check it.
14186         * config/mips/mips.c (mips_base_delayed_branch): Delete.
14187         (mips_reorg): Check flag_delayed_branch instead of
14188         mips_base_delayed_branch.
14189         (mips_override_options): Don't set mips_base_delayed_branch
14190         or flag_delayed_branch.
14191
14192 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
14193
14194         PR rtl-optimization/38426.
14195         * ira.c (ira): Set current_function_is_leaf earlier.
14196
14197 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
14198
14199         PR rtl-optimization/38722
14200         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
14201         too early, only set a flag and modify after last possible
14202         undo_all point.
14203
14204 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
14205
14206         PR c/34252
14207         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
14208         * real.c (decimal_single_format): Correct values of emin and emax.
14209         (decimal_double_format): Ditto.
14210         (decimal_quad_format): Ditto.
14211         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
14212         computation of DECnn_MIN and DECnn_MAX for corrected values of
14213         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
14214         __DECnn_MIN__, and adjust its computation for the corrected value
14215         of emin.
14216
14217 2009-01-06  Jan Hubicka  <jh@suse.cz>
14218
14219         PR target/38744
14220         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
14221
14222 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
14223
14224         * doc/contrib.texi (Contributors): Slightly adjust the end note.
14225         Add Robert Clark to the list of testers.
14226
14227 2009-01-06  Jan Hubicka  <jh@suse.cz>
14228             Kai Tietz  <kai.tietz@onevision.com>
14229
14230         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
14231         * config/i386/i386.c (ix86_expand_call): Add clobbers.
14232
14233 2009-01-06  Jan Hubicka  <jh@suse.cz>
14234             Kai Tietz  <kai.tietz@onevision.com>
14235
14236         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
14237         for w64 ABI.
14238         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
14239         (ix86_nsaved_regs): Count only general purpose regs.
14240         (ix86_nsaved_sseregs): New.
14241         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
14242         to 16 for w64; compute padding and size of sse reg save area.
14243         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
14244         general purpose regs.
14245         (ix86_emit_save_sse_regs_using_mov): New.
14246         (ix86_expand_prologue): Save SSE regs if needed.
14247         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
14248         (ix86_emit_restore_sse_regs_using_mov): New.
14249         (ix86_expand_epilogue): Save SSE regs if needed.
14250
14251 2009-01-06  Jan Hubicka  <jh@suse.cz>
14252             Kai Tietz  <kai.tietz@onevision.com>
14253
14254         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
14255         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
14256         functions when accumulate outgoing args is off.
14257
14258 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
14259
14260         PR bootstrap/38742
14261         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
14262         before using pseudos_have_intersected_live_ranges_p.
14263
14264         * ira-int.h (ira_assert): Always define.
14265
14266 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
14267
14268         AVX Programming Reference (December, 2008)
14269         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
14270         (_mm256_permute2_pd): Likewise.
14271         (_mm_permute2_ps): Likewise.
14272         (_mm256_permute2_ps): Likewise.
14273         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
14274         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
14275
14276         * config/i386/i386.c (ix86_builtins): Remove
14277         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
14278         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
14279         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
14280         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
14281         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
14282         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
14283         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
14284         __builtin_ia32_vpermil2ps256.
14285         (ix86_init_mmx_sse_builtins): Updated.
14286         (ix86_expand_args_builtin): Likewise.
14287
14288 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14289
14290         * pa.c (output_call): Relocate non-jump insns in the delay slot of
14291         long absolute calls when generating PA 2.0 code.
14292
14293 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
14294
14295         PR rtl-optimization/38583
14296         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
14297
14298         * params.def (ira-max-conflict-table-size): New.
14299
14300         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
14301
14302         * ira.h (ira_conflicts_p): New external definition.
14303
14304         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
14305         table.  Report this.  Return result of building.
14306         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
14307         building conflict table.
14308
14309         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
14310         (ira_color): Use ira_conflicts_p.
14311
14312         * global.c: Include ira.h.
14313         (pseudo_for_reload_consideration_p, build_insn_chain): Use
14314         ira_conflicts_p.
14315
14316         * Makefile.in (global.o): Add ira.h.
14317
14318         * ira-build.c (mark_all_loops_for_removal,
14319         propagate_some_info_from_allocno): New.
14320         (remove_unnecessary_allocnos): Call
14321         propagate_some_info_from_allocno.
14322         (remove_low_level_allocnos): New.
14323         (remove_unnecessary_regions): Add parameter.  Call
14324         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
14325         parameter to remove_unnecessary_regions.
14326         (ira_build): Remove all regions but root if the conflict table was
14327         not built.  Update conflict hard regs for allocnos crossing calls.
14328
14329         * ira.c (ira_conflicts_p): New global.
14330         (ira): Define and use ira_conflicts_p.
14331
14332         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14333         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
14334         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
14335
14336 2009-01-06  Ben Elliston  <bje@au.ibm.com>
14337
14338         * gengtype-lex.l (YY_NO_INPUT): Define.
14339
14340 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14341
14342         PR c/34911
14343         * c-common.c (handle_vector_size_attribute): Also reject
14344         BOOLEAN_TYPE types.
14345
14346 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
14347
14348         PR tree-optimization/38492
14349         * graphite.c (rename_map_elt, debug_rename_elt,
14350         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
14351         rename_map_elt_info, eq_rename_map_elts,
14352         get_new_name_from_old_name, bb_in_sese_p): Moved around.
14353         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
14354         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
14355         (sese_build_livein_liveouts): New.
14356         (new_sese, free_sese): New.
14357         (new_scop): Call new_sese.
14358         (free_scop): Call free_sese.
14359         (rename_variables_from_edge, rename_phis_end_scop): Removed.
14360         (register_old_new_names): Renamed register_old_and_new_names.
14361         (register_scop_liveout_renames, add_loop_exit_phis,
14362         insert_loop_close_phis, struct igp,
14363         default_liveout_before_guard, add_guard_exit_phis,
14364         insert_guard_phis, copy_renames): New.
14365         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
14366         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
14367         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
14368         (scop_adjust_phis_for_liveouts): New.
14369         (gloog): Call scop_adjust_phis_for_liveouts.
14370
14371         * graphite.h (struct sese): Documented.  Added fields liveout,
14372         num_ver and livein.
14373         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
14374         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
14375         (struct scop): Added field liveout_renames.
14376         (SCOP_LIVEOUT_RENAMES): New.
14377
14378 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14379
14380         PR tree-optimization/38510
14381         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14382         (translate_clast): Call recompute_all_dominators before
14383         graphite_verify.
14384         (gloog): Call recompute_all_dominators before graphite_verify.
14385
14386 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14387             Jan Sjodin  <jan.sjodin@amd.com>
14388
14389         PR tree-optimization/38500
14390         * graphite.c (create_sese_edges): Call fix_loop_structure after
14391         splitting blocks.
14392
14393 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
14394
14395         * config.gcc: Add m32r*-*-rtems*.
14396         * config/m32r/rtems.h: New file.
14397
14398 2009-01-05  Ben Elliston  <bje@au.ibm.com>
14399
14400         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14401         (.po.pox): Likewise.
14402         (po/gcc.pot): Likewise.
14403
14404 2009-01-04  David S. Miller  <davem@davemloft.net>
14405
14406         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14407         (STARTING_FRAME_OFFSET): Always set to zero.
14408
14409 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14410
14411         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14412         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14413         fixed-point types, and vectors of the same.
14414
14415 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14416
14417         * config/mips/sync.md (*mb_barrier): Rename to...
14418         (*memory_barrier): ...this.
14419
14420 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14421
14422         * doc/extend.texi (Function Attributes): Move @cindex after @item
14423         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
14424         and put in alphabetical order. Fix 'target' name and put in order.
14425         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14426         typos.
14427
14428 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
14429
14430         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14431         (memory_barrier): Expand as unspec instead of unspec_volatile.
14432         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14433         (*memory_barrier): Define as unspec instead of unspec_volatile.
14434         Use (match_dup 0) as input operand.
14435
14436         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14437         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14438         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
14439         scratch register.  Remove operand 1.
14440         (*stbar): Define as unspec instead of unspec_volatile.
14441         Use (match_dup 0) as input operand, remove (const_int 8).
14442         (*membar): Define as unspec instead of unspec_volatile.
14443         Use (match_dup 0) as input operand, remove input operand 2.
14444
14445         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14446         (memory_barrier): Expand as unspec instead of unspec_volatile.
14447         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14448         (*memory_barrier): Define as unspec instead of unspec_volatile.
14449         Use (match_dup 0) as input operand.
14450
14451         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14452         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14453         Set volatile flag on operand 0.
14454         (*memory_barrier): New insn pattern.
14455
14456         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14457         insn operands.
14458         (*memory_barrier): Use (match_dup 0) as input operand.
14459
14460         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14461         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14462         Set volatile flag on operand 0.
14463         (*mb_internal): New insn pattern.
14464
14465         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14466
14467 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14468
14469         PR middle-end/38586
14470         * function.c (struct temp_slot): Move to the section of the file
14471         that deals with temp slots.  Remove field 'address'.
14472         (temp_slot_address_table): New hash table of address -> temp slot.
14473         (struct temp_slot_address_entry): New struct, items for the table.
14474         (temp_slot_address_compute_hash, temp_slot_address_hash,
14475         temp_slot_address_eq, insert_temp_slot_address): Support functions
14476         for the new table.
14477         (find_temp_slot_from_address): Rewrite to use the new hash table.
14478         (remove_unused_temp_slot_addresses): Remove addresses of temp
14479         slots that have been made available.
14480         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14481         worker function for remove_unused_temp_slot_addresses.
14482         (assign_stack_temp_for_type): Don't clear the temp slot address list.
14483         Add the temp slot address to the address -> temp slot map.
14484         (update_temp_slot_address): Update via insert_temp_slot_address.
14485         (free_temp_slots): Call remove_unused_temp_slot_addresses.
14486         (pop_temp_slots): Likewise.
14487         (init_temp_slots): Allocate the address -> temp slot map, or empty
14488         the map if it is already allocated.
14489         (prepare_function_start): Initialize temp slot processing.
14490
14491 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14492
14493         PR middle-end/38584
14494         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14495         Calculate the size of all stack vars assuming no packing of stack
14496         vars will happen, replacing a quadratic algorithm with a linear one.
14497
14498 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14499
14500         PR target/38707
14501         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14502         can't be used.
14503
14504 2009-01-03  Diego Novillo  <dnovillo@google.com>
14505
14506         * doc/contrib.texi: Update contributions.
14507
14508 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14509
14510         PR c++/38705
14511         * builtins.c (fold_builtin_memory_op): Give up if either operand
14512         is volatile.  Set srctype or desttype to non-qualified version
14513         of the other type.
14514
14515         PR c/38700
14516         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14517         and FUNCTION_DECLs.
14518
14519 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
14520
14521         PR rtl-optimization/35805
14522         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14523         problem if fast dce is able to remove any instructions.
14524         * dce.c (dce_process_block): Fix dump message.
14525
14526 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
14527
14528         PR 33649
14529         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14530
14531 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
14532
14533         PR middle-end/38690
14534         * tree-flow.h (op_code_prio, op_prio): New prototypes.
14535         * tree-pretty-print.c (op_code_prio): New function.
14536         (op_prio): No longer static.  Use op_code_prio.
14537         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14538         Use op_prio and op_code_prio to determine if () should be
14539         printed around operand(s) or not.
14540
14541         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14542         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14543         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14544         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14545         pp_character instead of pp_string for single letter printing.
14546
14547 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
14548
14549         * doc/extend.texi: Fix '#pragma GCC option' typo.
14550
14551 2009-01-02  Richard Guenther  <rguenther@suse.de>
14552
14553         * doc/install.texi (--enable-checking): Mention different
14554         default for stage1.
14555         (--enable-stage1-checking): Document.
14556
14557 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
14558
14559         PR middle-end/30142
14560         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
14561         case to be an error.
14562
14563 2009-01-02  Ben Elliston  <bje@au.ibm.com>
14564
14565         * config/fp-bit.h (pack_d): Constify argument.
14566         * config/fp-bit.c (makenan): Constify return type. Remove casts.
14567         (isnan): Constify argument.
14568         (isinf): Likewise.
14569         (iszero): Likewise.
14570         (pack_d): Likewise.
14571         (_fpadd_parts): Constify return type.
14572         (_fpmul_parts): Likewise.
14573         (_fpdiv_parts): Likewise.
14574
14575 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
14576
14577         PR c/36489
14578         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
14579         warn about overwriting initializer with side-effects or
14580         -Woverride-init if !IMPLICIT.
14581         (output_init_element): Likewise.  Pass IMPLICIT down to
14582         add_pending_init.
14583         (process_init_element): Add IMPLICIT argument.  Pass it down
14584         to output_init_element.
14585         (push_init_element, pop_init_level, set_designator): Adjust
14586         process_init_element callers.
14587         (set_nonincremental_init, set_nonincremental_init_from_string):
14588         Adjust add_pending_init callers.
14589         (output_pending_init_elements): Adjust output_init_element callers.
14590         * c-tree.h (process_init_element): Adjust prototype.
14591         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14592         process_init_element callers.
14593
14594 \f
14595 Copyright (C) 2009 Free Software Foundation, Inc.
14596
14597 Copying and distribution of this file, with or without modification,
14598 are permitted in any medium without royalty provided the copyright
14599 notice and this notice are preserved.