OSDN Git Service

dbee2d16b37024bd13dc53c316599c91e05d6fb3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2
3         PR target/31558
4         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5         error_mark_node's.
6
7 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8
9         PR rtl-optimization/35232
10         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11         (forget_old_reloads_1, forget_marked_reloads): Don't clear
12         reg_reloaded_call_part_clobbered here.
13         (reload_regs_reach_end_p): New function.
14         (reload_reg_rtx_for_input): New variable.
15         (reload_reg_rtx_for_output): Likewise.
16         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
17         when reassigning a pseudo register.  Load reloadreg from 
18         reload_reg_rtx_for_input, moving the mode and register
19         calculation to...
20         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
21         instead of the original when deciding whether an input reload
22         would be a no-op or whether an output reload can be deleted.
23         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
24         when setting up new_spill_reg_store.  Load it from
25         reload_reg_rtx_for_output, moving the mode and register
26         calculation to...
27         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
28         instead of the original when deciding whether an output reload
29         would be a no-op.  Do the same when modifying insn notes.
30         Use rtx_equal_p instead of == to compare the registers.
31         (inherit_piecemeal_p): Take a mode and two register numbers
32         as argument.
33         (emit_reload_insns): Clear new_spill_reg_store for every hard
34         register in the reload register.  Remove spill registers
35         from reg_reloaded_valid before considering whether to record
36         inheritance information for them.  Use reload_reg_rtx_for_output
37         instead of reg_rtx when recording output reloads.  Use
38         reload_reg_rtx_for_input instead of reg_rtx when recording
39         input reloads.  Set or clear reg_reloaded_call_part_clobbered
40         at the same time as setting reg_reloaded_valid.
41         (delete_output_reload): Add a new_reload_reg parameter and use it
42         instead of rld[j].reg_rtx.
43         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
44         calls accordingly.
45
46 2008-03-25  Tom Tromey  <tromey@redhat.com>
47
48         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
49         (build/genattr.o): Likewise.
50         (build/genattrtab.o): Likewise.
51         (build/gencodes.o): Likewise.
52         (build/genconfig.o): Likewise.
53         (build/genconstants.o): Likewise.
54         (build/genemit.o): Likewise.
55         (build/genextract.o): Likewise.
56         (build/genflags.o): Likewise.
57
58 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
59         
60         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
61         instead of size_int for integer types.
62         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
63         to match type of MINUS_EXPR.
64         
65 2008-03-25  Tom Tromey  <tromey@redhat.com>
66
67         * configure: Rebuilt.
68         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
69         Makefile.
70
71 2008-03-25  Tom Tromey  <tromey@redhat.com>
72
73         * config/x-solaris (host-solaris.o): Update.
74         * config/x-linux (host-linux.o): Update.
75         * config/x-hpux (host-hpux.o): Update.
76         * config/x-darwin (host-darwin.o): Update.
77         * config/v850/t-v850e (v850-c.o): Update.
78         * config/v850/t-v850 (v850-c.o): Update.
79         * config/t-vxworks (vxworks.o): Update.
80         * config/t-sol2 (sol2-c.o, sol2.o): Update.
81         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o):
82         Update.
83         * config/spu/t-spu-elf (spu-c.o): Update.
84         (spu.o): Remove.
85         * config/sh/t-symbian (sh-c.o): Update.
86         (symbian.o): Update.
87         * config/sh/t-sh (sh-c.o): Update.
88         * config/score/t-score-elf (score7.o, score3.o): Update.
89         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
90         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
91         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
92         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
93         (rs6000.o): Remove.
94         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
95         * config/m32c/t-m32c (m32c-pragma.o): Update.
96         * config/ia64/t-ia64 (ia64-c.o): Update.
97         * config/i386/x-mingw32 (host-mingw32.o): Update.
98         * config/i386/x-i386 (driver-i386.o): Update.
99         * config/i386/x-darwin (host-i386-darwin.o): Update.
100         * config/i386/x-cygwin (host-cygwin.o): Update.
101         * config/i386/t-nwld (nwld.o): Update.
102         * config/i386/t-netware (netware.o): Update.
103         * config/i386/t-interix (winnt.o): Update.
104         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
105         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
106         msformat-c.o): Update.
107         * config/bfin/t-bfin-linux (generated_files): Add
108         linux-sysroot-suffix.h.
109         * config/arm/t-wince-pe (pe.o): Update.
110         * config/arm/t-strongarm-pe (pe.o): Update.
111         * config/arm/t-pe (pe.o): Update.
112         * config/arm/t-arm (arm-c.o): Update.
113         * doc/install.texi (Prerequisites): Require make 3.80.
114         * Makefile.in: Remove .o targets.
115         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
116         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
117         (simple_generated_h, simple_generated_c): Move earlier.
118         (generated_files): New variable.
119         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
120         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
121         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
122         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
123         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
124         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
125         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
126         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
127         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
128         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
129         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
130         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
131         (.c.o): Remove.
132         (COMPILE.base, COMPILE): New variables.
133         (%.o): New pattern rule.
134         (ALL_HOST_OBJS): New variable.
135         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
136         (dummy-checksum.o, cc1-checksum.o): Remove.
137         (DRIVER_SHLIB): New variable.
138         (DRIVER_DEFINES): Use it.
139         (gencondmd.c): Move out of build/.
140         (s-conditions): Update.
141         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
142         (ALL_BUILD_OBJS): Likewise.
143         (build/%.o): Use BUILDCOMPILE.
144         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
145         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
146         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
147         build/gencheck.o, build/gencodes.o, build/genconditions.o,
148         build/genconfig.o, build/genconstants.o, build/genemit.o,
149         build/genextract.o, build/genflags.o, build/genmddeps.o,
150         build/genopinit.o, build/genoutput.o, build/genpeep.o,
151         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
152         build/gen-protos.o, build/scan.o, build/fix-header.o,
153         build/scan-decls.o): Simplify.
154         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
155         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
156         prefix.o, toplev.o): Reduce to variable setting.
157         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move
158         later.
159         ($(out_object_file), gcc-options.o): New targets.
160         ($(ALL_HOST_OBJS)): New target.
161         Include dependency files.
162         * configure: Rebuilt.
163         * configure.ac: Call ZW_CREATE_DEPDIR,
164         ZW_PROG_COMPILER_DEPENDENCIES.
165         * doc/sourcebuild.texi (Front End Directory): Document new
166         variable.
167
168 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
169
170        * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
171        complain when we hit an error, return ERROR_MARK_NODE.
172
173 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
174
175         * config/sh/constraints.md (Pso, Psz): New constraints.
176         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
177         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
178
179 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
180
181         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if
182         possible.
183         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
184
185 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
186
187         * config/sh/sh.md (prefetch): Add condition for SH2A target.
188         (prefetch_sh2a): New.   
189
190 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
191             Naveen.H.S  <naveen.hs@kpitcummins.com>
192
193         * config/sh/constraints.md (I28): New constraint.
194         * config/sh/sh.c (broken_move): Add support for movi20s.
195         * config/sh/sh.md (movsi_ie): Add the alternative for
196         movi20s.
197
198 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
199             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
200             Naveen.H.S  <naveen.hs@kpitcummins.com>
201
202         * config/sh/sh.c (SH_ATTRIBUTES): Define.
203         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
204         (print_operand): Handle resbank in %@ operand code.
205         (sh_encode_section_info): New.
206         (push_regs): Add conditions for resbank.
207         (sh_expand_epilogue): Likewise.
208         (sh_insert_attributes): Likewise.
209         (sh_attribute_table): Likewise.
210         (sh_handle_resbank_handler_attribute): New.
211         (sh2a_handle_function_vector_handler_attribute): New.
212         (sh2a_is_function_vector_call): New.
213         (sh2a_get_function_vector_number): New.
214         (sh2a_function_vector_p): New.
215         (sh_cfun_resbank_handler_p): New.
216         * config/sh/sh.md (calli): Emit jsr/n if possible.
217         (calli_tbr_rel): New.
218         (calli_pcrel): Emit jsr/n if possible.
219         (return_i): Emit rts/n if possible.
220         (call_valuei_tbr_rel): New.
221         (call_valuei_pcrel): Add condition for SH2A target.
222         (call_value): Likewise.
223         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
224         (sh2a_get_function_vector_number): Likewise.
225         (sh2a_is_function_vector_call): Likewise.
226         * doc/extend.texi: Document TBR relative addressing of SH2A.
227         (resbank): Add description for SH2A.
228
229 2008-03-24  Richard Guenther  <rguenther@suse.de>
230
231         PR c/22371
232         * gimplify.c (gimplify_modify_expr): For frontend type-correct
233         pointer assignments change conversions according to middle-end rules.
234         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
235         * configure.ac: Include type checking in yes.
236         * configure: Regenerate.
237
238 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
239
240         * diagnostic.c (diagnostic_count_diagnostic): Delete.
241         (diagnostic_report_diagnostic): Update. Handle ICEs here.
242         
243 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
244
245         * gthr-vxworks.h (UNUSED): Define.
246
247 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
248
249         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and
250         CX_REG.
251
252 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
253
254         * doc/extend.texi (Function Attributes): Add missing comma in the
255         example of the "alloc_size" attribute.
256         
257 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
258
259         Revert:
260         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
261
262         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
263         32bit host.
264
265         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
266
267         PR target/35496
268         * stor-layout.c (update_alignment_for_field): Set minimum alignment
269         of the underlying type of a MS bitfield layout to the natural
270         alignment of the type.
271
272         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
273
274         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
275         to their natural alignment to avoid store forwarding stalls.
276
277 2008-03-22  Richard Guenther  <rguenther@suse.de>
278
279         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
280         For PHI nodes verify the address is invariant.
281         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
282         (get_symbol_constant_value): Use is_gimple_min_invariant.
283         (maybe_fold_stmt_indirect): Likewise.
284
285 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
286
287         PR rtl-optimization/33927
288         * Makefile.in (dse.o): Depend on $(TM_P_H).
289         * expr.h (extract_low_bits): Declare.
290         * expmed.c (extract_low_bits): New function.
291         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
292         * dse.c: Include tm_p.h.
293         (find_shift_sequence): Remove the read_reg argument and return the
294         read value.  Emit the instructions instead of returning them.
295         Iterate on new_mode rather than calculating it each time.
296         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
297         source to NEW_MODE and extract_low_bits to convert the shifted
298         value to READ_MODE.
299         (replace_read): Allow the load and store to have different mode
300         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
301         or extraction instructions before trying the replacement.  Update
302         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
303
304 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
305
306         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
307         to their natural alignment to avoid store forwarding stalls.
308
309 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
310
311         PR target/27946
312         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
313         encouraging but not allowing gprs for input;
314         change the input constraint to !f#r.
315         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
316         gprs for output;
317         change the output constraint to !f#r.
318
319 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
320
321         PR target/13958
322         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
323         corresponding post-reload splitters.
324         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
325         when x87 FP math is selected.
326         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
327         New function prototype.
328         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
329         unreachable function to ease macroization of insn patterns.
330
331 2008-03-21  Martin Jambor  <mjambor@suse.cz>
332
333         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
334         reference dumps if ddr is NULL or dependence is unknown.
335
336 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
337
338         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
339         unsigned extension into account.
340         (ATOMIC_COMPARE_AND_SWAP): Likewise.
341         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
342         Do computations on a scratch register.
343
344 2008-03-21  Richard Guenther  <rguenther@suse.de>
345
346         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
347         Use is_gimple_min_invariant instead of TREE_INVARIANT.
348         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
349         * tree-ssa-dom.c (record_equality): Likewise.
350         * tree-inline.c (copy_body_r): Likewise.
351         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
352         TREE_INVARIANT.
353
354 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
355
356         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
357         as 'delete_unused' argument.
358
359 2008-03-20  Richard Guenther  <rguenther@suse.de>
360
361         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
362         special casing of constant qualifiers.
363         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
364         care about them in general.
365         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
366         regardless of their type.
367         (fold_stmt_r): Forcefully fold *& if we end up with that.
368
369 2008-03-20  Paul Brook  <paul@codesourcery.com>
370
371         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
372         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
373         linker flags.
374         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
375         definition.
376         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
377         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
378
379 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
380
381         * common.opt (Wmudflap): New option.
382         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
383         (mx_register_decls): Likewise.
384         (mudflap_finish_file): Likewise.
385         * doc/invoke.texi: Document -Wno-mudflap.
386
387 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
388
389         * c-format.c (replace_format_name_to_system_name): New.
390         (cmp_attribs): New.
391         (convert_format_name_to_system_name): New.
392         (decode_format_attr): Add use of convert_format_name_to_system_name.
393         (format_types_orig): Add gnu_ prefix to names.
394         (check_format_info_main): Special treating of \0 escaped names for
395         supporting multi-character format specifiers as I32, I64.
396         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
397         (gnu_target_overrides_format_attributes): New.
398         * c-format.h: Add structure target_ovr_attr to hold
399         system specific formatter names.
400         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
401         msformat-c.o file to c_target_objs and cxx_target_objs.
402         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
403         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
404         (TARGET_N_FORMAT_TYPES): New.
405         * config/i386/msformat-c.c: New.
406         * config/i386/t-cygming: Add build rule for msformat-c.o.
407         * doc/extend.texi: Add new format names gnu_* and ms_* and
408         further details.
409         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
410
411 2008-03-20  Ira Rosen  <irar@il.ibm.com>
412
413         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
414         optimizations turned on under -O3.
415         (ftree-vectorize): Add that the flag is turned on with -O3.
416
417 2008-03-20  Ben Elliston  <bje@au.ibm.com>
418
419         * regmove.c (try_auto_increment): Fix spelling error in comment.
420         * final.c (final_scan_insn): Likewise.
421
422 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
423
424         PR target/14552
425         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
426         allocator preferences for "y" and "r" class registers.
427         ("*mov<mode>_internal"): Ditto.
428         ("*movv2sf_internal_rex64"): Ditto.
429         ("*movv2sf_internal"): Ditto.
430
431 2008-03-19  Michael Matz  <matz@suse.de>
432
433         PR middle-end/35616
434         * calls.c (expand_call): Check overlap of arguments with call
435         address for sibcalls.
436
437 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
438
439         PR target/35496
440         * stor-layout.c (update_alignment_for_field): Set minimum alignment
441         of the underlying type of a MS bitfield layout to the natural
442         alignment of the type.
443
444 2008-03-19  Jan Hubicka  <jh@suse.cz>
445
446         PR other/35094
447         * toplev.c (decode_d_option): Handle all CPP flags.
448         * tree-vrp.c: Update tree_pass descriptors.
449         * regrename.c: Update tree_pass descriptors.
450         * fwprop.c: Update tree_pass descriptors.
451         * doc/invoke.texi: Remove documentation of dropped -d? flags.
452         * tree-into-ssa.c: Update tree_pass descriptors.
453         * tree-dump.c: Update tree_pass descriptors.
454         * tree-complex.c: Update tree_pass descriptors.
455         * tree-dump.h: Update tree_pass descriptors.
456         * see.c: Update tree_pass descriptors.
457         * cgraphbuild.c: Update tree_pass descriptors.
458         * tracer.c: Update tree_pass descriptors.
459         * tree-loop-distribution.c: Update tree_pass descriptors.
460         * cgraph.c: Update tree_pass descriptors.
461         * postreload-gcse.c: Update tree_pass descriptors.
462         * postreload.c: Update tree_pass descriptors.
463         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
464         * tree-tailcall.c: Update tree_pass descriptors.
465         * tree-pass.h (tree_opt_pass): Rename to ...
466         (opt_pass) ... this one; add "type" field and remove letter field.
467         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
468         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
469         all_lowering_passes): Update declaration.
470         * ipa-cp.c: Update tree_pass descriptors.
471         * final.c: Update tree_pass descriptors.
472         * omp-low.c: Update tree_pass descriptors.
473         * tree-ssa-dse.c: Update tree_pass descriptors.
474         * ipa-reference.c: Update tree_pass descriptors.
475         * tree-ssa-uncprop.c: Update tree_pass descriptors.
476         * auto-inc-dec.c: Update tree_pass descriptors.
477         * reorg.c: Update tree_pass descriptors.
478         * cgraphunit.c: Update tree_pass descriptors.
479         * tree-ssa-copyrename.c: Update tree_pass descriptors.
480         * tree-ssa-ccp.c: Update tree_pass descriptors.
481         * df-core.c: Update tree_pass descriptors.
482         * mode-switching.c: Update tree_pass descriptors.
483         * tree-nomudflap.c: Update tree_pass descriptors.
484         * modulo-sched.c: Update tree_pass descriptors.
485         * ipa-pure-const.c: Update tree_pass descriptors.
486         * cse.c: Update tree_pass descriptors.
487         * web.c: Update tree_pass descriptors.
488         * tree-stdarg.c: Update tree_pass descriptors.
489         * tree-ssa-math-opts.c: Update tree_pass descriptors.
490         * tree-ssa-dom.c: Update tree_pass descriptors.
491         * tree-nrv.c: Update tree_pass descriptors.
492         * tree-ssa-alias.c: Update tree_pass descriptors.
493         * loop-init.c: Update tree_pass descriptors.
494         * gimple-low.c: Update tree_pass descriptors.
495         * ipa-inline.c: Update tree_pass descriptors.
496         * tree-ssa-sink.c: Update tree_pass descriptors.
497         * global.c: Update tree_pass descriptors.
498         * ifcvt.c: Update tree_pass descriptors.
499         * jump.c: Update tree_pass descriptors.
500         * predict.c: Update tree_pass descriptors.
501         * tree-ssa-loop.c: Update tree_pass descriptors.
502         * recog.c: Update tree_pass descriptors.
503         * dse.c: Update tree_pass descriptors.
504         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
505         * tree-eh.c: Update tree_pass descriptors.
506         * regmove.c: Update tree_pass descriptors.
507         * local-alloc.c
508         * function.c: Update tree_pass descriptors.
509         * tree-vectorizer.c: Update tree_pass descriptors.
510         * gcse.c: Update tree_pass descriptors.
511         * ipa-type-escape.c: Update tree_pass descriptors.
512         * tree-if-conv.c: Update tree_pass descriptors.
513         * init-regs.c: Update tree_pass descriptors.
514         * ipa.c: Update tree_pass descriptors.
515         * tree-ssa-phiopt.c: Update tree_pass descriptors.
516         * rtl-factoring.c: Update tree_pass descriptors.
517         * lower-subreg.c: Update tree_pass descriptors.
518         * bt-load.c: Update tree_pass descriptors.
519         * tree-dfa.c: Update tree_pass descriptors.
520         * except.c: Update tree_pass descriptors.
521         * emit-rtl.c: Update tree_pass descriptors.
522         * cfgexpand.c: Update tree_pass descriptors.
523         * tree-cfgcleanup.c: Update tree_pass descriptors.
524         * cfgcleanup.c: Update tree_pass descriptors.
525         * tree-ssa-pre.c: Update tree_pass descriptors.
526         * tree-sra.c: Update tree_pass descriptors.
527         * tree-mudflap.c: Update tree_pass descriptors.
528         * tree-ssa-copy.c: Update tree_pass descriptors.
529         * cfglayout.c: Update tree_pass descriptors.
530         * tree-ssa-forwprop.c: Update tree_pass descriptors.
531         * tree-ssa-dce.c: Update tree_pass descriptors.
532         * tree-ssa.c: Update tree_pass descriptors.
533         * regclass.c: Update tree_pass descriptors.
534         * integrate.c: Update tree_pass descriptors.
535         * tree-optimize.c: Update tree_pass descriptors.
536         * tree-ssa-phiprop.c: Update tree_pass descriptors.
537         * tree-object-size.c: Update tree_pass descriptors.
538         * combine.c: Update tree_pass descriptors.
539         * tree-outof-ssa.c: Update tree_pass descriptors.
540         * bb-reorder.c: Update tree_pass descriptors.
541         * stack-ptr-mod.c: Update tree_pass descriptors.
542         * var-tracking.c: Update tree_pass descriptors.
543         * tree-profile.c: Update tree_pass descriptors.
544         * tree-vect-generic.c: Update tree_pass descriptors.
545         * reg-stack.c: Update tree_pass descriptors.
546         * sched-rgn.c: Update tree_pass descriptors.
547         * tree-ssa-structalias.c: Update tree_pass descriptors.
548         * tree-cfg.c: Update tree_pass descriptors.
549         * passes.c (current_pass): Update declaration.
550         (finish_optimization_passes): Update.
551         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
552         (register_one_dump_file, register_dump_files_1, next_pass_1):
553         Update arguments.
554         (init_optimization_passes): Update handling of new types.
555         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
556         * ipa-struct-reorg.c: Update tree_pass descriptors.
557         * tree-ssa-reassoc.c: Update tree_pass descriptors.
558         * combine-stack-adj.c: Update tree_pass descriptors.
559         * cfgrtl.c: Update tree_pass descriptors.
560         * dce.c: Update tree_pass descriptors.
561         * tree-ssanames.c: Update tree_pass descriptors.
562
563 2008-03-19  Richard Guenther  <rguenther@suse.de>
564
565         PR middle-end/35609
566         * tree-ssa.c (always_executed): New global flag.
567         (warn_uninitialized_var): If !always_executed warn with "maybe"
568         instead of "is".
569         (execute_early_warn_uninitialized): Compute post-dominators.
570         Initialize always_executed before processing each basic block.
571
572 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
573
574         PR target/35504
575         * config/i386/i386.c (x86_this_parameter): Calculate correct location
576         of "this" pointer when "regparm = N" or "fastcall" is in effect.
577
578 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
579
580         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
581
582 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
583
584         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
585         is true.
586         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
587         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
588         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
589         target after ignore has been set, and move there also the commputation
590         of subtarget and original_target.
591         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
592         (LANG_HOOKS_INITIALIZER): Remove it.
593         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
594
595 2008-03-18  Richard Guenther  <rguenther@suse.de>
596
597         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
598         found an expression with constants, note that in the VN for the lhs.
599         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
600         fold them to constants if possible.  Run cleanup_cfg if done so.
601         (execute_pre): Return todo.
602         (do_pre): Likewise.
603         (execute_fre): Likewise.
604         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
605         of constants.
606         (get_prop_source_stmt): Look through pointer conversions.
607
608 2008-03-18  Jan Hubicka  <jh@suse.cz>
609
610         * tree-pretty-print.c: Include predict.h.
611         (dump_generic_node): Dump predictor.
612         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
613         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
614         * gimple-low.c (lower_stmt): Likewise.
615         * expr.c (expand_expr_real): Likewise.
616         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
617         them.
618         (build_predict_expr, build_predict_expr): New.
619         * predict.h (predictor_name, build_predict_expr): Update.
620         * c-typeck.c (c_finish_bc_stmt): Add prediction.
621         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
622         * predict.def (PRED_CONTINUE): Update hitrate.
623         * tree.def (PREDICT_EXPR): Define.
624         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
625         do not handle BIND_EXPR.
626         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
627         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
628         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
629         operands.
630
631 2008-03-18  Michael Matz  <matz@suse.de>
632
633         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
634
635 2008-03-18  Richard Guenther  <rguenther@suse.de>
636
637         * tree-gimple.h (is_gimple_invariant_address): Declare.
638         (is_gimple_constant): Likewise.
639         * tree-gimple.c (is_gimple_constant): New function.
640         (is_gimple_invariant_address): Likewise.
641         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
642         and is_gimple_invariant_address.
643         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
644         previous change.
645         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
646         an addressable base.
647
648 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
649
650         PR middle-end/35611
651         * gimplify.c (gimplify_expr): Gimplify second operand of
652         OMP_ATOMIC_LOAD.
653
654 2008-03-17  Richard Guenther  <rguenther@suse.de>
655
656         PR tree-optimization/19637
657         * fold-const.c (fold_unary): Remove restrictions of removing
658         intermediate pointer-conversions (P2)(P1)P0.
659         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
660         conversion to void pointer.
661         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
662
663 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
664
665         PR debug/31510
666         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
667         emulated thread local variables.
668
669 2008-03-16  Richard Guenther  <rguenther@suse.de>
670
671         PR middle-end/35607
672         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
673         expand TREE_INVARIANT operations that are not gimple invariant.
674
675 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
676
677         * doc/extend.texi (Alignment): Say that the ABI controls
678         the __alignof__ for non-strict-alignment targets rather
679         than being a recommendation.
680
681 2008-03-15  Paul Brook  <paul@codesourcery.com>
682
683         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
684         annotations.
685         (arm_output_fn_unwind): Mark functions that can not be unwound.
686
687 2008-03-15  Paul Brook  <paul@codesourcery.com>
688
689         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
690         extension instructions.
691
692 2008-03-15  Richard Guenther  <rguenther@suse.de>
693
694         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
695         and fold constant aggregate refs.
696         (fold_const_aggregate_ref): Handle string constants
697         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
698         (evaluate_stmt): Simplify now that ccp_fold folds constant
699         aggregate refs.
700
701 2008-03-15  Paul Brook  <paul@codesourcery.com>
702
703         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
704         (extzv): Use gen_extzv_t2.
705         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
706
707 2008-03-15  Richard Guenther  <rguenther@suse.de>
708
709         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
710         (fold_const_aggregate_ref): Likewise.
711         (get_value): Return NULL if we don't have any values.
712         (ccp_finalize): Set const_val to NULL after freeing it.
713         * tree-flow.h (get_symbol_constant_value): Declare.
714         (fold_const_aggregate_ref): Likewise.
715         * tree-ssa-sccvn.c (try_to_simplify): Use them.
716
717 2008-03-15  Richard Guenther  <rguenther@suse.de>
718
719         PR middle-end/35593
720         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
721         to not produce negative array indices if not allowed.  Add
722         parameter to indicate that.
723         (maybe_fold_offset_to_component_ref): Allow negative array
724         indices only for the first member of a structure.
725         (maybe_fold_offset_to_reference): Allow negative array indices.
726         (maybe_fold_stmt_addition): Likewise.
727
728 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
729             Anatoly Sokolov <aesok@post.ru>
730
731         * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry.
732         (avr_arch): Add ARCH_AVR6.
733         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
734         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
735         instead of fixed value 2.
736         (print_operand_address): Use gs() asm specifier instead of pm().
737         (avr_assemble_integer): (Ditto.).
738         (avr_output_addr_vec_elt): (Ditto.).
739         (print_operand): Handle "!" code.
740         * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
741         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
742         (AVR_HAVE_EIJMP_EICALL): Define.
743         (AVR_3_BYTE_PC): Redefine.
744         (AVR_2_BYTE_PC): (Ditto.).
745         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
746         (LINK_SPEC): Add atmega2560 and atmega2561.
747         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
748         (crtm2561.o).
749         * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall 
750         for 3 byte PC devices.
751         (call_value_insn): (Ditto.).
752         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
753         (indirect_jump): Use only for for 2 byte PC devices.
754         (*tablejump): (Ditto.).
755         (*indirect_jump_avr6): Add insn.
756         (*tablejump_rjmp): Don't use for 3 byte PC devices.
757         * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp 
758         instead of ijmp for 3 byte PC devices.
759         (__tablejump2__): (Ditto.).
760         * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
761         (MULITLIB_DIRNAMES): (Ditto.). 
762         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
763
764 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
765
766         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
767         "sse2_umulsidi3".  Use V1DI mode for operand 0.
768         ("mmx_psadbw"): Use V1DI mode for operand 0.
769         * config/i386/i386-modes.def (V1SI): New vector mode.
770         * config/i386/i386.c (struct builtin_description)
771         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
772         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
773         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
774         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
775         v1di_ftype_v8qi_v8qi type.
776         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
777
778         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
779         __builtin_ia32_pmuludq]: Fix the mode of return value.
780
781 2008-03-15  Richard Guenther  <rguenther@suse.de>
782
783         PR middle-end/35595
784         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
785         being a PHI_NODE.
786
787 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
788         
789         * doc/invoke.texi (Option Summary, Xtensa Options): Document
790         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
791         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
792         unless TARGET_SERIALIZE_VOLATILE is enabled.
793         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
794         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
795         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
796
797 2008-03-14  Richard Guenther  <rguenther@suse.de>
798
799         PR tree-optimization/34172
800         * tree-flow.h (refs_may_alias_p): Declare.
801         (get_single_def_stmt): Likewise.
802         (get_single_def_stmt_from_phi): Likewise.
803         (get_single_def_stmt_with_phi): Likewise.
804         * tree-dfa.c (refs_may_alias_p): New function.
805         (get_single_def_stmt): Likewise.
806         (get_single_def_stmt_from_phi): Likewise.
807         (get_single_def_stmt_with_phi): Likewise.
808         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
809         (vn_reference_lookup_1): New helper function.
810         (vn_reference_lookup): Walk the virtual use-def chain to
811         continue searching for a match if the def does not alias the
812         reference we are looking for.
813
814 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
815
816         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
817         archive and Perzl.  Update The Written Word listing.
818
819 2008-03-14  Richard Guenther  <rguenther@suse.de>
820
821         PR tree-optimization/34043
822         PR tree-optimization/33989
823         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
824         when doing FRE.
825         (bitmap_find_leader): Use extra argument to verify dominance
826         relationship inside a basic-block.
827         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
828         (find_leader_in_sets): Adjust.
829         (create_component_ref_by_pieces): Take extra argument for
830         dominance check, handle lookup failures.
831         (find_or_generate_expression): Likewise.
832         (create_expression_by_pieces): Likewise.
833         (insert_into_preds_of_block): Adjust.
834         (create_value_expr_from): If asked for, verify all operands
835         are in the blocks AVAIL_OUT set.
836         (make_values_for_stmt): Check for SSA_NAMEs that are life
837         over an abnormal edge.
838         (compute_avail): Remove such check.
839         (do_SCCVN_insertion): New function.
840         (eliminate): If we do not find a leader suitable for replacement
841         insert a replacement expression from SCCVN if available.
842         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
843         (struct vn_ssa_aux): Add needs_insertion flag.
844         * tree-ssa-sccvn.c (may_insert): New global flag.
845         (copy_reference_ops_from_ref): Value-number union member access
846         based on its size, not type and member if insertion is allowed.
847         (visit_reference_op_load): For a weak match from union type
848         punning lookup a view-converted value and insert a SSA_NAME
849         for that value if that is not found.
850         (visit_use): Make dumps shorter.  Do not disallow value numbering
851         SSA_NAMEs that are life over an abnormal edge to constants.
852         (free_scc_vn): Release inserted SSA_NAMEs.
853         (run_scc_vn): New flag to specify whether insertion is allowed.
854         Process SSA_NAMEs in forward order.
855         * tree-ssa-loop-im.c (for_each_index): Handle invariant
856         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
857         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
858         pointer type to/from integral types that do not change the
859         precision to regular conversions.
860
861 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
862
863         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
864         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
865         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
866         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
867         input arguments and the mode of return value.  Built-in functions
868         that operate on whole 64-bit MMX register now use V1DI mode.
869
870 2008-03-13  Alon Dayan  <alond@il.ibm.com>
871             Olga Golovanevsky  <olga@il.ibm.com>
872
873         PR tree-optimization/35041
874         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
875         to locate the right position in a statement.
876
877 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
878
879         PR target/34000
880         PR target/35553
881         * config/i386/xmmintrin.h:  Change all static inline functions to
882         extern inline and add __gnu_inline__ attribute.
883         * config/i386/bmintrin.h: Ditto.
884         * config/i386/smmintrin.h: Ditto.
885         * config/i386/tmmintrin.h: Ditto.
886         * config/i386/mmintrin-common.h: Ditto.
887         * config/i386/ammintrin.h: Ditto.
888         * config/i386/emmintrin.h: Ditto.
889         * config/i386/pmmintrin.h: Ditto.
890         * config/i386/mmintrin.h: Ditto.
891         * config/i386/mm3dnow.h: Ditto.
892
893 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
894
895         PR middle-end/35185
896         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
897         (lower_omp_2): New function.
898         (lower_omp_1, lower_omp): Rewritten.
899
900 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
901
902         PR 35054
903         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
904         with the phrase "Microsoft Windows compilers".
905         (Push/Pop Macro Pragmas): New subsection. Document
906         #pragma push_macro and pragma pop_macro.
907
908 2008-03-12  Paul Brook  <paul@codesourcery.com>
909
910         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
911
912 2008-03-12  Paul Brook  <paul@codesourcery.com>
913
914         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
915         (thumb2_alusi3_short): Exclude PLUS and MINUS.
916         (thumb2_addsi_shortim): Rename ...
917         (thumb2_addsi_short): ... to this.  Allow register operands.
918         (thumb2_subsi_short): New pattern.
919         (thumb2_one_cmplsi2_short,
920         thumb2_negsi2_short): New patterns and peepholes.
921
922 2008-03-12  Paul Brook  <paul@codesourcery.com>
923
924         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
925
926 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
927
928         * config/i386/i386.md (int_cond): New code iterator.
929         (fp_cond): Ditto.
930         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
931         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
932         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
933         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
934         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
935         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
936         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
937         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
938
939 2008-03-12  Paul Brook  <paul@codesourcery.com>
940
941         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
942         instead of {arm,thumb}_compute_save_reg_mask.
943         (output_return_instruction): Ditto.
944         (thumb_unexpanded_epilogue): Ditto.
945         (thumb1_expand_prologue): Ditto.
946         (thumb1_output_function_prologue): Ditto.
947         (arm_set_return_address): Ditto.
948         (thumb_set_return_address): Ditto.
949         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
950         regs to achieve stack alignment.
951         (thumb1_compute_save_reg_mask): Fix compiler warning.
952         (arm_output_epilogue): Use offsets->saved_regs_mask.
953         Adjust stack pointer by poping call clobered registers.
954         (arm_expand_prologue): Use offsets->saved_regs_mask.
955         Adjust stack pointer by pushing extra registers.
956         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
957
958 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
959
960         PR tree-opt/35422
961         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
962         conversion to the operands of a multiplication.
963
964 2008-03-12  Richard Guenther  <rguenther@suse.de>
965
966         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
967         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
968         * timevar.def (TV_TREE_PHIPROP): Add.
969         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
970         pass description.  Use TV_TREE_PHIPROP.
971         * tree-ssa-forwprop.c: Remove phiprop code.
972
973 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
974
975         PR middle-end/35549
976         * omp-low.c (maybe_lookup_decl): Constify first argument.
977         (use_pointer_for_field): Change last argument from bool to
978         omp_context *.  Disallow shared copy-in/out in nested
979         parallel if decl is shared in outer parallel too.
980         (build_outer_var_ref, scan_sharing_clauses,
981         lower_rec_input_clauses, lower_copyprivate_clauses,
982         lower_send_clauses, lower_send_shared_vars): Adjust callers.
983
984 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
985             Ira Rosen  <irar@il.ibm.com>
986
987         * tree-vectorizer.c (free_stmt_vec_info): New function.
988         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
989         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
990         * tree-vectorizer.h (free_stmt_vec_info): Declare.
991         * tree-vect-transform.c (vectorizable_conversion): Free
992         vec_oprnds0 if it was allocated.
993         (vect_permute_store_chain): Remove unused VECs.
994         (vectorizable_store): Free VECs that are allocated in the..
995         function.
996         (vect_transform_strided_load, vectorizable_load): Likewise.
997         (vect_remove_stores): Simplify the code.
998         (vect_transform_loop): Move code to vect_remove_stores().
999         Call vect_remove_stores() and free_stmt_vec_info().
1000
1001 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1002
1003         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
1004         TARGET_HPUX.  Revise comment.
1005         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
1006         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
1007         Use sr4 variant of `be' instruction when not generating PIC code.
1008         (attr_length_call): Adjust for above change.
1009
1010 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1011
1012         * ipa-reference.c (static_execute): Remove module_statics_const and
1013         associated setting code.
1014
1015 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1016
1017         PR target/35540
1018         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
1019         predicate for operand 1.
1020         (paritysi2_cmp): Use register_operand predicate for operand 2.
1021         Use earlyclobber modifier for operand 1.  Remove support for
1022         memory operands.
1023         (paritydi2_cmp): Use register_operand predicate for operand 3.
1024         Use earlyclobber modifier for operand 1.  Remove support for
1025         memory operands.
1026
1027 2008-03-11  Paul Brook  <paul@codesourcery.com>
1028             Vladimir Prus  <vladimir@codesourcery.com>
1029
1030         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
1031         (arm_compute_save_reg0_reg12_mask): Always
1032         check if register 11 must be saved.  Always safe hard frame pointer
1033         when frame_pointer_needeed.
1034         (arm_compute_save_reg_mask): Save IP and PC
1035         only with apcs frames.
1036         (arm_output_epilogue): Adjust Thumb2 codepath to
1037         be also invoked and work for ARM non-apcs frames.
1038         (arm_expand_prologue): Don't bother saving IP
1039         for non-apcs frame, since it's not clobbered by
1040         prologue code.  Implement non-apcs frame
1041         layout.
1042
1043 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1044
1045         PR rtl-optimization/35281
1046         * expr.c (convert_move): Use a new pseudo for the intermediate
1047         from_mode->word_mode result.
1048
1049 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1050
1051         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
1052         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
1053         * toplev.c (compile_file): Don't call it.
1054
1055 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
1056
1057         PR middle-end/35526
1058         * expr.c (store_expr): Call emit_block_move if the mode
1059         of "temp" RTX is BLKmode.
1060
1061 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1062             Richard Guenther  <rguenther@suse.de>
1063
1064         PR tree-optimization/31358
1065         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
1066         the step with a NULL_TREE.
1067         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
1068         to sizetype if type is a pointer type.
1069         (add_candidate_1): Don't convert the base and step to
1070         the generic type if the orginal type is a pointer type.
1071         (add_iv_value_candidates): Use sizetype for the step
1072         if type is a pointer type.
1073         (cand_value_at): Likewise.
1074         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
1075         for pointer types.
1076         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
1077         Don't convert the tem affine to the type.
1078         (add_elt_to_tree): Use sizetype for the step if a pointer.
1079         Use POINTER_PLUS_EXPR for pointers.
1080         (aff_combination_to_tree): Use sizetype for the step if a
1081         pointer.
1082
1083 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
1084
1085         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
1086         Remove commutativity hint.
1087
1088 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR c/35438
1091         PR c/35439
1092         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
1093         errorneous type.  Check that v is a VAR_DECL.
1094
1095         PR middle-end/35099
1096         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
1097
1098 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
1099
1100         PR tree-optimization/35494
1101         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
1102         may be overriden at link and run time.
1103
1104 2008-03-10  Richard Guenther  <rguenther@suse.de>
1105
1106         PR tree-optimization/34677
1107         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
1108         (poolify_tree): Likewise.
1109         (modify_expr_template): Likewise.
1110         (poolify_modify_stmt): Likewise.
1111         (insert_fake_stores): Handle all component-ref style stores
1112         in addition to INDIRECT_REF.  Also handle complex types.
1113         Do not poolify the inserted load.
1114         (realify_fake_stores): Do not rebuild the tree but only
1115         make it a SSA_NAME copy.
1116         (init_pre): Remove initialzation of modify_expr_template.
1117         Do not allocate modify_expr_node_pool.
1118         (fini_pre): Do not free modify_expr_node_pool.
1119
1120 2008-03-10  Paul Brook  <paul@codesourcery.com>
1121
1122         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
1123         to avoid conflicts.
1124
1125 2008-03-10  Paul Brook  <paul@codesourcery.com>
1126             Mark Shinwell  <shinwell@codesourcery.com>
1127
1128         * config/arm/cortex-r4.md: New.
1129         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
1130         insn attributes.
1131         * config/arm/arm.md: Include cortex-r4.md.
1132         (insn): Add smmls, sdiv and udiv values.
1133         (generic_sched): Don't use generic scheduling for Cortex-R4.
1134         (arm_issue_rate): New function.
1135         (TARGET_SCHED_ISSUE_RATE): Define.
1136
1137 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
1138
1139         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
1140
1141 2008-03-10  Richard Guenther  <rguenther@suse.de>
1142
1143         * tree-ssa-pre.c (get_sccvn_value): Simplify.
1144         (compute_avail): Do not add stmt uses to AVAIL_OUT.
1145
1146 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
1147
1148         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
1149         Set default to true.
1150
1151 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1152
1153         * c.opt (Wsynth): Deprecate.
1154         * doc/invoke.texi (Option Summary, Warning Options): Document
1155         -Wno-format-contains-nul.
1156
1157 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
1158
1159         PR target/35496
1160         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
1161         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
1162
1163 2008-03-09  Ira Rosen  <irar@il.ibm.com>
1164
1165         * config/rs6000/rs6000.c (builtin_description): Rename vector
1166         left shift operations.
1167         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
1168         (altivec_vsl<VI_char>): Rename to ...
1169         (ashl<mode>3): ... new name.
1170         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
1171         gen_ashlv4si3.
1172         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
1173
1174 2008-03-08  Richard Guenther  <rguenther@suse.de>
1175
1176         * coverage.h (tree_coverage_counter_addr): Declare.
1177         * coverage.c (tree_coverage_counter_addr): New function.
1178         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
1179         before using again.
1180         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
1181         (tree_gen_one_value_profiler): Likewise.
1182         (tree_gen_ic_profiler): Likewise.
1183         (tree_gen_average_profiler): Likewise.
1184         (tree_gen_ior_profiler): Likewise.
1185
1186 2008-03-08  Richard Guenther  <rguenther@suse.de>
1187
1188         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
1189         (vn_binary_op_insert): Likewise.
1190         (vn_unary_op_lookup): Likewise.
1191         (vn_unary_op_insert): Likewise.
1192         (vn_nary_op_lookup): Declare.
1193         (vn_nary_op_insert): Likewise.
1194         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
1195         and binary hashes, use a single obstack for unary_op_pool
1196         and binary_op_pool.
1197         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
1198         a single struct vn_nary_op_s.  Store tree code length and
1199         a variable number of operands.
1200         (struct vn_reference_op_struct): Remove unused op2.
1201         (vn_reference_op_eq): Do not compare op2.
1202         (vn_reference_op_compute_hash): Do not compute hash of op2.
1203         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
1204         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
1205         with vn_nary_op_compute_hash.
1206         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
1207         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
1208         vn_nary_op_lookup.
1209         (vn_unary_op_insert, vn_binary_op_insert): Replace with
1210         vn_nary_op_insert.
1211         (visit_unary_op): Call nary functions.
1212         (visit_binary_op): Likewise.
1213         (process_scc): Adjust for struct vn_tables_s changes.
1214         (allocate_vn_table): Likewise.
1215         (free_vn_table): Likewise.
1216         * tree-vn.c (vn_add): Call nary functions.
1217         (vn_lookup): Likewise.
1218
1219 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
1220
1221         PR target/35498
1222         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
1223         wdst back after sync_compare_and_swapqhi_internal.
1224
1225 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
1226
1227         PR target/22152
1228         * config/i386/i386-modes.def (V1DI): New vector mode.
1229         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
1230         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
1231         (MMXMODE248): Ditto.
1232         (MMXMODE): Add V1DI mode.
1233         (mmxvecsize): Change DI mode to V1DI mode.
1234         ("mov<mode>): Use MMXMODEI8 mode iterator.
1235         ("*mov<mode>_internal_rex64"): Ditto.
1236         ("*mov<mode>_internal"): Ditto.
1237         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
1238         ("mmx_sub<mode>3"): Ditto.
1239         ("mmx_adddi3"): Remove insn pattern.
1240         ("mmx_subdi3"): Ditto.
1241         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
1242         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
1243         ("mmx_ashl<mode>3"): Ditto.
1244         ("mmx_lshrdi3"): Remove insn pattern.
1245         ("mmx_ashldi3"): Ditto.
1246         * config/i386/i386.c (classify_argument): Handle V1DImode.
1247         (function_arg_advance_32): Ditto.
1248         (function_arg_32): Ditto.
1249         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
1250         mmx_addv1di3 insn pattern.
1251         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
1252         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
1253         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
1254         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
1255         Remove definitions of built-in functions.
1256         (V1DI_type_node): New node.
1257         (v1di_ftype_v1di_int): Ditto.
1258         (v1di_ftype_v1di_v1di): Ditto.
1259         (v2si_ftype_v2si_si): Ditto.
1260         (v4hi_ftype_v4hi_di): Remove node.
1261         (v2si_ftype_v2si_di): Ditto.
1262         (ix86_init_mmx_sse_builtins): Handle V1DImode.
1263         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
1264         Redefine builtins using def_builtin_const with *_ftype_*_int node.
1265         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
1266         Add new builtins using def_builtin_const.
1267         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
1268         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
1269         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
1270         * config/i386/mmintrin.h (__v1di): New typedef.
1271         (_mm_add_si64): Cast arguments to __v1di type.
1272         (_mm_sub_si64): Ditto.
1273         (_mm_sll_pi16): Cast __count to __v4hi type.
1274         (_mm_sll_pi32): Cast __count to __v2si type.
1275         (_mm_sll_si64): Cast arguments to __v1di type.
1276         (_mm_srl_pi16): Cast __count to __v4hi type.
1277         (_mm_srl_pi32): Cast __count to __v2si type.
1278         (_mm_srl_si64): Cast arguments to __v1di type.
1279         (_mm_sra_pi16): Cast __count to __v4hi type.
1280         (_mm_sra_pi32): Cast __count to __v2si type.
1281         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
1282         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
1283         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
1284         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
1285         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
1286         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
1287         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
1288         (_mm_srai_pi32): Use __builtin_ia32_psradi.
1289         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
1290         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
1291         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
1292         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
1293
1294 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
1295
1296         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
1297
1298 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
1299
1300         PR target/35373
1301         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
1302         reg+const addressing for Altivec modes.  Don't generate reg+reg
1303         addressing for TFmode or TDmode quantities.
1304
1305 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
1306
1307         * c-common.c (vector_types_convertible_p): Call langhook
1308         instead of comptypes.
1309
1310 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1311
1312         PR tree-opt/35402
1313         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
1314         integral and scalar float variables which have a
1315         NULL DECL_INITIAL.
1316
1317 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
1318
1319         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
1320         dwarf_register_span hook when emitting unwind information for
1321         register-to-memory saves.
1322         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
1323         (rs6000_frame_related): Remove call to spe_synthesize_frame.
1324
1325 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
1326
1327         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
1328         for the same VAR_DECL.
1329
1330 2008-03-06  Tom Tromey  <tromey@redhat.com>
1331
1332         * treelang: Delete.
1333         * doc/standards.texi (Standards): Don't mention treelang.
1334         * doc/invoke.texi (Overall Options): Don't mention treelang.
1335         * doc/install.texi (Prerequisites): Don't mention bison or
1336         treelang.
1337         (Configuration): Don't mention treelang.
1338         (Building): Likewise.
1339         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
1340
1341 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
1342
1343         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
1344         word-extractions out of a multi-word object.
1345
1346 2008-03-06  Richard Guenther  <rguenther@suse.de>
1347
1348         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
1349         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
1350         result type and precision.
1351         * expr.c (get_inner_reference): Set unsignedp based on the result
1352         type of BIT_FIELD_REF.
1353         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
1354         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
1355         (try_instantiate_multiple_fields): Likewise.  Use the correct type
1356         for BIT_FIELD_REF.
1357         (sra_build_assignment): Likewise.
1358         (sra_build_elt_assignment): Likewise.
1359         (sra_explode_bitfield_assignment): Likewise.
1360         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
1361         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
1362         set BIT_FIELD_REF_UNSIGNED.
1363         (vectorizable_load): Likewise.
1364
1365 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
1366
1367         * cse.c (cse_extended_basic_block): Invalidate artificial defs
1368         at bb start.
1369
1370 2008-03-06  Richard Guenther  <rguenther@suse.de>
1371
1372         * alias.c (struct alias_set_entry): Move has_zero_child field
1373         to pack with alias_set.
1374
1375 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
1376
1377         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
1378         32bit host.
1379
1380 2008-03-05  Ian Lance Taylor  <iant@google.com>
1381
1382         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
1383
1384 2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
1385
1386         * fwprop.c (update_df): Support width and offset parameters of
1387         df_ref_create.
1388         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
1389         global_conflicts): Change DF_REF_EXTRACT to either
1390         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1391         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1392         * df-scan.c (df_ref_record, df_defs_record,
1393         df_ref_create_structure, df_def_record_1, df_uses_record,
1394         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
1395         df_bb_refs_collect, df_entry_block_defs_collect,
1396         df_exit_block_uses_collect): Support new width and offset fields.
1397         (ref_extract_pool): New storage pool.
1398         (df_free_ref): New function.
1399         (df_reg_chain_unlink, df_free_collection_rec,
1400         df_sort_and_compress_refs): Call df_free_ref.
1401         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
1402         of df_ref_extract.
1403         (df_ref_create_structure): Allocate df_ref_extract if offset and
1404         width fields are used.
1405         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
1406         (df_uses_record): Get offset and width from ZERO_EXTRACT 
1407         and SIGN_EXTRACT.
1408         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
1409         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1410         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1411         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
1412         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
1413         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
1414         (df_ref_extract): New structure.
1415         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
1416         (df_ref_create): Add width and offset parameters.
1417         
1418 2008-03-05  Richard Guenther  <rguenther@suse.de>
1419
1420         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1421         Use ranges_overlap_p.
1422         (offset_overlaps_with_access): Rename
1423         to ranges_overlap_p and move ...
1424         * tree-flow-inline.h (ranges_overlap_p): ... here.
1425
1426         * tree.h (get_inner_reference, handled_component_p): Update
1427         comments.
1428
1429         * tree.h (record_component_aliases, get_alias_set,
1430         alias_sets_conflict_p, alias_sets_must_conflict_p,
1431         objects_must_conflict_p): Move declarations ...
1432         * alias.h (record_component_aliases, get_alias_set,
1433         alias_sets_conflict_p, alias_sets_must_conflict_p,
1434         objects_must_conflict_p): ... here.
1435         Include coretypes.h.
1436         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
1437
1438 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
1439
1440         * cfg.c: Include tree-flow.h.
1441         (remove_edge_raw): Call redirect_edge_var_map_clear.
1442         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
1443         * tree-flow-inline.h (redirect_edge_var_map_def): New.
1444         (redirect_edge_var_map_result): New.
1445         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
1446         PENDING_STMT use with redirect_edge_var_map_*.
1447         * tree-ssa.c (edge_var_maps): New definition.
1448         (redirect_edge_var_map_add): New.
1449         (redirect_edge_var_map_clear): New.
1450         (redirect_edge_var_map_dup): New.
1451         (redirect_edge_var_map_vector): New.
1452         (redirect_edge_var_map_destroy): New.
1453         (ssa_redirect_edge): Replace PENDING_STMT use with
1454         redirect_edge_var_map_*.
1455         (flush_pending_stmts): Same.
1456         (delete_tree_ssa): Destroy edge var map.
1457         * tree-flow.h (struct _edge_var_map): New.
1458         Define edge_var_map vector type.
1459         Declare redirect_edge_var_map_* prototypes.
1460         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
1461         * tree-cfg.c (reinstall_phi_args): Replace
1462         PENDING_STMT use with redirect_edge_var_map_*.
1463
1464 2008-03-05  Richard Guenther  <rguenther@suse.de>
1465
1466         PR tree-optimization/35472
1467         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
1468         whose single use_stmt has a overlapping set of loaded and
1469         stored symbols as that use_stmt might be a noop assignment then.
1470
1471 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
1472
1473         * gthr-rtems.h: Implement __gthread_mutex_destroy.
1474
1475 2008-03-05  Richard Guenther  <rguenther@suse.de>
1476
1477         PR c++/35336
1478         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
1479         should be constants.
1480         * tree-cfg.c (verify_expr): Verify it.
1481         * fold-const.c (fold_truthop): Remove code generating
1482         BIT_FIELD_REFs of structure bases.
1483         (fold_binary): Likewise.
1484         (fold_ternary): Position and size of BIT_FIELD_REFs are
1485         always host integers.
1486         (make_bit_field_ref): Remove.
1487         (optimize_bit_field_compare): Remove.
1488         (all_ones_mask_p): Remove.
1489
1490 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
1491
1492         PR gcc/33009
1493         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
1494         (split_block_and_df_analyze): New. Split basic block and rebuild
1495         dataflow.
1496         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
1497         SPLIT_BLOCK.
1498         (split_pattern_seq): Likewise.
1499         (erase_matching_seqs): Likewise.
1500         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
1501
1502 2008-03-04  Geoff Keating  <geoffk@apple.com>
1503
1504         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
1505         declaration and code.
1506         (tree_invalid_nonnegative_warnv_p): Likewise.
1507
1508 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
1509
1510         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
1511         examples.  Truncate option-names then causing overfull hbox.
1512
1513 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1514
1515         PR target/35222
1516         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
1517         on hpux10.
1518         * configure: Rebuilt.
1519
1520 2008-03-04  Rafael Espindola  <espindola@google.com>
1521
1522         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
1523         (tree_unary_nonnegative_warnv_p): New.
1524         (tree_binary_nonnegative_warnv_p): New.
1525         (tree_single_nonnegative_warnv_p): New.
1526         (tree_invalid_nonnegative_warnv_p): New.
1527         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
1528
1529 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1530
1531         PR 28322
1532         * opts.c (handle_option): Postpone 'unknown option' errors only for
1533         warning options.
1534
1535 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
1536
1537         PR target/35453
1538         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
1539         (_SIDD_XXX): This.
1540
1541 2008-03-04  Rafael Espindola  <espindola@google.com>
1542
1543         * fold-const.c (tree_unary_nonzero_warnv_p): New.
1544         (tree_binary_nonzero_warnv_p): New.
1545         (tree_single_nonzero_warnv_p): New.
1546         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
1547
1548 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
1549
1550         PR middle-end/35456
1551         * fold-const.c (fold_cond_expr_with_comparison): Prevent
1552         transformations for modes that have signed zeros.
1553         * ifcvt.c (noce_try_abs): Ditto.
1554
1555 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
1556
1557         * config/i386/i386.c (override_options): Force
1558         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
1559
1560 2008-03-04  Jan Hubicka  <jh@suse.cz>
1561
1562         PR c++/35262
1563         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
1564         in last commit.
1565
1566 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
1567
1568         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
1569         label to probe the stack.
1570
1571 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
1572
1573         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
1574         (__gthr_win32_mutex_destroy): Declare.
1575         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
1576         __gthr_win32_mutex_destroy.
1577         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
1578
1579 2008-03-03  Jan Hubicka  <jh@suse.cz>
1580
1581         PR c++/35262
1582         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
1583         aggressive on inlining cold calls.
1584
1585 2008-03-03  Richard Guenther  <rguenther@suse.de>
1586
1587         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
1588         struct copies into the expression table.
1589         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
1590         (try_to_simplify): Likewise.
1591         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
1592         integral and pointer arguments which do not change the
1593         precision to NOP_EXPRs.
1594         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
1595         VIEW_CONVERT_EXPR case.
1596
1597 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
1598
1599         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
1600         defined in a loop at depth 0 is invariant.
1601         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
1602         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
1603         be called at loop depth 0.
1604
1605 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
1606
1607         PR driver/35420
1608         * gcc.c (process_command): Update copyright notice dates.
1609         * gcov.c (print_version): Likewise.
1610         * gcov-dump.c (print_version): Likewise.
1611         * mips-tfile.c (main): Likewise.
1612         * mips-tdump.c (main): Likewise.
1613
1614 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1615
1616         PR 24924
1617         * c-common.c (flag_permissive): Delete.
1618         (constant_expression_warnings): Check flags first.
1619         (constant_expression_error): New.
1620         * c-common.h (flag_permissive): Delete.
1621         (constant_expression_error): Declare.
1622         * flags.h (flag_permissive): Declare. Update description.
1623         * diagnostic.c (pedwarn): Update.
1624         (permerror): New.
1625         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
1626         (permissive_error_kind): New.
1627         * toplev.c (flag_permissive): Define. Update description.
1628         * toplev.h (permissive_error_kind): Declare.
1629         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
1630         (pedwarn_c90): Use pedantic_warning_kind.
1631         * c-opts.c (c_common_post_options): flag_permissive does not affect
1632         flag_pedantic_errors.
1633
1634 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
1635
1636         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
1637         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
1638         __absvsi2, __absvDI2): Use unsigned arithmetic.
1639
1640 2008-03-02  Andi Kleen  <ak@suse.de>
1641             Richard Guenther  <rguenther@suse.de>
1642
1643         * struct-equiv.c: Remove file.
1644         * cfg_cleanup.c (condjump_equiv_p): Remove.
1645         * Makefile.in (OBJS-common): Remove struct-equiv.o.
1646         (struct-equiv.o): Remove rule.
1647         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
1648         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
1649         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
1650
1651 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
1652
1653         * ifcvt.c (noce_process_if_block): Try to handle only the then
1654         block if the else block exists but isn't suitable.
1655
1656 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1657
1658         PR gcc/35063
1659         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
1660         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
1661         regression from previous patch.
1662
1663 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
1664
1665         PR gcc/35063
1666         * gthr.h: Add __gthread_mutex_destroy as a function that must be
1667         implemented.
1668         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
1669         * gthr-single.h (__gthread_mutex_destroy): Likewise.
1670         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
1671         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
1672         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
1673         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
1674         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
1675         (__gthread_mutex_destroy_function): Rename to
1676         __gthread_mutex_destroy.
1677         * gthr-dce.h (__gthread_mutex_destroy): Call
1678         pthread_mutex_destroy.
1679         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
1680         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
1681         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
1682
1683 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
1684
1685         * df-scan.c (df_ref_chain_change_bb): Simplify.
1686         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
1687         set_block_for_insn if there's any change.
1688         * df.h ((df_insn_change_bb): Fix prototype.
1689         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
1690         df_insn_change_bb, don't call set_block_for_insn.
1691         * emit-rtl.c (reorder_insns): Likewise.
1692         * haifa-sched.c (move_insn): Likewise.
1693
1694 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
1695
1696         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
1697
1698 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
1699
1700         * tree-flow-inline.h (next_readonly_imm_use): Return
1701         NULL_USE_OPERAND_P after the end.
1702
1703 2008-03-01  Richard Guenther  <rguenther@suse.de>
1704
1705         PR tree-optimization/35411
1706         * tree-sra.c (sra_build_assignment): Split conversion to
1707         final type to a separate statement if we are not assigning
1708         to a register.
1709
1710 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1711
1712         * fold-const.c (fold_convertible_p): Correct the logic to follow
1713         that in fold_convert().
1714
1715 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
1716
1717         PR c++/35315
1718         * tree-inline.c (build_duplicate_type): When we make a
1719         duplicate type, make it unique in the canonical types system.
1720
1721 2008-02-29  Tom Tromey  <tromey@redhat.com>
1722
1723         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
1724         input_file_stack_history, input_file_stack_restored): Remove.
1725         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
1726         * input.h (struct file_stack): Remove.
1727         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
1728         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
1729         Likewise.
1730         * diagnostic.h (struct diagnostic_context) <last_module>: Change
1731         type.
1732         (diagnostic_last_module_changed): Add 'map' argument.
1733         (diagnostic_set_last_function): Likewise.
1734         * diagnostic.c (undiagnostic_report_current_module): Iterate using
1735         line map, not input_file_stack.
1736         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
1737
1738 2008-02-29  Paul Brook  <paul@codesourcery.com>
1739
1740         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
1741
1742 2008-02-29  Paul Brook  <paul@codesourcery.com>
1743
1744         * config/arm/ieee754-df.S (muldf3): Use RET macros.
1745
1746 2008-02-29  Richard Guenther  <rguenther@suse.de>
1747
1748         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
1749         vn_lookup_or_add.
1750         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
1751         value for comparing for a store match.
1752         (simplify_unary_expression): Do nothing for SSA_NAMEs.
1753         (try_to_simplify): Do not do a full-blown reference lookup.
1754
1755 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1756
1757         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
1758         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1759
1760         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
1761
1762 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
1763
1764         * tree-loop-linear.c (try_interchange_loops): Compare memory access
1765         strides against cache sizes.
1766
1767 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1768
1769         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
1770         constant to fpul.
1771
1772 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
1773
1774         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
1775         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
1776         is smaller than the original promoted value.
1777         (simplify_subreg): If OP is a SUBREG, try to preserve its
1778         SUBREG_PROMOTED_VAR_P information.
1779
1780 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
1781
1782         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
1783         (VN_INFO_GET): Allocate new objects on the obstack.
1784         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
1785         for rpo_numbers_temp, for consistency.
1786         (free_scc_vn): Free the obstack.
1787
1788 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
1789
1790         * doc/invoke.texi: Document -ftree-loop-distribution.
1791         * tree-loop-distribution.c: New.
1792         * tree-pass.h (pass_loop_distribution): New.
1793         * graphds.h (struct graph): Add htab_t indices.
1794         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
1795         * tree-vectorizer.c (rename_variables_in_loop): Extern.
1796         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
1797         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
1798         * tree-data-ref.c (debug_data_dependence_relations): New.
1799         (dump_data_dependence_relation): Also print data references.
1800         (free_data_ref): Extern.
1801         (same_access_functions): Moved...
1802         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
1803         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
1804         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
1805         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
1806         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
1807         (stmts_from_loop): Skip LABEL_EXPR.
1808         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
1809         New.
1810         (build_rdg): Initialize rdg->indices htab.
1811         (free_rdg, stores_from_loop, ref_base_address,
1812         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
1813         have_similar_memory_accesses_1, ref_base_address_1,
1814         remove_similar_memory_refs): New.
1815         * tree-data-ref.h: Depend on tree-chrec.h.
1816         (debug_data_dependence_relations, free_data_ref): Declared.
1817         (same_access_functions): ... here.
1818         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
1819         New.
1820         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
1821         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
1822         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
1823         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
1824         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
1825         rdg_vertex_for_stmt): Declared.
1826         (struct rdg_edge): Add level.
1827         (RDGE_LEVEL): New.
1828         (free_rdg, stores_from_loop, remove_similar_memory_refs,
1829         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
1830         Declared.
1831         (rdg_has_similar_memory_accesses): New.
1832         * tree-vect-analyze.c: Remove unused static decls.
1833         * lambda.h (dependence_level): New.
1834         * common.opt (ftree-loop-distribution): New.
1835         * tree-flow.h (mark_virtual_ops_in_bb, 
1836         slpeel_tree_duplicate_loop_to_edge_cfg,
1837         rename_variables_in_loop): Declared.
1838         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
1839         (OBJS-common): Add tree-loop-distribution.o.
1840         (tree-loop-distribution.o): New rule.
1841         * tree-cfg.c (mark_virtual_ops_in_bb): New.
1842         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
1843         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
1844
1845 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
1846
1847         PR target/33963
1848         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
1849         other than structures and unions.
1850
1851 2008-02-28  Richard Guenther  <rguenther@suse.de>
1852
1853         Revert:
1854         2008-02-26  Richard Guenther  <rguenther@suse.de>
1855
1856         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
1857         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
1858         (lookup_decl_from_uid): Declare.
1859         (remove_decl_from_map): Likewise.
1860         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
1861         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
1862         (decl_for_uid_map): New global hashtable mapping DECL_UID
1863         to the decl tree.
1864         (init_ttree): Allocate it.
1865         (insert_decl_to_uid_decl_map): New helper function.
1866         (make_node_stat): Insert new decls into the map.
1867         (copy_node_stat): Likewise.
1868         (lookup_decl_from_uid): New function.
1869         (remove_decl_from_map): Likewise.
1870         (print_decl_for_uid_map_statistics): New helper.
1871         (dump_tree_statistics): Call it.
1872
1873         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
1874         (referenced_var_iterator): Adjust.
1875         (FOR_EACH_REFERENCED_VAR): Adjust.
1876         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
1877         (num_referenced_vars): Adjust.
1878         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
1879         (first_referenced_var): Remove.
1880         (end_referenced_vars_p): Likewise.
1881         (next_referenced_var): Likewise.
1882         (referenced_var_iterator_set): New helper function.
1883         * tree-dfa.c (referenced_var_lookup): Adjust.
1884         (referenced_var_check_and_insert): Likewise.
1885         (remove_referenced_var): Likewise.
1886         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
1887         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
1888         (verify_call_clobbering): Likewise.
1889         (verify_memory_partitions): Likewise.
1890         (init_tree_ssa): Allocate bitmap instead of hashtable for
1891         referenced_vars.
1892         (delete_tree_ssa): Adjust.
1893         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
1894         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
1895         (compute_tag_properties): Likewise.
1896         (set_initial_properties): Likewise.
1897         (find_partition_for): Likewise.
1898         (update_reference_counts): Likewise.
1899         (dump_may_aliases_for): Likewise.
1900         * tree-ssa-operands.c (add_virtual_operand): Likewise.
1901         (add_call_clobber_ops): Likewise.
1902         (add_call_read_ops): Likewise.
1903         (get_asm_expr_operands): Likewise.
1904         * tree-into-ssa.c (dump_decl_set): Likewise.
1905         (update_ssa): Likewise.
1906         * tree-sra.c (scan_function): Likewise.
1907         (decide_instantiations): Likewise.
1908         (scalarize_parms): Likewise.
1909         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
1910         (dsa_named_for): Likewise.
1911         * tree-ssa-structalias.c (update_alias_info): Likewise.
1912         (merge_smts_into): Likewise.
1913
1914 2008-02-27  David Daney  <ddaney@avtrex.com>
1915
1916         PR target/34409
1917         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
1918         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
1919         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
1920         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
1921         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
1922
1923 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
1924
1925         PR target/25477
1926         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
1927         (BUILT_IN_NEXTTOWARD): Remove.
1928         (BUILT_IN_NEXTTOWARDF): Ditto.
1929         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
1930         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
1931
1932 2008-02-27  Tom Tromey  <tromey@redhat.com>
1933
1934         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
1935         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
1936
1937 2008-02-27  Jan Beulich  <jbeulich@novell.com>
1938
1939         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
1940         update the respective field on newdecl.
1941
1942 2008-02-27  Revital Eres  <eres@il.ibm.com>
1943
1944         PR rtl-optimization/34999
1945         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
1946         crossing edges that ends with a call insn.
1947         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
1948         call insn and clear the EDGE_CROSSING flag of the crossing edge
1949         when fixing fallthru edges.
1950
1951 2008-02-27  Richard Guenther  <rguenther@suse.de>
1952
1953         PR middle-end/35390
1954         * fold-const.c (fold_unary): Return the correct argument,
1955         converted to the result type.
1956
1957 2008-02-27  Richard Guenther  <rguenther@suse.de>
1958
1959         PR middle-end/34971
1960         * expr.c (expand_expr_real_1): Assert on rotates that operate
1961         on partial modes.
1962         * fold-const.c (fold_binary): Use the types precision, not the
1963         bitsize of the mode if folding rotate expressions.  Build rotates
1964         only for full modes.
1965
1966 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
1967
1968         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
1969         and CPP_PRAGMA_EOL.
1970         * c-pragma.c (pragma_ns_name): New typedef.
1971         (registered_pp_pragmas): New variable.
1972         (c_pp_lookup_pragma): New function.
1973         (c_register_pragma_1): If flag_preprocess_only, do nothing
1974         for non-expanded pragmas, for expanded ones push pragma's
1975         namespace and name into registered_pp_pragmas vector.
1976         (c_invoke_pragma_handler): Register OpenMP pragmas even when
1977         flag_preprocess_only, don't register GCC pch_preprocess
1978         pragma if flag_preprocess_only.
1979         * c-opts.c (c_common_init): Call init_pragma even if
1980         flag_preprocess_only.
1981         * c-pragma.c (c_pp_lookup_pragma): New prototype.
1982         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
1983         cpp_register_pragma if flag_preprocess_only.
1984
1985 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1986
1987         PR c/28800
1988         * c-parser.c (c_parser_translation_unit): Warn for empty
1989         translation unit, not empty source file.
1990
1991 2008-02-26  Paul Brook  <paul@codesourcery.com>
1992
1993         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
1994         operand for Thumb-2.
1995         * config/arm/arm.h (reg_class): Add CORE_REGS.
1996         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
1997         (BASE_REG_CLASS): Use CORE_REGS.
1998         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
1999         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
2000         (REGNO_OK_FOR_INDEX_P): Exclude SP.
2001         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
2002         ARM_REGNO_OK_FOR_INDEX_P.
2003         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
2004         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
2005         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
2006         (ldm/stm peepholes): Ditto.
2007         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
2008         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
2009         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
2010         * config/arm/constraints.md: Enable "k" constraint on ARM.
2011
2012 2008-02-27  Ben Elliston  <bje@au.ibm.com>
2013
2014         * config/rs6000/rs6000.c: Annotate cache line size field in all
2015         instances of struct processor_costs.
2016
2017 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
2018
2019         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
2020         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
2021         jump_bypass): New counters.
2022         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
2023         * dce.c (gate_ud_dce): Same.
2024         (gate_fast_dce): Same.
2025         * dse.c (gate_dse1): New function.
2026         (gate_dse2): New function.
2027         (gate_dse): Merge results of new gate functions.
2028         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
2029         (gate_handle_jump_bypass): Add dbg_cnt.
2030         (gate_handle_gcse): Add dbg_cnt.
2031         * ifcvt.c (gate_handle_if_conversion): Same.
2032         (gate_handle_if_after_combine): Same.
2033         (gate_handle_if_after_reload): Same.
2034         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
2035
2036 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
2037
2038         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
2039         line sizes.
2040         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
2041
2042 2008-02-26  Jason Merrill  <jason@redhat.com>
2043
2044         PR c++/35315
2045         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
2046         alone if it's the naming decl for the type's main variant.
2047
2048 2008-02-26  Tom Tromey  <tromey@redhat.com>
2049
2050         * system.h (USE_MAPPED_LOCATION): Poison.
2051         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
2052         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
2053         (make_goto_expr_edges): Likewise.
2054         (remove_bb): Likewise.
2055         (execute_warn_function_return): Likewise.
2056         * basic-block.h (struct edge_def) <goto_locus>: Change type to
2057         location_t.
2058         * c-common.c (fname_decl): Remove old location code.
2059         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
2060         location code.
2061         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
2062         variant.
2063         (ASM_INPUT_SOURCE_LOCATION): Likewise.
2064         (gen_rtx_ASM_INPUT): Likewise.
2065         (gen_rtx_ASM_INPUT_loc): Likewise.
2066         (get_rtx_asm_OPERANDS): Remove.
2067         * cfglayout.c (insn_locators_alloc): Remove old location code.
2068         (set_curr_insn_source_location): Likewise.
2069         (curr_insn_locator): Likewise.
2070         * print-tree.c (print_node): Remove old location code.
2071         * tree-mudflap.c (mf_varname_tree): Remove old location code.
2072         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
2073         * cfgexpand.c (expand_gimple_cond_expr): Don't use
2074         location_from_locus.
2075         (construct_exit_block): Remove old location code.
2076         * emit-rtl.c (force_next_line_note): Remove old location code.
2077         * profile.c (branch_prob): Remove old location code.
2078         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
2079         LOC_LINE): Remove old-location variants.
2080         * langhooks.c (lhd_print_error_function): Remove old location
2081         code.
2082         * configure, config.in: Rebuilt.
2083         * configure.ac (--enable-mapped-location): Remove.
2084         * c-decl.c (c_init_decl_processing): Remove old location code.
2085         (finish_function): Likewise.
2086         * recog.c (decode_asm_operands): Remove old location code.
2087         * c-pch.c (c_common_read_pch): Remove old location code.
2088         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
2089         variants.
2090         * gimple-low.c (lower_function_body): Remove old location code.
2091         * toplev.c (unknown_location): Remove.
2092         (push_srcloc): Remove old-location variant.
2093         (process_options): Remove old location code.
2094         (lang_dependent_init): Likewise.
2095         * input.h (UNKNOWN_LOCATION): Move definition.
2096         (location_t): Undeprecate.
2097         (source_locus): Remove.
2098         (location_from_locus): Remove.
2099         (struct location_s): Remove.
2100         Remove all old-location code.
2101         (input_line, input_filename): Remove.
2102         * final.c (final_scan_insn): Remove old location code.
2103         * diagnostic.c (diagnostic_build_prefix): Remove
2104         USE_MAPPED_LOCATION test.
2105         * tree.h (gimple_stmt) <locus>: Now a location_t.
2106         (tree_exp) <locus>: Likewise.
2107         (DECL_IS_BUILTIN): Remove old-location variant.
2108         (annotate_with_file_line, annotate_with_locus): Likewise.
2109         (expr_locus, set_expr_locus): Update.
2110         * tree.c (build1_stat): Remove old location code.
2111         (last_annotated_node): Remove.
2112         (annotate_with_file_line): Remove old-location variant.
2113         (annotate_with_locus): Likewise.
2114         (expr_location): Remove old location code.
2115         (set_expr_location): Likewise.
2116         (expr_has_location): Likewise.
2117         (expr_locus): Likewise.
2118         (set_expr_locus): Likewise.
2119         (expr_filename): Don't use location_from_locus.
2120         (expr_lineno): Likewise.
2121         * rtl-error.c (location_for_asm): Remove old location code.
2122         * c-lex.c (cb_line_change): Remove old location code.
2123         (fe_file_change): Likewise.
2124         (cb_def_pragma): Likewise.
2125         (c_lex_with_flags): Likewise.
2126         * gengtype.c (do_typedef): Don't special-case location types.
2127         (define_location_structures): Remove.
2128         (main): Don't call define_location_structures.
2129         * tree-pretty-print.c (dump_implicit_edges): Remove old location
2130         code.
2131
2132 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2133
2134         PR 26264
2135         * builtins.def (BUILT_IN_STDARG_START): Remove.
2136         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
2137         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2138         * tree-inline.c (inline_forbidden_p_1): Likewise.
2139         
2140 2008-02-26  Richard Guenther  <rguenther@suse.de>
2141
2142         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2143         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2144         (lookup_decl_from_uid): Declare.
2145         (remove_decl_from_map): Likewise.
2146         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2147         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2148         (decl_for_uid_map): New global hashtable mapping DECL_UID
2149         to the decl tree.
2150         (init_ttree): Allocate it.
2151         (insert_decl_to_uid_decl_map): New helper function.
2152         (make_node_stat): Insert new decls into the map.
2153         (copy_node_stat): Likewise.
2154         (lookup_decl_from_uid): New function.
2155         (remove_decl_from_map): Likewise.
2156         (print_decl_for_uid_map_statistics): New helper.
2157         (dump_tree_statistics): Call it.
2158
2159         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2160         (referenced_var_iterator): Adjust.
2161         (FOR_EACH_REFERENCED_VAR): Adjust.
2162         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2163         (num_referenced_vars): Adjust.
2164         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2165         (first_referenced_var): Remove.
2166         (end_referenced_vars_p): Likewise.
2167         (next_referenced_var): Likewise.
2168         (referenced_var_iterator_set): New helper function.
2169         * tree-dfa.c (referenced_var_lookup): Adjust.
2170         (referenced_var_check_and_insert): Likewise.
2171         (remove_referenced_var): Likewise.
2172         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2173         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2174         (verify_call_clobbering): Likewise.
2175         (verify_memory_partitions): Likewise.
2176         (init_tree_ssa): Allocate bitmap instead of hashtable for
2177         referenced_vars.
2178         (delete_tree_ssa): Adjust.
2179         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2180         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2181         (compute_tag_properties): Likewise.
2182         (set_initial_properties): Likewise.
2183         (find_partition_for): Likewise.
2184         (update_reference_counts): Likewise.
2185         (dump_may_aliases_for): Likewise.
2186         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2187         (add_call_clobber_ops): Likewise.
2188         (add_call_read_ops): Likewise.
2189         (get_asm_expr_operands): Likewise.
2190         * tree-into-ssa.c (dump_decl_set): Likewise.
2191         (update_ssa): Likewise.
2192         * tree-sra.c (scan_function): Likewise.
2193         (decide_instantiations): Likewise.
2194         (scalarize_parms): Likewise.
2195         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2196         (dsa_named_for): Likewise.
2197         * tree-ssa-structalias.c (update_alias_info): Likewise.
2198         (merge_smts_into): Likewise.
2199
2200 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2201
2202         PR 34351
2203         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
2204         * c-opts.c (c_common_handle_option): Wall enables
2205         Wvolatile-register-var.
2206         * common.opt: Move Wvolatile-register-var to...
2207         * c.opt: ...here.
2208         
2209 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2210
2211         * common.opt (Wlarger-than=): New.
2212         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
2213         -Wlarger-than=.
2214         * opts.c (common_handle_option): Handle -Wlarger-than=.
2215         * optc-gen.awk: Likewise.
2216         * opth-gen.awk: Likewise.
2217         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
2218         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2219         
2220 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2221
2222         * c-common.c (match_case_to_enum_1): Add appropriate
2223         OPT_W* parameter to warning.
2224         (c_do_switch_warnings): Likewise.
2225         * c-typeck.c (warning_init): Add one more parameter following
2226         'warning' function.
2227         (push_init_level): Update call to warning_init.
2228         (pop_init_level): Likewise.
2229         (add_pending_init): Likewise.
2230         (output_init_element: Likewise.
2231
2232 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2233
2234         PR 28322
2235         * toplev.c (toplev_main): If there are warnings or error, print
2236         errors for ignored options.
2237         * opts.c (ignored_options): New static variable.
2238         (postpone_unknown_option_error): New.
2239         (print_ignored_options): New.
2240         (handle_option): Postpone errors for unknown -Wno-* options.
2241         * opts.h (print_ignored_options): Declare.
2242         
2243 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
2244
2245         * config/mips/mips.md (loadgp_blockage, blockage): Change type
2246         to "ghost".
2247
2248 2008-02-25  Richard Guenther  <rguenther@suse.de>
2249
2250         Revert:
2251         2008-02-25  Richard Guenther  <rguenther@suse.de>
2252
2253         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2254         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2255         (lookup_decl_from_uid): Declare.
2256         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2257         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2258         (decl_for_uid_map): New global hashtable mapping DECL_UID
2259         to the decl tree.
2260         (init_ttree): Allocate it.
2261         (insert_decl_to_uid_decl_map): New helper function.
2262         (make_node_stat): Insert new decls into the map.
2263         (copy_node_stat): Likewise.
2264         (lookup_decl_from_uid): New function.
2265         (print_decl_for_uid_map_statistics): New helper.
2266         (dump_tree_statistics): Call it.
2267
2268         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2269         (referenced_var_iterator): Adjust.
2270         (FOR_EACH_REFERENCED_VAR): Adjust.
2271         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2272         (num_referenced_vars): Adjust.
2273         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2274         (first_referenced_var): Remove.
2275         (end_referenced_vars_p): Likewise.
2276         (next_referenced_var): Likewise.
2277         (referenced_var_iterator_set): New helper function.
2278         * tree-dfa.c (referenced_var_lookup): Adjust.
2279         (referenced_var_check_and_insert): Likewise.
2280         (remove_referenced_var): Likewise.
2281         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2282         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2283         (verify_call_clobbering): Likewise.
2284         (verify_memory_partitions): Likewise.
2285         (init_tree_ssa): Allocate bitmap instead of hashtable for
2286         referenced_vars.
2287         (delete_tree_ssa): Adjust.
2288         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2289         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2290         (compute_tag_properties): Likewise.
2291         (set_initial_properties): Likewise.
2292         (find_partition_for): Likewise.
2293         (update_reference_counts): Likewise.
2294         (dump_may_aliases_for): Likewise.
2295         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2296         (add_call_clobber_ops): Likewise.
2297         (add_call_read_ops): Likewise.
2298         (get_asm_expr_operands): Likewise.
2299         * tree-into-ssa.c (dump_decl_set): Likewise.
2300         (update_ssa): Likewise.
2301         * tree-sra.c (scan_function): Likewise.
2302         (decide_instantiations): Likewise.
2303         (scalarize_parms): Likewise.
2304         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2305         (dsa_named_for): Likewise.
2306         * tree-ssa-structalias.c (update_alias_info): Likewise.
2307         (merge_smts_into): Likewise.
2308
2309 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2310
2311         PR fortran/29549
2312         * doc/invoke.texi (-fcx-limited-range): Document new option.
2313         * toplev.c (process_options): Handle -fcx-fortran-rules.
2314         * common.opt: Add documentation for -fcx-fortran-rules.
2315
2316 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
2317
2318         PR c/35162
2319         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
2320         actual behaviour and C99.
2321         
2322 2008-02-26  Ben Elliston  <bje@au.ibm.com>
2323
2324         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
2325         (ASM_CPU_POWER6_SPEC): Likewise.
2326         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
2327         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
2328         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
2329
2330 2008-02-25  Richard Guenther  <rguenther@suse.de>
2331
2332         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
2333         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
2334         (lookup_decl_from_uid): Declare.
2335         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
2336         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
2337         (decl_for_uid_map): New global hashtable mapping DECL_UID
2338         to the decl tree.
2339         (init_ttree): Allocate it.
2340         (insert_decl_to_uid_decl_map): New helper function.
2341         (make_node_stat): Insert new decls into the map.
2342         (copy_node_stat): Likewise.
2343         (lookup_decl_from_uid): New function.
2344         (print_decl_for_uid_map_statistics): New helper.
2345         (dump_tree_statistics): Call it.
2346
2347         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
2348         (referenced_var_iterator): Adjust.
2349         (FOR_EACH_REFERENCED_VAR): Adjust.
2350         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
2351         (num_referenced_vars): Adjust.
2352         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
2353         (first_referenced_var): Remove.
2354         (end_referenced_vars_p): Likewise.
2355         (next_referenced_var): Likewise.
2356         (referenced_var_iterator_set): New helper function.
2357         * tree-dfa.c (referenced_var_lookup): Adjust.
2358         (referenced_var_check_and_insert): Likewise.
2359         (remove_referenced_var): Likewise.
2360         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
2361         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2362         (verify_call_clobbering): Likewise.
2363         (verify_memory_partitions): Likewise.
2364         (init_tree_ssa): Allocate bitmap instead of hashtable for
2365         referenced_vars.
2366         (delete_tree_ssa): Adjust.
2367         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
2368         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
2369         (compute_tag_properties): Likewise.
2370         (set_initial_properties): Likewise.
2371         (find_partition_for): Likewise.
2372         (update_reference_counts): Likewise.
2373         (dump_may_aliases_for): Likewise.
2374         * tree-ssa-operands.c (add_virtual_operand): Likewise.
2375         (add_call_clobber_ops): Likewise.
2376         (add_call_read_ops): Likewise.
2377         (get_asm_expr_operands): Likewise.
2378         * tree-into-ssa.c (dump_decl_set): Likewise.
2379         (update_ssa): Likewise.
2380         * tree-sra.c (scan_function): Likewise.
2381         (decide_instantiations): Likewise.
2382         (scalarize_parms): Likewise.
2383         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
2384         (dsa_named_for): Likewise.
2385         * tree-ssa-structalias.c (update_alias_info): Likewise.
2386         (merge_smts_into): Likewise.
2387
2388 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
2389
2390         PR target/35258
2391         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
2392         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
2393         * alias.h (nonoverlapping_memrefs_p): Likewise.
2394
2395 2008-02-25  Jan Beulich  <jbeulich@novell.com>
2396
2397         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
2398         * config/i386/netware-libgcc.exp: Add __bswap?i2,
2399         __emultls_get_address, __emultls_register_common,
2400         __floatundi?f, and _Unwind_GetIPInfo.
2401         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
2402         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
2403         (gen_regparm_prefix): Likewise.
2404         (i386_nlm_encode_section_info): Sync with
2405         config/i386/winnt.c:i386_pe_encode_section_info().
2406         (i386_nlm_maybe_mangle_decl_assembler_name): New.
2407         i386_nlm_mangle_decl_assembler_name): New.
2408         (netware_override_options): New.
2409         * config/i386/netware.h (netware_override_options): Declare.
2410         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
2411         (i386_nlm_mangle_decl_assembler_name): Declare.
2412         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
2413
2414 2008-02-25  Ben Elliston  <bje@au.ibm.com>
2415
2416         PR other/32948
2417         * c-decl.c (grokdeclarator): Remove unused local variables
2418         `typedef_type' and `type_as_written'.
2419         * bb-reorder.c
2420         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
2421         unused local variable `has_hot_blocks'.
2422         (fix_crossing_conditional_branches): Remove unused local variable
2423         `prev_bb'.
2424         
2425 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
2426
2427         PR middle-end/19984
2428         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
2429         using DEF_C99_BUILTIN.
2430         (BUILT_IN_NANF): Ditto.
2431         (BUILT_IN_NANL): Ditto.
2432
2433 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
2434             Revital Eres  <eres@il.ibm.com>
2435
2436         * modulo-sched.c (calculate_must_precede_follow): Address TODO
2437         regarding the order of two dependent insns in the same row.
2438
2439 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
2440
2441         * stor-layout.c (layout_decl): Do not bump the alignment of a
2442         bit-field to more than byte alignment if it is packed.
2443
2444 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
2445
2446         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
2447         e300c2 and e300c3.
2448
2449 2008-02-24  Diego Novillo  <dnovillo@google.com>
2450
2451         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
2452
2453         PR 33738
2454         * tree-vrp.c (vrp_evaluate_conditional): With
2455         -Wtype-limits, emit a warning when comparing against a
2456         constant outside the natural range of OP0's type.
2457         * c.opt (Wtype-limits): Move ...
2458         * common.opt (Wtype-limits): ... here.
2459
2460 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
2461
2462         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
2463         * config/rs6000/e300c2c3.md: New file.
2464         * config/rs6000/rs6000.c (processor_costs): Add new costs for
2465         e300c2 and e300c3.
2466         (rs6000_override_options): Add e300c2 and e300c3 cases to
2467         processor_target_table. Do not allow usage of Altivec or Spe
2468         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
2469         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
2470         * config/rs6000/rs6000.h (processor_type): Add
2471         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
2472         (ASM_CPU_SPEC): Add e300c2 and e300c3.
2473         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
2474         and ppce300c3. Include e300c2c3.md.
2475
2476 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
2477
2478         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
2479         instead of TARGET_STRICT_ALIGN.
2480
2481 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
2482
2483         * explow.c (memory_address): Assert that the generated address is
2484         valid.
2485
2486 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2487
2488         PR target/25477
2489         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
2490         * config/darwin-ppc-ldouble-patch.def: New file.
2491         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
2492         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
2493         SUBTARGET_INIT_BUILTINS if defined.
2494         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
2495         New functions.
2496
2497 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2498
2499         PR rtl-opt/33512
2500         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
2501         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
2502
2503 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2504
2505         PR pch/35027
2506         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
2507         file" warning condtional on -Winvalid-PCH.
2508
2509 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
2510
2511         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
2512
2513 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
2514
2515         PR target/22076
2516         PR target/34256 
2517         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
2518         prevent reload from using MMX registers.
2519         (*mov<mode>_internal): Ditto.
2520         (*movv2sf_internal_rex64): Ditto.
2521         (*movv2sf_internal): Ditto.
2522
2523 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2524
2525         PR documentation/31569
2526         * doc/install.texi2html: Use makeinfo --no-number-sections.
2527
2528 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2529
2530         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
2531         ensure that we can address an entire entity > 8 bytes.  Don't
2532         generate reg+reg addressing for such data.
2533
2534 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2535
2536         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
2537         strings when optimizing for size, unless the target cares about
2538         alignment.
2539
2540 2008-02-22  Tom Tromey  <tromey@redhat.com>
2541
2542         * regclass.c (current_pass): Remove declaration.
2543
2544 2008-02-22  Anatoly Sokolov <aesok@post.ru>
2545
2546         * config/avr/libgcc.S (__RAMPZ__): Define.
2547         (__do_copy_data): Add for devices with 128KB code memory.
2548
2549 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
2550
2551         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
2552         Use spe_abi.
2553         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
2554
2555 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
2556
2557         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
2558         GENNONACR_REGS.
2559
2560 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2561
2562         PR c/19999
2563         * c-typeck.c (build_binary_op): Warn about floating point
2564         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
2565
2566 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
2567
2568         PR target/34526
2569         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
2570         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
2571         add vrsave.
2572         (rs6000_override_options): Set altivec_abi as default, not override,
2573         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
2574         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
2575         is used; use new member spe_abi.
2576         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
2577         spe_abi and altivec_abi.
2578
2579 2008-02-22  Tomas Bily  <tbily@suse.cz>
2580
2581         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
2582
2583 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2584
2585         PR bootstrap/35273
2586         * config.build (build_file_translate): Set to `CMD //c' only if
2587         it works.
2588         * Makefile.in (build_file_translate): Improve comment.
2589
2590 2008-02-21  Jan Hubicka  <jh@suse.cz>
2591
2592         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
2593         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
2594         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
2595
2596 2008-02-21  Michael Matz  <matz@suse.de>
2597
2598         PR target/35264
2599         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
2600
2601 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
2602
2603         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
2604         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
2605         as insn constraint.
2606         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
2607         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
2608         SSE_VEC_FLOAT_MODE_P as insn constraint.
2609         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
2610         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
2611         sse4a_movntdf using MODEF mode iterator.
2612         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
2613         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
2614         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
2615         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
2616         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
2617         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
2618         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
2619
2620 2008-02-21  Richard Guenther  <rguenther@suse.de>
2621
2622         * tree.def (PAREN_EXPR): New tree code.
2623         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
2624         and PAREN_EXPR.
2625         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
2626         * expr.c (expand_expr_real_1): Likewise.
2627         * tree-inline.c (estimate_num_insns_1): Likewise.
2628         * tree-complex.c (expand_complex_move): Likewise.
2629         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
2630         as plain x.
2631
2632 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2633
2634         PR target/35225
2635         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
2636
2637 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2638
2639         PR target/35190
2640         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
2641
2642         * config/sh/sh.c (find_barrier): Don't go past
2643         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
2644
2645 2008-02-20  DJ Delorie  <dj@redhat.com>
2646
2647         * config/h8300/h8300.md (insv): Force source operand to be a register.
2648
2649         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
2650         as a jump, not as a plain insn.
2651         
2652 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
2653
2654         * doc/invoke.texi (Warning Options): Add new option
2655         -Wframe-larger-than=.
2656         (-Wframe-larger-than): Document.
2657
2658         * flags.h (warn_frame_larger_than, frame_larger_than_size):
2659         Add declarations for new option variables.
2660
2661         * final.c (final_start_function): Check the frame size
2662         before emission and issue a Wframe-larger-than warning.
2663
2664         * opts.c (warn_frame_larger_than, frame_larger_than_size):
2665         Add definitions for new option variables.
2666         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
2667
2668         * common.opt (Wframe-larger-than=): New option.
2669
2670 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
2671
2672         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
2673         (<sse>_div<mode>3): Ditto.
2674         (<sse>_vmdiv<mode>3): Ditto.
2675         (<sse>_vmsqrt<mode>2): Ditto.
2676         (*smax<mode>3): Ditto.
2677         (sse5_frcz<mode>2): Ditto.
2678         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
2679         as insn constraint.
2680
2681 2008-02-20  Richard Guenther  <rguenther@suse.de>
2682
2683         PR middle-end/35265
2684         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
2685         be happy with INTEGRAL_TYPE_P.
2686
2687 2008-02-20  Richard Guenther  <rguenther@suse.de>
2688
2689         * fold-const.c (split_tree): Associate floatig-point expressions
2690         if flag_associative_math is set.
2691
2692 2008-02-20  Richard Guenther  <rguenther@suse.de>
2693
2694         * tree.h (fold_real_zero_addition_p): Declare.
2695         * fold-const.c (fold_real_zero_addition_p): Export.
2696         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
2697         floating-point operations with zero and one.
2698
2699 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
2700
2701         * doc/install.texi: Correct references to CFLAGS, replacing them
2702         with BOOT_CFLAGS.  Document flags used during bootstrap for
2703         target libraries.
2704                                 
2705 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
2706
2707         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
2708         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
2709         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
2710         insn constraint.
2711         (smin<mode>3): Ditto from similar patterns.
2712         (smax<mode>3): Ditto.
2713         (*ieee_smin<mode>3): Ditto.
2714         (*ieee_smax<mode>3): Ditto.
2715         * config/i386/sse.md (sse): New mode attribute.
2716         (mov<mode>): Macroize expander from movv4sf and movv2df using
2717         SSEMODEF2P mode iterator.
2718         (<sse>_movnt<mode>): Ditto from similar patterns. Use
2719         SSE_VEC_FLOAT_MODE_P as insn constraint.
2720         (storent<mode>): Ditto.
2721         (storent<mode>): Macroize expander from storentsf and storentdf using
2722         MODEF mode iterator.
2723         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
2724         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
2725         (abs<mode>2): Ditto from similar patterns.
2726         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
2727         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
2728         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
2729         (<sse>_vmsqrt<mode>2): Ditto.
2730         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
2731         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
2732         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
2733         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
2734         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
2735         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
2736         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
2737         insn constraint.
2738         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
2739         iterator and SSE_FLOAT_MODE_P as insn constraint.
2740         (<sse>_ucomi): Ditto from similar patterns.
2741         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
2742         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
2743         SSE_VEC_FLOAT_MODE_P as insn constraint.
2744         (vcond<mode>): Ditto from similar patterns.
2745         (and<mode>3, *and<mode>3): Ditto.
2746         (<sse>_nand<mode>3): Ditto.
2747         (ior<mode>3, *ior<mode>3): Ditto.
2748         (xor<mode>3, *xor<mode>3): Ditto.
2749         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
2750         iterator and SSE_FLOAT_MODE_P as insn constraint.
2751         (*nand<mode>3): Ditto from similar patterns.
2752         (*ior<mode>3): Ditto.
2753         (*xor<mode>3): Ditto.
2754
2755 2008-02-20  Ira Rosen  <irar@il.ibm.com>
2756
2757         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
2758         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
2759         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
2760
2761 2008-02-19  Jan Hubicka  <jh@suse.cz>
2762
2763         * predict.c (tree_bb_level_predictions): Remove variable next
2764         mistakely introduced by previous commit.
2765
2766 2008-02-19  Jan Hubicka  <jh@suse.cz>
2767
2768         * predict.c (predict_paths_leading_to): Rewrite.
2769         (predict_paths_for_bb): New.
2770         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
2771
2772 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2773
2774         PR bootstrap/35218
2775         * Makefile.in (build_file_translate): New.
2776         (gcc-vers.texi): Use it for translating $(abs_srcdir).
2777         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
2778         * configure.ac (build_file_translate): Substitute it.
2779         * configure: Regenerate.
2780
2781 2008-02-19  Jan Hubicka  <jh@suse.cz>
2782
2783         PR rtl-optimization/34408
2784         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
2785         invalid sharing.
2786
2787 2008-02-19  Jan Hubicka  <jh@suse.cz>
2788
2789         PR middle-end/28779
2790         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
2791         call_expr.
2792
2793 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2794
2795         PR Ada/35186
2796         * config/i386/i386-modes.def: Revert the last DI alignment
2797         change until Ada people can look into it.
2798
2799 2008-02-19  Nick Clifton  <nickc@redhat.com>
2800
2801         * opts.c (print_specific_help): Fix typo in --help text.
2802
2803 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
2804
2805         PR target/35239
2806         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
2807         32-bit inline asm without asm alternatives for host GCC < 3.0.
2808
2809 2008-02-19  Richard Guenther  <rguenther@suse.de>
2810
2811         PR tree-optimization/34989
2812         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
2813         Allow propagation to INDIRECT_REF if we can simplify only.
2814
2815 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2816
2817         * c-common.c (warn_for_collisions_1): Use appropriate option when
2818         warning.
2819
2820 2008-02-19  Nick Clifton  <nickc@redhat.com>
2821
2822         PR other/31349
2823         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
2824         (handle_options): Fix indentation.
2825         (print_filtered_help): If no language-specific options were
2826         displayed tell the user how to list all the options supported by
2827         the language's front-end.
2828         (print_specific_help): Fix indentation and remove duplicate line.
2829         (common_handle_option): Handle the -v option.
2830         For --help enable the display of undocumented options if the -v
2831         switch has been included on the command line.
2832         For --help= check for overlaps in the arguments between the option
2833         classes and the language names and issue a warning when they
2834         cannot be disambiguated.
2835         * c.opt (v): Pass on to the common option handler.
2836
2837 2008-02-19  Revital Eres  <eres@il.ibm.com> 
2838
2839         * modulo-sched.c (sms_schedule): Change dump message when
2840         create_ddg function fails.
2841         (try_scheduling_node_in_cycle): Rename row to cycle.
2842         (print_partial_schedule): Rename CYCLE to ROW.
2843
2844 2008-02-19  Christian Bruel  <christian.bruel@st.com>
2845             Zdenek Dvorak  <ook@ucw.cz>
2846
2847         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
2848
2849 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
2850
2851         PR target/33555
2852         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
2853         (*x86_movdicc_0_m1_se): Ditto.
2854
2855 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
2856
2857         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
2858         (CMPtype): Define as __gcc_CMPtype.
2859         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
2860         (CMPtype): Define as __gcc_CMPtype.
2861
2862 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
2863
2864         Support valgrind 3.3 for --enable-checking=valgrind.
2865         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
2866         here.
2867         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
2868         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
2869         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
2870         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
2871         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
2872         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
2873         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
2874         respectively.
2875         * ggc-zone.c: Similar.
2876         * ggc-page.c: Similar.
2877
2878 2008-02-19  Paul Brook  <paul@codesourcery.com>
2879
2880         PR target/35071
2881         * config/arm/ieee754-df.S: Fix do_it typo.
2882         * config/arm/ieee754-sf.S: Fix do_it typo.
2883
2884 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2885
2886         PR target/35189
2887         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
2888         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
2889         (OPTION_MASK_ISA_SSE_SET): Likewise.
2890         (OPTION_MASK_ISA_SSE2_SET): Likewise.
2891         (OPTION_MASK_ISA_SSE3_SET): Likewise.
2892         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
2893         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
2894         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
2895         (OPTION_MASK_ISA_SSE4_SET): Likewise.
2896         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
2897         (OPTION_MASK_ISA_SSE5_SET): Likewise.
2898         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
2899         (OPTION_MASK_ISA_MMX_UNSET): Updated.
2900         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
2901         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
2902         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
2903         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
2904         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
2905         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
2906         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
2907         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
2908         (OPTION_MASK_ISA_SSE4): Removed.
2909         (ix86_handle_option): Turn on bits in ix86_isa_flags and
2910         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
2911         (override_options): Don't turn on implied SSE/MMX bits in
2912         ix86_isa_flags.
2913
2914 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
2915
2916         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
2917         32bit host.
2918
2919 2008-02-18  Joey Ye  <joey.ye@intel.com>
2920
2921         PR middle-end/34921
2922         * tree-nested.c (insert_field_into_struct): Set type alignment
2923         to field alignment if the former is less than the latter.
2924
2925 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
2926
2927         * BASE-VER: Set to 4.4.0.
2928
2929 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2930
2931         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
2932         * doc/cfg.texi: Likewise.
2933         * doc/extend.texi: Likewise.
2934         * doc/gty.texi: Likewise.
2935         * doc/invoke.texi: Likewise.
2936         * doc/loop.texi: Likewise.
2937         * doc/md.texi: Likewise.
2938         * doc/passes.texi: Likewise.
2939         * doc/rtl.texi: Likewise.
2940         * doc/sourcebuild.texi: Likewise.
2941         * doc/tm.texi: Likewise.
2942         * doc/tree-ssa.texi: Likewise.
2943
2944 2008-02-17  Richard Guenther  <rguenther@suse.de>
2945
2946         PR middle-end/35227
2947         * tree-complex.c (init_parameter_lattice_values): Handle parameters
2948         without default definition.
2949
2950 2008-02-17  Richard Guenther  <rguenther@suse.de>
2951
2952         PR tree-optimization/35231
2953         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
2954         if A | B != 1.
2955
2956 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
2957
2958         Revert:
2959         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
2960         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
2961         libgcc_cmp_return mode.
2962
2963 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2964
2965         PR c/28368
2966         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
2967
2968 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
2969
2970         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
2971         multilibs.
2972
2973 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2974
2975         * doc/c-tree.texi: Use `@.' where appropriate.
2976         * doc/extend.texi: Likewise.
2977         * doc/install.texi: Likewise.
2978         * doc/invoke.texi: Likewise.
2979         * doc/loop.texi: Likewise.
2980         * doc/makefile.texi: Likewise.
2981         * doc/md.texi: Likewise.
2982         * doc/passes.texi: Likewise.
2983         * doc/standards.texi: Likewise.
2984         * doc/tm.texi: Likewise.
2985
2986 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2987
2988         PR middle-end/35196
2989         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
2990         in entry_bb.
2991         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
2992         rather than in entry_bb.
2993
2994 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
2995
2996         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
2997         libgcc_cmp_return mode.
2998
2999 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3000
3001         PR middle-end/35130
3002         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
3003         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
3004
3005 2008-02-15  Richard Guenther  <rguenther@suse.de>
3006             Zdenek Dvorak  <ook@ucw.cz>
3007
3008         PR tree-optimization/35164
3009         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
3010         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
3011         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3012         Only propagate addresses which do not have abnormal SSA_NAMEs
3013         in their operands.
3014
3015 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
3016
3017         PR target/35088
3018         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
3019
3020 2008-02-15  Jan Hubicka  <jh@suse.cz>
3021
3022         PR middle-end/35149
3023         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
3024
3025 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3026
3027         PR middle-end/34621
3028         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
3029         when calculating alignment_pad.
3030
3031 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
3032
3033         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
3034         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
3035         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
3036         and STACK_BOUNDARY define.
3037
3038 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
3039
3040         PR preprocessor/35061
3041         * c-pragma.c (handle_pragma_pop_macro): Check that
3042         pushed_macro_table has been allocated.
3043
3044 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
3045
3046         PR middle-end/35136
3047         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
3048         (force_gimple_operand): Likewise.
3049         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
3050         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
3051         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
3052         (find_interesting_uses_address): Check addressability and alignment
3053         of the base expression only after substituting bases of IVs into it.
3054
3055 2008-02-14  Michael Matz  <matz@suse.de>
3056
3057         PR target/34930
3058         * function.c (instantiate_virtual_regs_in_insn): Reload address
3059         before falling back to reloading the whole operand.
3060
3061 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3062
3063         * config/s390/s390.c (s390_mainpool_start): Emit the pool
3064         before the first section switch note.
3065
3066 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3067
3068         * doc/bugreport.texi: Update copyright years.
3069         * doc/c-tree.texi: Likewise.
3070         * doc/cfg.texi: Likewise.
3071         * doc/cpp.texi: Likewise.
3072         * doc/cppinternals.texi: Likewise.
3073         * doc/fragments.texi: Likewise.
3074         * doc/frontends.texi: Likewise.
3075         * doc/gcc.texi: Likewise.
3076         * doc/gty.texi: Likewise.
3077         * doc/hostconfig.texi: Likewise.
3078         * doc/implement-c.texi: Likewise.
3079         * doc/libgcc.texi: Likewise.
3080         * doc/loop.texi: Likewise.
3081         * doc/makefile.texi: Likewise.
3082         * doc/options.texi: Likewise.
3083         * doc/passes.texi: Likewise.
3084         * doc/rtl.texi: Likewise.
3085         * doc/sourcebuild.texi: Likewise.
3086         * doc/standards.texi: Likewise.
3087         * doc/tree-ssa.texi: Likewise.
3088         * doc/trouble.texi: Likewise.
3089
3090         * doc/extend.texi: Use @: or add comma where appropriate.
3091         * doc/invoke.texi: Likewise.
3092         * doc/tm.texi: Likewise.
3093
3094 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
3095
3096         PR target/34393
3097         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
3098         to a reg.
3099
3100 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
3101
3102         * doc/md.texi (clz, ctz): Add reference.
3103         * doc/rtl.texi (clz, ctz): Likewise.
3104
3105 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3106
3107         PR other/35148
3108         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
3109         srcdir.
3110
3111 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
3112
3113         * config/s390/s390.c (struct constant_pool): New field
3114         emit_pool_after added.
3115         (s390_mainpool_start): Set the emit_pool_after flag according
3116         to the section switch notes.
3117         (s390_mainpool_finish): Consider emit_pool_after when emitting
3118         the literal pool at the end of the function.
3119         (s390_chunkify_start): Force literal pool splits at section
3120         switch notes.
3121
3122 2008-02-13  Michael Matz  <matz@suse.de>
3123
3124         PR debug/35065
3125         * var-tracking.c (clobber_variable_part): Correctly traverse the
3126         list.
3127
3128 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3129
3130         PR 29673
3131         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
3132         Add -fdump-ipa-inline.
3133         * tree-dump.c (dump_files): Remove tree-inlined dump.
3134         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
3135         
3136 2008-02-12  Richard Guenther  <rguenther@suse.de>
3137
3138         PR tree-optimization/35171
3139         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
3140         default defs.
3141
3142 2008-02-12  Richard Guenther  <rguenther@suse.de>
3143
3144         PR middle-end/35163
3145         * fold-const.c (fold_widened_comparison): Use get_unwidened in
3146         value-preserving mode.  Disallow final truncation.
3147
3148 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
3149
3150         PR middle-end/35136
3151         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
3152         code from here to...
3153         (force_gimple_operand): ...here.
3154
3155 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
3156
3157         PR c++/35144
3158         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
3159         non-compatible pointers.
3160         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
3161         different FIELD_DECLs, try harder by comparing field offsets, sizes
3162         and types.
3163
3164         PR inline-asm/35160
3165         * function.c (match_asm_constraints_1): Don't replace the same input
3166         multiple times.
3167
3168 2008-02-12  Anatoly Sokolov <aesok@post.ru>
3169
3170         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
3171         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
3172         (expand_epilogue): Restore RAMPZ register.
3173         * config/avr/avr.md (RAMPZ_ADDR): New constant.
3174
3175 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
3176
3177         * config/i386/cygwin.asm: (__alloca): Correct calling
3178         convention and alignment.
3179         (__chkstk): Force 8 byte stack alignment.
3180
3181 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
3182             Richard Guenther  <rguenther@suse.de>
3183
3184         PR tree-optimization/33992
3185         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
3186         the zero we compare against.
3187
3188 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
3189
3190         PR libfortran/35063
3191         * gthr-win32.h (__gthread_mutex_destroy_function): New function
3192         to CloseHandle after unlocking to prevent accumulation of handle
3193         count.
3194
3195 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3196
3197         PR middle_end/34150
3198         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
3199         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
3200         and update LABEL_NUSES during and after reload.
3201
3202 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
3203
3204         PR middle-end/34627
3205         * combine.c (simplify_if_then_else): Make sure the comparison is
3206         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
3207
3208 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
3209
3210         PR bootstrap/35051
3211         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
3212         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
3213         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
3214         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
3215         * tree.h (get_type_static_bounds): Likewise.
3216
3217 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3218
3219         * doc/invoke.texi (Option Summary, C++ Dialect Options)
3220         (Objective-C and Objective-C++ Dialect Options, Warning Options):
3221         Make -Wfoo language annotations match what the compiler outputs.
3222
3223 2008-02-08  Sa Liu  <saliu@de.ibm.com>
3224
3225         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
3226         intrinsics spu_convts, spu_convtu, spu_convtf.
3227         * testsuite/gcc.target/spu/intrinsics-3.c: New. Test error messages.
3228
3229 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
3230
3231         * doc/extend.texi (Function Attributes) <noinline>: Mention
3232         asm ("") as method to keep calls.
3233
3234 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3235
3236         PR other/32754
3237         * doc/options.texi (Options): Replace references to opts.sh with
3238         optc-gen.awk.
3239         * opts-common.c: Likewise.
3240         * optc-gen.awk: Likewise.
3241         
3242 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
3243
3244         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
3245
3246 2008-02-07  Richard Henderson  <rth@redhat.com>
3247
3248         PR rtl-opt/33410
3249         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
3250         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
3251         funny mode.
3252
3253 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
3254
3255         PR tree-optimization/35085
3256         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
3257         for operand entry oe2 in addition to operand entry oe3 in order to
3258         expose more opportunities for vectorizer sum reduction.
3259
3260 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3261
3262         PR other/35107
3263         * Makefile.in (LIBS): Remove $(GMPLIBS).
3264         (cc1-dummy, cc1): Add $(GMPLIBS).
3265
3266 2008-02-06  Jan Hubicka  <jh@suse.cz>
3267
3268         PR target/23322
3269         * i386.md (moddf_integer): Do not produce partial memory stalls for
3270         targets where it hurts.
3271
3272 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         PR target/35083
3275         * optabs.c (expand_float): Do not check for decimal modes when
3276         expanding unsigned integer through signed conversion.
3277
3278 2008-02-06  Nick Clifton  <nickc@redhat.com>
3279
3280         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
3281         inside the clobber with a match_operand and duplicated operand
3282         number in the constraint.
3283         (ineqbranchsi): Delete redundant comment.
3284
3285 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
3286
3287         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
3288         builtin_define ("__USE_INIT_FINI__").
3289         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
3290         -msx multilibs.
3291         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
3292
3293 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3294
3295         PR documentation/30330
3296         * doc/invoke.texi (C++ Dialect Options)
3297         (Objective-C and Objective-C++ Dialect Options, Warning Options):
3298         For each warning option -Wfoo that allows -Wno-foo, ensure both
3299         -Wfoo and -Wno-foo are listed in the option index.  Fix index
3300         entry of -Wswitch-default, index -Wnormalized= including the
3301         `=', and -Wlarger-than-@var{len} including @var{len}.
3302
3303 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
3304
3305         * config/i386/i386.md (floatunssisf2): Use
3306         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
3307         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
3308         Macroize expander using MODEF mode iterator.
3309
3310 2008-02-05  Diego Novillo  <dnovillo@google.com>
3311
3312         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
3313
3314         PR 33738
3315         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
3316
3317 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3318
3319         PR other/35070
3320         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
3321
3322 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
3323
3324         PR target/35084
3325         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
3326         to indicate if a message should be generated.
3327         (init_cumulative_args): Updated.
3328         (function_value_32): Likewise.
3329
3330 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
3331
3332         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
3333
3334 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
3335
3336         PR target/35083
3337         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
3338         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
3339
3340 2008-02-04  Diego Novillo  <dnovillo@google.com>
3341
3342         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
3343
3344         PR 33738
3345         * tree-vrp.c (vrp_evaluate_conditional): With
3346         -Wtype-limits, emit a warning when comparing against a
3347         constant outside the natural range of OP0's type.
3348
3349 2008-02-04  Richard Guenther  <rguenther@suse.de>
3350
3351         PR middle-end/33631
3352         * expr.c (count_type_elements): Give for unions instead of
3353         guessing.
3354
3355 2008-02-04  Richard Guenther  <rguenther@suse.de>
3356
3357         PR middle-end/35043
3358         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
3359         to TYPE_DOMAINs base type instead of using bitsizetype here.
3360
3361 2008-02-03  Jason Merrill  <jason@redhat.com>
3362
3363         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
3364
3365 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3366
3367         PR other/29972
3368         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
3369         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
3370         (RS/6000 and PowerPC Options): Fix typos and markup.
3371         * doc/passes.texi (Tree-SSA passes): Likewise.
3372
3373 2008-02-02  Michael Matz  <matz@suse.de>
3374
3375         PR target/35045
3376         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
3377         from record_last_reg_set_info.
3378         (record_last_reg_set_info): Take an RTX argument, iterate over all
3379         constituent hardregs.
3380         (record_last_set_info, record_opr_changes): Change calls to
3381         new signature or to record_last_reg_set_info_regno.
3382
3383 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
3384
3385         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
3386
3387 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
3388
3389         PR rtl-optimization/34773
3390         * reg-notes.def (EQUAL): Mention significance of combination of
3391         REG_EQUAL and REG_RETVAL.
3392         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
3393         insn that has a REG_RETVAL.
3394
3395 2008-02-01  Roger Sayle  <roger@eyesopen.com>
3396
3397         PR bootstrap/33781
3398         * configure.ac (--enable-fixed-point): Disable unless explicitly
3399         requested on IRIX.
3400         * configure: Regenerate.
3401
3402 2008-02-01  Richard Guenther  <rguenther@suse.de>
3403
3404         PR other/35042
3405         * invoke.texi (-finline-limit): Remove no longer true parts
3406         of the documentation.  Note that there is no default value.
3407
3408 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
3409             Mark Mitchell  <mark@codesourcery.com>
3410             Ben Elliston  <bje@au.ibm.com>
3411
3412         PR c/29326
3413         * doc/extend.texi (Other Builtins): Document.
3414
3415 2008-01-31  Tom Browder <tom.browder@gmail.com>
3416
3417         * doc/c-tree.texi (Types): Fix grammar.
3418         (Expression trees): Ditto.
3419         * doc/passes.texi (Tree-SSA passes): Ditto.
3420         
3421         * doc/configterms.texi (Configure Terms): Fix typo.
3422         * doc/cpp.texi (Common Predefined Macros): Ditto.
3423         * doc/md.texi (Machine Constraints): Ditto.
3424         
3425         * doc/makefile.texi (Makefile): Add comma.
3426
3427 2008-01-31  Tom Browder  <tom.browder@gmail.com>
3428             Gerald Pfeifer  <gerald@pfeifer.com>
3429         
3430         * doc/sourcebuild.texi (Front End): Remove references to CVS
3431         and CVSROOT/modules.
3432         (Texinfo Manuals): Replace reference to CVS by one to SVN.
3433         (Back End): Remove reference to CVS.
3434
3435 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
3436
3437         PR target/34900
3438         * config/mips/mips.c (gen_load_const_gp): New function, taking a
3439         comment from...
3440         (mips16_gp_pseudo_reg): ...here.
3441         * config/mips/mips.md (load_const_gp): Replace with...
3442         (load_const_gp_<mode>): ...this :P-based insn.
3443
3444 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3445
3446         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
3447         options. Minor fixes.
3448         (-std): Move reference to standards closer to where language
3449         standards are first mentioned.
3450         
3451 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
3452
3453         PR rtl-optimization/34995
3454         * reload.c (alternative_allows_const_pool_ref): Take an rtx
3455         parameter and return a bool.  If the rtx parameter is nonnull,
3456         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
3457         (find_reloads): Update call accordingly.  Pass the new operand
3458         if it needed no address reloads, otherwise pass null.
3459
3460 2008-01-30  Richard Henderson  <rth@redhat.com>
3461
3462         PR c/34993
3463         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
3464         for unbounded arrays.
3465
3466 2008-01-30  Silvius Rus  <rus@google.com>
3467
3468         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
3469
3470 2008-01-30  Jan Hubicka  <jh@suse.cz>
3471
3472         PR target/34982
3473         * i386.c (init_cumulative_args): Use real function declaration when
3474         calling locally.
3475
3476 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
3477
3478         PR rtl-optimization/34998
3479         * global.c (build_insn_chain): Treat non-subreg_lowpart
3480         SUBREGs of pseudos as clobbering all the words covered by the
3481         SUBREG, not just all the bytes.
3482         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
3483         original df_ref rather than an extract parameter.
3484         (global_conflicts): Update call accordingly.
3485
3486 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
3487
3488         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
3489         the overflow check to make it easier to read.
3490         (__fixtfdi): Change the type of the ll member in union
3491         long_double to UDItype_x.
3492
3493 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
3494
3495         PR middle-end/34969
3496         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
3497         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
3498         * tree-inline.c (fold_marked_statements): Call
3499         cgraph_update_edges_for_call_stmt if folding a call statement.
3500         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
3501         debug_generic_stmt calls, reset it back afterwards.
3502
3503         PR c/35017
3504         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
3505         static decls.
3506         * c-typeck.c (build_external_ref): Don't pedwarn about
3507         static vars in current function's scope.
3508
3509 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
3510
3511         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
3512
3513 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
3514
3515         PR c/35002
3516         * ipa-struct-reorg.c: Fix spelling.
3517         * params.def: Ditto.
3518
3519 2008-01-29  Richard Guenther  <rguenther@suse.de>
3520
3521         PR middle-end/35006
3522         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
3523         field.
3524         * tree-inline.c (remap_type): Increment remapping_type_depth
3525         around remapping types.
3526         (copy_body_r): Only add referenced variables if they are referenced
3527         from code, not types.
3528
3529 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
3530
3531         PR c++/34055
3532         PR c++/34103
3533         PR c++/34219
3534         PR c++/34606
3535         PR c++/34753
3536         PR c++/34754
3537         PR c++/34755
3538         PR c++/34919
3539         PR c++/34961
3540         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
3541         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
3542
3543 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
3544
3545         PR target/34412
3546         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
3547         pointer for tiny stack.
3548
3549 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
3550
3551         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
3552
3553 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
3554
3555         * config/vx-common.h: Fix typo in comment.
3556
3557 2008-01-28  Ian Lance Taylor  <iant@google.com>
3558
3559         PR c++/34862
3560         PR c++/33407
3561         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
3562         coalesce pointers if they have different DECL_NO_TBAA_P values.
3563         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
3564         between variables with different DECL_NO_TBAA_P values.
3565
3566 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
3567
3568         PR 31535
3569         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
3570         are not legitimate small data references on SPE targets.
3571
3572 2008-01-28  David Daney  <ddaney@avtrex.com>
3573
3574         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
3575
3576 2008-01-28  David Daney  <ddaney@avtrex.com>
3577
3578         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
3579
3580 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
3581
3582         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
3583         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
3584         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
3585         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
3586         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
3587         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
3588         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
3589         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
3590
3591 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3592
3593         * basic-block.h (condjump_equiv_p): Fix comment.
3594
3595 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3596
3597         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
3598         print_generic_stmt_indented): Fix comment.
3599
3600 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
3601
3602         * configure.ac (__stack_chk_fail): Add detecion for availability
3603         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
3604         * configure: Regenerate.
3605
3606 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
3607
3608         PR middle-end/34688
3609         * final.c (output_addr_const): Handle TRUNCATE.
3610
3611 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
3612
3613         PR target/34711
3614         * tree-ssa-loop-ivopts.c (comp_cost): New type.
3615         (zero_cost, infinite_cost): New constants.
3616         (struct cost_pair): Change type of cost to comp_cost.
3617         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
3618         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
3619         New functions.
3620         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
3621         split_address_cost, ptr_difference_cost, difference_cost,
3622         get_computation_cost_at, get_computation_cost,
3623         determine_use_iv_cost_generic, determine_use_iv_cost_address,
3624         determine_use_iv_cost_condition, determine_use_iv_costs,
3625         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
3626         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
3627         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
3628         Change type of cost to comp_cost.
3629         (determine_iv_cost): Increase cost of non-original ivs, instead
3630         of decreasing the cost of original ones.
3631         (get_address_cost): Indicate the complexity of the addressing mode 
3632         in comp_cost.
3633         (try_add_cand_for): Prefer using ivs not specific to some object.
3634         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
3635
3636 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
3637             Janis Johnson  <janis187@us.ibm.com>
3638
3639         PR target/34814
3640         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
3641         (TARGET_INSTANTIATE_DECLS): Likewise.
3642         * target.h (expand_to_rtl_hook): New target hook.
3643         (instantiate_decls): Likewise.
3644         * function.c (instantiate_decl): Make non-static.  Rename to...
3645         (instantiate_decl_rtl): ... this.
3646         (instantiate_expr): Use instantiate_decl_rtl.
3647         (instantiate_decls_1): Likewise.
3648         (instantiate_decls): Likewise.
3649         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
3650         * function.h (instantiate_decl_rtl): Add prototype.
3651         * cfgexpand.c (target.h): New include.
3652         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
3653         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
3654         (TARGET_INSTANTIATE_DECLS): Likewise.
3655         (TARGET_INITIALIZER): New target hooks added.
3656         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
3657         New prototype.
3658         * config/rs6000/rs6000.c (tree-flow.h): New include.
3659         (machine_function): Add sdmode_stack_slot field.
3660         (rs6000_alloc_sdmode_stack_slot): New function.
3661         (rs6000_instantiate_decls): Likewise.
3662         (rs6000_secondary_memory_needed_rtx): Likewise.
3663         (rs6000_check_sdmode): Likewise.
3664         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
3665         (TARGET_INSTANTIATE_DECLS): Likewise.
3666         (rs6000_hard_regno_mode_ok): Allow SDmode.
3667         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
3668         (rs6000_emit_move): Handle SDmode.
3669         (function_arg_advance): Likewise.
3670         (function_arg): Likewise.
3671         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
3672         SDmode var args for 32-bit compiles.
3673         (rs6000_secondary_reload_class): Handle SDmode.
3674         (rs6000_output_function_epilogue): Likewise.
3675         (rs6000_function_value): Simplify if statement.
3676         (rs6000_libcall_value): Likewise.
3677         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
3678         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
3679         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
3680         (movsd_hardfloat): New define_insn.
3681         (movsd_softfloat): Likewise.
3682         (movsd_store): Likewise.
3683         (movsd_load): Likewise.
3684         (extendsddd2): Likewise.
3685         (extendsdtd2): Likewise.
3686         (truncddsd2): Likewise.
3687         (movdd_hardfloat64): Fixup comment.
3688         (UNSPEC_MOVSD_LOAD): New constant.
3689         (UNSPEC_MOVSD_STORE): Likewise.
3690
3691 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
3692
3693         PR c++/34965
3694         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
3695         TRUTH_XOR_EXPR.
3696         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
3697         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
3698         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
3699         and TRUTH_XOR_EXPR.
3700
3701 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
3702
3703         PR target/34794
3704         * config.gcc: Separate AIX 5.3 from AIX 6.1.
3705         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3706         __LONGDOUBLE128 too.
3707         * config/rs6000/aix61.h: New file.
3708
3709 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
3710
3711         PR rtl-optimization/34959
3712         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
3713         popcount and parity rtxes the same mode as their operand.
3714         Truncate or extend the result to the return value's mode
3715         if necessary.
3716
3717 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
3718
3719         PR target/34981
3720         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
3721         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
3722         to GOT_VERSION_REGNUM.
3723         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
3724         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
3725         * config/mips/mips.c (mips_emit_call_insn): New function.
3726         (mips_call_tls_get_addr): Call mips_expand_call directly.
3727         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
3728         emit_call_insn.
3729         (mips16_build_call_stub): Likewise.  Return the call insn or null.
3730         (mips_expand_call): Update the call to mips16_build_call_stub
3731         accordingly and a remove redundant condition.  Assert that MIPS16
3732         stubs do not use lazy binding.  Use mips_emit_call_insn and return
3733         the call insn.
3734         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
3735         TARGET_USE_GOT.
3736         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
3737         (mips_avoid_hazard): Remove hazard_set handling.
3738         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
3739         (UNSPEC_RESTORE_GP): ...this.
3740         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
3741         (FAKE_CALL_REGNO): Rename to...
3742         (GOT_VERSION_REGNUM): ...this.
3743         (type): Add "ghost" value.  Add an associated insn reservation.
3744         (hazard_set): Remove.
3745         (exception_receiver): Rename to...
3746         (restore_gp): ...this and update the unspec identifier accordingly.
3747         (exception_receiver, nonlocal_got_receiver): New expanders.
3748         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
3749         FAKE_CALL_REGNO.  Remove hazard_set attribute.
3750         (set_got_version, update_got_version): New patterns.
3751
3752 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
3753
3754         PR target/34970
3755         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
3756
3757 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
3758
3759         PR other/31955
3760         * doc/install.texi2html: Generate gcc-vers.texi.
3761
3762 2008-01-25  DJ Delorie  <dj@redhat.com>
3763
3764         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
3765
3766 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
3767
3768         * config/c4x: Remove directory.
3769         * config.gcc (crx-*, mt-*): Mark obsolete.
3770         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
3771         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
3772         sh-*-rtemscoff*): Remove cases.
3773         * defaults.h (C4X_FLOAT_FORMAT): Remove.
3774         * real.c (encode_c4x_single, decode_c4x_single,
3775         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
3776         c4x_extended_format): Remove.
3777         * real.h (c4x_single_format, c4x_extended_format): Remove.
3778         * doc/extend.texi (interrupt, naked): Remove mention of attributes
3779         on C4x.
3780         (Pragmas): Remove comment about c4x pragmas.
3781         * doc/install.texi (c4x): Remove target-specific instructions.
3782         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
3783         * doc/md.texi (Machine Constraints): Remove C4x documentation.
3784         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
3785         refer to C4x source files as examples.
3786         (C4X_FLOAT_FORMAT): Remove documentation.
3787
3788 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
3789
3790         * config/bfin/bfin.c (override_options): Reorder tests so that
3791         flag_pic gets enabled for -msep-data.
3792
3793 2008-01-25  Richard Guenther  <rguenther@suse.de>
3794
3795         PR middle-end/32244
3796         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
3797         to its bitfield precision if required.
3798
3799 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
3800
3801         PR middle-end/33880
3802         * tree-nested.c (walk_omp_for): New function.
3803         (convert_nonlocal_reference, convert_local_reference): Call
3804         walk_omp_for on OMP_FOR.
3805         (convert_call_expr): Call walk_body on OMP_FOR's
3806         OMP_FOR_PRE_INIT_BODY.
3807
3808 2008-01-25  Richard Guenther  <rguenther@suse.de>
3809
3810         PR tree-optimization/34966
3811         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
3812         default defs and PHI_NODEs we have to insert after the
3813         defining statement.
3814
3815 2008-01-24  Nick Clifton  <nickc@redhat.com>
3816
3817         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
3818         Provide a default definition.
3819         (LIBGCC2_UNITS_PER_WORD): Likewise.
3820
3821         * config/stormy16/stormy16.c: Include df.h for the prototype
3822         for df_regs_ever_live_p.
3823         (xstormy16_expand_builtin_va_start): Convert the stack offset
3824         into a component_ref and then use POINTER_PLUS_EXPR to add it
3825         to the incoming_virtual_args_rtx.
3826         (xstormy16_gimplify_va_arg_expr): Rename to
3827         xstormy16_gimplify_va_arg_expr.
3828         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
3829         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
3830         xstormy16_gimplify_va_arg_expr.
3831         Fix up some formatting issues.
3832
3833         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
3834         Move to predicates.md.
3835         (xs_hi_general_operand): Likewise.
3836         (xs_hi_nonmemory_operand): Likewise.
3837         * config/stormy16/predicates.md:
3838         (xstormy16_carry_plus_operand): New predicate.
3839         (xs_hi_general_operand): New predicate.
3840         (xs_hi_nonmemory_operand): New predicate.
3841         * config/stormy16/stormy16-protos.h:
3842         (xstormy16_carry_plus_operand): Delete prototype.
3843         (xs_hi_general_operand): Likewise.
3844         (xs_hi_nonmemory_operand): Likewise.
3845
3846         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
3847         modifiers as they are no longer needed and they can trigger
3848         reload spill failures.
3849
3850         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
3851         with a match_operand in order to help reload.
3852
3853         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
3854         constraint with 'e' for the 8th alternative as this version of
3855         the mov.w instruction only accepts the lower 8 registers.
3856
3857 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
3858
3859         PR target/34856
3860         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
3861         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
3862         vector elements.
3863
3864 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
3865
3866         PR middle-end/33333
3867         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
3868
3869 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
3870
3871         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
3872         New functions.
3873         (remove_structure): Update allocations list before removing structure.
3874         
3875 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
3876
3877         * ipa-struct-reorg.c (is_safe_cond_expr, 
3878         create_new_stmts_for_cond_expr): Use integer_zerop function,
3879         that recognize not only zero-pointer, but zero-integer too.
3880
3881 2008-01-25  Ben Elliston  <bje@au.ibm.com>
3882
3883         PR other/22232
3884         * fixproto: Escape "." in sed expression that strips leading "./".
3885
3886 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
3887
3888         PR driver/34904
3889         * gcc.c (SWITCH_OK): Removed.
3890         (SWITCH_LIVE): Changed to bit.
3891         (SWITCH_FALSE): Likewise.
3892         (SWITCH_IGNORE): Likewise.
3893         (switchstr): Change live_cond to unsigned int.
3894         (process_command): Replace SWITCH_OK with 0.
3895         (do_self_spec): Likewise.
3896         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
3897         (give_switch): Likewise.
3898         (used_arg): Likewise.
3899         (do_spec_1): Set the SWITCH_IGNORE bit.
3900         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
3901         bits.  Set the SWITCH_LIVE bit.
3902
3903 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3904
3905         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
3906
3907 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
3908
3909         PR tree-optimization/34472
3910         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
3911         parameter to a "bool *" and set *DATA to false if there is
3912         an unsafe access.  Do not delete the structure here.
3913         (check_cond_exprs): Delete it here instead.
3914         (check_cond_exprs, exclude_cold_structs): Do not increase
3915         I when removing a structure.
3916
3917 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
3918
3919         PR target/34856
3920         * config/i386/i386.c (ix86_expand_vector_init): Consider only
3921         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
3922
3923 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
3924
3925         PR middle-end/34934
3926         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
3927         a fixed vector for stack.
3928
3929 2008-01-24  Ben Elliston  <bje@au.ibm.com>
3930
3931         PR c++/25701
3932         * doc/gcc.texi (Software development): Add a direntry for g++.
3933         
3934 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
3935
3936         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
3937         stale and straggling -fforce-addr comments above.
3938
3939         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
3940         define.
3941         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
3942         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
3943
3944 2008-01-23  Michael Matz  <matz@suse.de>
3945
3946         PR debug/34895
3947         * dwarf2out.c (force_type_die): Use modified_type_die instead of
3948         gen_type_die.
3949
3950 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
3951
3952         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
3953         malloc result type.
3954
3955 2008-01-23 Anatoly Sokolov <aesok@post.ru>
3956
3957         * config/avr/avr.c (avr_current_arch): New variable.
3958         (avr_arch_types): Add 'avr31' and 'avr51' entries.
3959         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
3960         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
3961         (avr_override_options): Init 'avr_current_arch'. 
3962         (base_arch_s): Move from here...
3963         * config/avr/avr.h (base_arch_s): ... here. Add new members 
3964         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
3965         'mega' to 'have_jmp_call'.
3966         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
3967         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
3968         macros.
3969         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
3970         architectures.
3971         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
3972         MULTILIB_MATCHES): (Ditto.).
3973
3974 2008-01-23  Richard Guenther  <rguenther@suse.de>
3975
3976         PR middle-end/31529
3977         * cgraphunit.c (cgraph_reset_node): Always mark the node
3978         not reachable if it is not queued already.
3979
3980 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
3981
3982         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
3983         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
3984         (cputype_selected): New static variable.
3985         (bfin_handle_option): Set it if -mcpu is used.
3986         (override_option): Select default set of workarounds if no cpu type
3987         selected on the command line.
3988         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
3989
3990         From  Michael Frysinger  <michael.frysinger@analog.com>
3991         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
3992         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
3993
3994         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
3995         for bf547, bf523, bf524, and bf526.
3996         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
3997         bf526.
3998         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
3999         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
4000         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
4001         __ADSPBF547__ and __ADSPBF54x__ for bf547.
4002         * doc/invoke.texi (Blackfin Options): Document that
4003         -mcpu now accept bf547, bf523, bf524, and bf526.
4004
4005 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
4006
4007         PR rtl-optimization/34628
4008         * combine.c (try_combine): Stop and undo after the first combination
4009         if an autoincrement side-effect on the first insn has effectively
4010         been lost.
4011
4012 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
4013
4014         PR target/34529
4015         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
4016         Offset addresses are not valid for Altivec or paired float modes.
4017
4018 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
4019
4020         PR c++/34607
4021         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
4022         if DECL_INITIAL (decl) is error_mark_node.
4023
4024         PR c++/34914
4025         * c-common.c (handle_vector_size_attribute): Only allow
4026         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
4027         the same way as pointer, array etc. types.
4028         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
4029
4030         PR c++/34917
4031         * tree.c (build_type_attribute_qual_variant): Call
4032         build_qualified_type if attributes are equal, but quals are not.
4033
4034 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4035
4036         PR 32102
4037         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
4038         * flags.h (warn_strict_aliasing): Remove.
4039         (warn_strict_overflow): Remove.
4040         * opts.c (warn_strict_aliasing): Remove.
4041         (warn_strict_overflow): Remove.
4042         * c-opts.c (c_common_handle_option): -Wall only sets
4043         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
4044         (c_common_post_options): Give default values to -Wstrict-aliasing
4045         and -Wstrict-overflow if they are uninitialized.
4046         * common.opt (Wstrict-aliasing): Specify Var and Init.
4047         (Wstrict-overflow): Likewise.
4048
4049 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
4050
4051         PR rtl-optimization/26854
4052         PR rtl-optimization/34400
4053         PR rtl-optimization/34884
4054         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
4055         DF_RD->gen.
4056         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
4057         (df_rd_bb_info.expanded_lr_out): Deleted
4058         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
4059         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
4060         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
4061         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
4062         Removed code to allocate, initialize or free expanded_lr_out.
4063         (df_rd_bb_local_compute_process_def): Restructured to make more
4064         understandable.
4065         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
4066         sets if the sets are being trimmed.
4067
4068 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
4069
4070         PR bootstrap/32287
4071         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
4072         (as_vers): Likewise.
4073         * configure: Regenerated.
4074
4075 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4076
4077         PR middle-end/33092
4078         * tree-pass.h (pass_build_alias): New pass.
4079         * tree-ssa-alias.c (gate_build_alias): New.
4080         (pass_build_alias): New.
4081         * passes.c (init_optimization_passes): Add pass_build_alias after
4082         pass_create_structure_vars.
4083
4084 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
4085
4086         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
4087         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
4088         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
4089         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
4090         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
4091         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
4092         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
4093         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
4094         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
4095         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
4096         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
4097         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
4098         * config/s390/s390.md (FP_ALL): New mode iterator.
4099         (_d): New mode attribute.
4100         ("*signbit<mode>2>"): Changed mode of first operand.
4101         ("isinf<mode>2"): Changed mode of first operand.
4102         ("*TDC_insn"): Adaptation for DFP modes.
4103
4104 2008-01-22  Ben Elliston  <bje@au.ibm.com>
4105
4106         * tree.c (check_qualified_type): Improve function description.
4107
4108 2008-01-21  Jason Merrill  <jason@redhat.com>
4109
4110         PR c++/34196
4111         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
4112         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
4113         if it is set.
4114
4115 2008-01-21  DJ Delorie  <dj@redhat.com>
4116
4117         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
4118         return zero.
4119
4120 2008-01-21  Richard Guenther  <rguenther@suse.de>
4121
4122         PR middle-end/34856
4123         * tree-cfg.c (verify_expr): Allow all invariant expressions
4124         instead of just constant class ones as reference argument.
4125         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
4126         like any other constant.
4127         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4128
4129 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
4130
4131         * regmove.c (fixup_match_1): Update call crossed frequencies.
4132
4133 2008-01-21  Richard Guenther  <rguenther@suse.de>
4134
4135         PR c/34885
4136         * tree-inline.c (setup_one_parameter): Deal with mismatched
4137         types using a VIEW_CONVERT_EXPR.
4138
4139 2008-01-21  Alon Dayan  <alond@il.ibm.com>
4140             Olga Golovanevsky  <olga@il.ibm.com>
4141         
4142         PR tree-optimization/34701
4143         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
4144         when the structure size is not a power of 2.
4145
4146 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
4147
4148         * doc/install.texi: Add doc for --enable-checking=df.
4149         
4150 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4151
4152         PR rtl-optimization/34808
4153         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
4154
4155 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4156
4157         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
4158         input.
4159
4160 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
4161
4162         PR rtl-optimization/26854
4163         PR rtl-optimization/34400
4164         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
4165         DF_RD->gen.
4166         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
4167         (df_rd_bb_info.expanded_lr_out): New.
4168         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
4169         * loop_iv.c (iv_analysis_loop_init): Ditto.
4170         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
4171         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
4172         Added code to allocate, initialize or free expanded_lr_out.
4173         (df_rd_bb_local_compute_process_def): Restructured to make
4174         more understandable.
4175         (df_rd_confluence_n): Add code to do nothing with fake edges and
4176         code to no apply invalidate_by_call sets if the sets are being trimmed.
4177         (df_lr_local_finalize): Renamed to df_lr_finalize.
4178         (df_live_local_finalize): Renamed to df_live_finalize.
4179
4180 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
4181
4182         PR target/34831
4183         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
4184         deciding whether to use reciprocal instructions.
4185
4186 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
4187
4188         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
4189         dwarf2out_note_section_used if cold_text_section is NULL.
4190
4191 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
4192
4193         PR gcov-profile/34610
4194         * tree-cfg.c (make_edges): Mark both outgoing edges from
4195         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
4196         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
4197         from OMP_FOR and OMP_CONTINUE outgoing edges.
4198
4199         * tree-profile.c (tree_profiling): Return early if
4200         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
4201         at the end.
4202         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
4203         from cfun to child_cfun.
4204         * function.h (struct function): Add after_tree_profile bit.
4205
4206 2008-01-19 Anatoly Sokolov <aesok@post.ru>
4207
4208         * config/avr/avr.S (_exit): Disable interrupt.
4209
4210 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
4211             Steven Bosscher  <stevenb.gcc@gmail.com>
4212
4213         PR rtl-optimization/26854
4214         PR rtl-optimization/34400
4215         * df-problems.c (df_live_scratch): New scratch bitmap.
4216         (df_live_alloc): Allocate df_live_scratch when doing df_live.
4217         (df_live_reset): Clear the proper bitmaps.
4218         (df_live_bb_local_compute): Only process the artificial defs once
4219         since the order is not important.
4220         (df_live_init): Init the df_live sets only with the variables
4221         found live by df_lr.
4222         (df_live_transfer_function): Use the df_lr sets to prune the
4223         df_live sets as they are being computed.  
4224         (df_live_free): Free df_live_scratch.
4225
4226 2008-01-18  Ian Lance Taylor  <iant@google.com>
4227
4228         * common.opt: Add fmerge-debug-strings.
4229         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
4230         flag_merge_debug_strings rather than flag_merge_constants.
4231         * doc/invoke.texi (Option Summary): Mention
4232         -fmerge-debug-strings.
4233         (Debugging Options): Document -fmerge-debug-strings.
4234
4235 2008-01-18  Ian Lance Taylor  <iant@google.com>
4236
4237         PR c++/33407
4238         * tree.h (DECL_IS_OPERATOR_NEW): Define.
4239         (struct tree_function_decl): Add new field operator_new_flag.
4240         * tree-inline.c (expand_call_inline): When inlining a call to
4241         operator new, force the return value to go into a variable, and
4242         set DECL_NO_TBAA_P on that variable.
4243         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
4244
4245 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
4246
4247         PR debug/34484
4248         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
4249         DWARF2_DEBUGGING_INFO.
4250         (dwarf2out_note_section_used): Ditto.  Add prototype.
4251         (have_multiple_function_sections, text_section_used,
4252         cold_text_section_used, *cold_text_sections): Move declarations
4253         before their uses.
4254
4255 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
4256
4257         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
4258         field and add signal_ra.
4259         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
4260         assignments to frame state pc.  Move end of stack check after
4261         MD_FALLBACK_FRAME_STATE_FOR.
4262         (uw_update_context_1): Use frame state signal_regs if set, instead
4263         of checking signal_frame flag.
4264         (uw_update_context): Use frame state signal_ra if set.
4265         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
4266         * config/xtensa/linux-unwind.h: New file.
4267
4268 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
4269
4270         * modulo-sched.c (get_sched_window): Fix comment typo.
4271
4272 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
4273
4274         PR tree-optimization/34648
4275         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
4276
4277 2008-01-17  Anatoly Sokolov <aesok@post.ru>
4278
4279         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
4280         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
4281
4282 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
4283
4284         PR rtl-optimization/34400
4285         * df-core.c (df_worklist_dataflow_overeager,
4286         df_worklist_dataflow_doublequeue): New functions.
4287         (df_worklist_dataflow): Two different worklist solvers.
4288         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
4289         New param.
4290
4291 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
4292
4293         PR testsuite/34821
4294         * doc/invoke.texi: Document the dependence on pthread for fopenmp
4295         and ftree-parallelize-loops.
4296
4297 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
4298
4299         PR rtl-optimization/34826
4300         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
4301
4302 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4303
4304         * global.c (find_reg): Mark the eh regs as used if necessary.
4305         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
4306         * ra.h (struct allocno): no_eh_reg field added.  Changed
4307         no_stack_reg type to bitfield.
4308
4309 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
4310
4311         * tree.c (substitute_in_expr): Add missing 'break'.
4312
4313 2008-01-17  Richard Guenther  <rguenther@suse.de>
4314
4315         PR tree-optimization/34825
4316         * tree-ssa-math-opts.c (is_division_by): Do not recognize
4317         x / x as division to handle.
4318
4319 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4320
4321         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
4322         "-pthread" is specified.
4323         * pa-hpux11.h (LIB_SPEC): Likewise.
4324
4325 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
4326             Peter Bergner  <bergner@vnet.ibm.com>
4327
4328         PR rtl-optimization/33796
4329         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
4330
4331 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4332
4333         PR libgfortran/34699
4334         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
4335         static links.
4336         * pa-hpux10.h (LINK_SPEC): Likewise.
4337         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
4338
4339 2008-01-16  Richard Guenther  <rguenther@suse.de>
4340
4341         PR middle-end/32628
4342         * fold-const.c (fold_convert_const_int_from_int): Do not
4343         set overflow if that occured only because of a sign extension
4344         change when converting from/to a sizetype with the same
4345         precision and signedness.
4346
4347 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
4348
4349         PR debug/34249
4350         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
4351         location address to the correct place.  Update copyright year.
4352
4353 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
4354
4355         * lambda-code.c (lambda_transform_legal_p): Handle the case of
4356         no dependences in the dependence_relations vector.
4357
4358 2008-01-16  Jan Hubicka  <jh@suse.cz>
4359
4360         PR rtl-optimization/31396
4361         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
4362         * cfg.c (dump_reg_info): Print it.
4363         * regs.h (struct reg_info_t): add freq_calls_crossed.
4364         (REG_FREQ_CALLS_CROSSED): New macro.
4365         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
4366         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
4367         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
4368         regmove_optimize): Update call crossed frequencies.
4369         * local-alloc.c (struct qty): Add freq_calls_crossed.
4370         (alloc_qty): Copute freq_calls_crossed.
4371         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
4372         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
4373         * ra.h (struct allocno): Add freq_calls_crossed.
4374
4375 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
4376
4377         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
4378         libgomp when compiling with ftree-parallelize-loops.
4379         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
4380
4381 2008-01-16  Richard Guenther  <rguenther@suse.de>
4382
4383         PR tree-optimization/34769
4384         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
4385         * tree.c (int_cst_value): Instead make this function more
4386         permissive in what it accepts as valid input.  Document this
4387         function always sign-extends the value.
4388
4389 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
4390             Richard Guenther  <rguenther@suse.de>
4391
4392         PR c/34668
4393         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
4394         (gimple_fold_indirect_ref_rhs): ... this.
4395         (gimple_fold_indirect_ref): New function with foldings
4396         that preserve lvalueness.
4397         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
4398         * tree-flow.h (gimple_fold_indirect_ref): Declare.
4399         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
4400         to fold an INDIRECT_REF, fall back to the old use of
4401         fold_indirect_ref_1.
4402
4403 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
4404
4405         * tree-data-ref.c (subscript_dependence_tester_1): Call 
4406         free_conflict_function.
4407         (compute_self_dependence): Same.
4408
4409 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
4410
4411         PR debug/34249
4412         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
4413         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
4414         function global.
4415         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
4416         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
4417         for DWARF2_UNWIND_INFO targets.
4418
4419 2008-01-16  Richard Guenther  <rguenther@suse.de>
4420
4421         PR c/34768
4422         * c-typeck.c (common_pointer_type): Do not merge inconsistent
4423         type qualifiers for function types.
4424
4425 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4426
4427         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
4428         loop_iterator li from previous commit.
4429
4430 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
4431
4432         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
4433
4434 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
4435
4436         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
4437         (parallelize_loops): Don't parallelize irreducible components.
4438
4439 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4440
4441         PR c++/24924
4442         * c-opts (c_common_post_options): Do not enable CPP
4443         flag_pedantic_errors by default.
4444         
4445 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
4446
4447         PR rtl-optimization/31944
4448         * cse.c (remove_pseudo_from_table): New function.
4449         (merge_equiv_classes): Use above function to remove pseudo-registers.
4450         (invalidate): Likewise.
4451
4452 2008-01-13  Richard Guenther  <rguenther@suse.de>
4453
4454         PR middle-end/34601
4455         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
4456         instead of TYPE_MODE to deal with calls from expand_one_error_var.
4457
4458 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
4459
4460         * gcse.c (cprop_jump): Call validate_unshare_change instead of
4461         validate_change to unshare the source of the PC set.
4462
4463 2008-01-12  Jan Hubicka  <jh@suse.cz>
4464
4465         PR middle-end/32135
4466         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
4467         references above array bounds.  This might trigger bounds checks for
4468         pointers to arrays.
4469
4470 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
4471
4472         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
4473         new_replaceable_dependencies.
4474
4475 2008-01-12  Doug Kwan  <dougkwan@google.com>
4476
4477         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
4478         instead of OPT_Wreturn_type in warning due to ignored return type
4479         qualifiers.
4480         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
4481         options included in -Wextra.
4482         * c.opt: New option -Wignored_qualifiers.
4483         * doc/invoke.texi (Warning Options, -Wextra): Add new option
4484         -Wignore_qualifiers.
4485         (-Wignored-qualifiers): Document.
4486         (-Wreturn-type): Remove description of functionality now handled
4487         by -Wignored-qualifiers.
4488
4489 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
4490
4491         PR ada/33788
4492         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
4493         NOP_EXPR if it is between integral types with the same precision.
4494
4495 2008-01-12  Jan Hubicka  <jh@suse.cz>
4496
4497         PR other/28023
4498         * invoke.texi (max-inline-recursive-depth): Fix default value.
4499
4500 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
4501
4502         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
4503         correct type.
4504
4505 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
4506         
4507         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
4508         
4509 2008-01-11  James E. Wilson  <wilson@specifix.com>
4510
4511         PR target/26015
4512         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
4513
4514 2008-01-11  Anatoly Sokolov <aesok@post.ru>
4515
4516         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
4517         save/restore frame pointer register and don't use 'call-prologues' 
4518         optimization in function with "OS_task" attribute.
4519
4520 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
4521
4522         PR middle-end/31309
4523         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
4524         when copying to memory.
4525
4526 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
4527
4528         PR rtl-optimization/30905
4529         * cfgcleanup.c: Include dce.h
4530         (crossjumps_occured): New global variable.
4531         (try_crossjump_bb): Exit loop after finding a fallthru edge.
4532         If something changed, set crossjumps_occured to true.
4533         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
4534         Don't add/remove fake edges to exit here...
4535         (cleanup_cfg): ...but do it here, when crossjumping.
4536         Run a fast DCE when successful crossjumps occured in the latest
4537         iteration of try_optimize_cfg.
4538
4539 2008-01-11  Richard Guenther  <rguenther@suse.de>
4540
4541         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
4542         (struct vn_unary_op_s): Likewise.
4543         (vn_reference_insert): Free old reference on hash collision.
4544
4545 2008-01-10  Raksit Ashok  <raksit@google.com>
4546
4547         PR rtl-optimization/27971
4548         * combine.c (find_split_point): Split PLUS expressions which are
4549         inside a MEM rtx, and whose first operand is complex.
4550
4551 2008-01-10  DJ Delorie  <dj@redhat.com>
4552
4553         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
4554         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
4555         (m32c_hard_regno_ok): Call the underlying function.
4556
4557 2008-01-10  Richard Guenther  <rguenther@suse.de>
4558
4559         PR middle-end/34683
4560         * tree-cfg.c (tree_merge_blocks): Do not go through the
4561         full-blown folding and stmt updating path if we just deal
4562         with virtual operands.
4563         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
4564         test for abnormal SSA_NAMEs.
4565
4566 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4567
4568         PR middle-end/34641
4569         * reload.c (push_reload): Add assertions.  All constants from
4570         reg_equiv_constant should have been used for replacing the respective
4571         pseudo earlier.
4572         (find_reloads_address): Invoke find_reloads_address_part for
4573         constant taken from the reg_equiv_constant array.
4574
4575 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
4576
4577         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
4578         field (valnum) the first in the struct.  Replace bools with
4579         unit bit fields.
4580
4581 2008-01-10  Richard Guenther  <rguenther@suse.de>
4582
4583         PR tree-optimization/34651
4584         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
4585         types and ordering for masking and converting.
4586
4587 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
4588
4589         PR tree-optimization/34017
4590         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
4591         also for PHI_NODE expressions.
4592
4593 2008-01-09  Jan Hubicka  <jh@suse.cz>
4594
4595         PR tree-optimization/34708
4596         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
4597         based on number of case labels.
4598         (init_inline_once): Remove switch_cost.
4599         * tree-inline.h (eni_weights_d): Remove switch_cost.
4600
4601 2008-01-09  Richard Guenther  <rguenther@suse.de>
4602         Andrew Pinski  <andrew_pinski@playstation.sony.com>
4603
4604         PR middle-end/30132
4605         * gimplify.c (gimplify_cond_expr): Do not create an addressable
4606         temporary if an rvalue is ok or an lvalue is not required.
4607
4608 2008-01-09  Richard Guenther  <rguenther@suse.de>
4609
4610         PR middle-end/34458
4611         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
4612         adjust return type.
4613
4614 2008-01-09  Richard Guenther  <rguenther@suse.de>
4615
4616         PR middle-end/34679
4617         * tree.c (host_integerp): Check for sizetype only if the
4618         type is an integer type.
4619
4620 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
4621
4622         PR debug/26364
4623         * opts.c (decode_options): Disable inlining of functions called
4624         once if not in unit-at-a-time mode.
4625
4626 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
4627
4628         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
4629
4630 2008-01-08  Richard Guenther  <rguenther@suse.de>
4631
4632         PR middle-end/31863
4633         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
4634         out early if the result will be unused.
4635
4636 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
4637
4638         PR target/34709
4639         Revert:
4640
4641         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
4642         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
4643         for TARGET_RECIP.       
4644         
4645 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
4646         
4647         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
4648         for vectorization tuned.
4649         
4650 2008-01-08  Richard Guenther  <rguenther@suse.de>
4651
4652         PR tree-optimization/34683
4653         * tree-ssa-operands.c (operand_build_cmp): Export.
4654         * tree-ssa-operands.h (operand_build_cmp): Declare.
4655         * tree-vn.c (vuses_compare): Remove.
4656         (sort_vuses): Use operand_build_cmp.
4657         (sort_vuses_heap): Likewise.
4658         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
4659         to re-use old VEC if available.  Do not sort already sorted VUSEs.
4660         (vdefs_to_vec): Do not sort already sorted VDEFs.
4661
4662 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
4663
4664         PR middle-end/34694
4665         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
4666
4667 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
4668
4669         PR target/34702
4670         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
4671         limitations of reciprocal sequences on x86 targets.
4672
4673 2008-01-08  Richard Guenther  <rguenther@suse.de>
4674
4675         PR tree-optimization/34683
4676         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
4677
4678 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
4679
4680         PR target/34622
4681         * config/darwin.c (darwin_mergeable_string_section): Don't use
4682         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
4683
4684 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
4685
4686         PR target/34682
4687         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
4688         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
4689         predicates of op0 and op1 to register_operand.
4690         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
4691         expander using X87MODEF mode iterator.  Change predicates of
4692         op0 and op1 to register_operand.
4693         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
4694         corresponding patterns and macroize using MODEF macro.  Change
4695         predicates of op0 and op1 to register_operand and remove
4696         "m" constraint. Disparage "r" alternative with "!".
4697         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
4698         macroize using X87MODEF macro.  Change predicates of op0 and op1
4699         to register_operand and remove "m" constraint.  Disparage "r"
4700         alternative with "!".
4701         (absneg splitter with memory operands): Remove.
4702         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
4703         patterns and macroize using X87MODEF mode iterator.
4704         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
4705         Change predicate of op1 to register_operand.
4706         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
4707         for memory operands.
4708
4709 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
4710
4711         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
4712
4713 2008-01-07  Richard Guenther  <rguenther@suse.de>
4714
4715         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
4716         fields.
4717
4718 2008-01-07  Richard Guenther  <rguenther@suse.de>
4719
4720         PR tree-optimization/34683
4721         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
4722         VOPs of the needed size to save memory.  Use VEC_quick_push
4723         to save compile-time.
4724         (vdefs_to_vec): Likewise.
4725
4726 2008-01-07  Sa Liu  <saliu@de.ibm.com>
4727
4728         * config/spu/spu.md (divdf3): Genetate inline code for double
4729         division.  The implementation doesn't handle INF or NAN, therefore it
4730         only applies when -ffinite-math-only is given.
4731
4732 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
4733
4734         PR libstdc++/34680
4735         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
4736         * doc/cpp.texi ([Common Predefined Macros]): Document.
4737
4738 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
4739
4740         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
4741         order to use commutative addition instead of subtraction.
4742
4743 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4744             Mircea Namolaru  <namolaru@il.ibm.com>
4745             Vladimir Yanovsky  <yanov@il.ibm.com>
4746             Revital Eres  <eres@il.ibm.com>
4747
4748         PR tree-optimization/34263
4749         * tree-outof-ssa.c (process_single_block_loop_latch,
4750         contains_tree_r): New functions.
4751         (analyze_edges_for_bb): Call process_single_block_loop_latch
4752         function to empty single-basic-block latch block if possible.
4753
4754 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
4755
4756         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
4757         for TARGET_RECIP.
4758         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
4759
4760 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
4761
4762         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
4763
4764 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
4765
4766         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
4767
4768 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
4769
4770         PR tree-optimization/34618
4771         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
4772         flag from T.
4773
4774 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
4775
4776         PR target/34673
4777         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
4778         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
4779         Update copyright year.
4780
4781         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
4782         Update copyright year.
4783         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
4784         using NR fixup.
4785
4786 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
4787
4788         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
4789         edge does not point to current bb before changing need_assert.
4790
4791 2008-01-04  Richard Guenther  <rguenther@suse.de>
4792
4793         PR middle-end/34029
4794         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
4795         for verifying purposes if they are is_gimple_min_invariant.
4796
4797 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
4798
4799         PR tree-optimization/34448
4800         PR tree-optimization/34465
4801         * gimplify.c (gimplify_init_constructor): Add new parameter
4802         notify_temp_creation.  Use it.
4803         (gimplify_modify_expr_rhs): Take volatiles into account when
4804         optimizing constructors.
4805         Do not optimize constructors if gimplify_init_constructor will dump to
4806         memory.
4807         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
4808         * gcc.c-torture/compile/pr34448.c: New.
4809
4810 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
4811
4812         PR gcov-profile/34609
4813         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
4814         return_slot if result is TREE_ADDRESSABLE.
4815
4816 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
4817
4818         * config/mips/mips.md (sqrt_condition): Tweak comment.
4819         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
4820
4821 2008-01-03  Tom Tromey  <tromey@redhat.com>
4822
4823         PR c/34457
4824         * c-common.c (c_type_hash): Handle VLAs.
4825
4826 2008-01-03  Jan Hubicka  <jh@suse.cz>
4827
4828         PR tree-optimization/31081
4829         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
4830         0 when inlining and not inlining to first basic block.
4831         (remap_decl): When var is initialized to 0, don't set default_def.
4832         (expand_call_inline): Set entry_bb.
4833         * tree-inline.h (copy_body_data): Add entry_bb.
4834
4835 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
4836
4837         PR c++/34619
4838         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
4839         before returning.
4840
4841         PR tree-optimization/29484
4842         * tree-inline.c (inline_forbidden_p_2): New function.
4843         (inline_forbidden_p): Disallow inlining if some static var
4844         has an address of a local LABEL_DECL in its initializer.
4845         * doc/extend.texi (Labels as Values): Document &&foo behaviour
4846         vs. inlining.
4847
4848 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
4849
4850         PR tree-optimization/34635
4851         * tree-data-ref.c (add_other_self_distances): Make sure that the
4852         evolution step is constant.
4853
4854 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
4855
4856         PR middle-end/34608
4857         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
4858
4859 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
4860
4861         * tree-sra.c (scalarize_init): Insert the generate_element_init
4862         statements after the generate_element_zero statements.
4863
4864 2008-01-02  Richard Guenther  <rguenther@suse.de>
4865
4866         PR middle-end/34093
4867         PR middle-end/31976
4868         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
4869         for very large number of operands instead of ICEing.
4870
4871 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
4872
4873         PR target/34013
4874         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
4875         while stack probing.
4876
4877 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
4878
4879         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
4880         in C++0x mode.
4881
4882 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
4883
4884         PR libmudflap/26442
4885         * tree-mudflap.c (mx_register_decls): Guard warning by
4886         !DECL_ARTIFICIAL check.
4887
4888 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
4889
4890         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
4891         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
4892         sse5_perm<mode>): Fix constraints.