Change accidental 2007 dates to 2008.
[official-gcc.git] / gcc / ChangeLog
blob45f5b33de5b988f725b1f4b390388427dd45e106
1 2008-01-30  Richard Henderson  <rth@redhat.com>
3         PR c/34993
4         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
5         for unbounded arrays.
7 2008-01-30  Silvius Rus  <rus@google.com>
9         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
11 2008-01-30  Jan Hubicka  <jh@suse.cz>
13         PR target/34982
14         * i386.c (init_cumulative_args): Use real function declaration when
15         calling locally.
17 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
19         PR rtl-optimization/34998
20         * global.c (build_insn_chain): Treat non-subreg_lowpart
21         SUBREGs of pseudos as clobbering all the words covered by the
22         SUBREG, not just all the bytes.
23         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
24         original df_ref rather than an extract parameter.
25         (global_conflicts): Update call accordingly.
27 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
29         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
30         the overflow check to make it easier to read.
31         (__fixtfdi): Change the type of the ll member in union
32         long_double to UDItype_x.
34 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
36         PR middle-end/34969
37         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
38         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
39         * tree-inline.c (fold_marked_statements): Call
40         cgraph_update_edges_for_call_stmt if folding a call statement.
41         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
42         debug_generic_stmt calls, reset it back afterwards.
44         PR c/35017
45         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
46         static decls.
47         * c-typeck.c (build_external_ref): Don't pedwarn about
48         static vars in current function's scope.
50 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
52         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
54 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
56         PR c/35002
57         * ipa-struct-reorg.c: Fix spelling.
58         * params.def: Ditto.
60 2008-01-29  Richard Guenther  <rguenther@suse.de>
62         PR middle-end/35006
63         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
64         field.
65         * tree-inline.c (remap_type): Increment remapping_type_depth
66         around remapping types.
67         (copy_body_r): Only add referenced variables if they are referenced
68         from code, not types.
70 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
72         PR c++/34055
73         PR c++/34103
74         PR c++/34219
75         PR c++/34606
76         PR c++/34753
77         PR c++/34754
78         PR c++/34755
79         PR c++/34919
80         PR c++/34961
81         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
82         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
84 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
86         PR target/34412
87         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
88         pointer for tiny stack.
90 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
92         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
94 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
96         * config/vx-common.h: Fix typo in comment.
98 2008-01-28  Ian Lance Taylor  <iant@google.com>
100         PR c++/34862
101         PR c++/33407
102         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
103         coalesce pointers if they have different DECL_NO_TBAA_P values.
104         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
105         between variables with different DECL_NO_TBAA_P values.
107 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
109         PR 31535
110         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
111         are not legitimate small data references on SPE targets.
113 2008-01-28  David Daney  <ddaney@avtrex.com>
115         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
117 2008-01-28  David Daney  <ddaney@avtrex.com>
119         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
121 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
123         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
124         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
125         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
126         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
127         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
128         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
129         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
130         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
132 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
134         * basic-block.h (condjump_equiv_p): Fix comment.
136 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
138         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
139         print_generic_stmt_indented): Fix comment.
141 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
143         * configure.ac (__stack_chk_fail): Add detecion for availability
144         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
145         * configure: Regenerate.
147 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
149         PR middle-end/34688
150         * final.c (output_addr_const): Handle TRUNCATE.
152 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
154         PR target/34711
155         * tree-ssa-loop-ivopts.c (comp_cost): New type.
156         (zero_cost, infinite_cost): New constants.
157         (struct cost_pair): Change type of cost to comp_cost.
158         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
159         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
160         New functions.
161         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
162         split_address_cost, ptr_difference_cost, difference_cost,
163         get_computation_cost_at, get_computation_cost,
164         determine_use_iv_cost_generic, determine_use_iv_cost_address,
165         determine_use_iv_cost_condition, determine_use_iv_costs,
166         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
167         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
168         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
169         Change type of cost to comp_cost.
170         (determine_iv_cost): Increase cost of non-original ivs, instead
171         of decreasing the cost of original ones.
172         (get_address_cost): Indicate the complexity of the addressing mode 
173         in comp_cost.
174         (try_add_cand_for): Prefer using ivs not specific to some object.
175         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
177 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
178             Janis Johnson  <janis187@us.ibm.com>
180         PR target/34814
181         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
182         (TARGET_INSTANTIATE_DECLS): Likewise.
183         * target.h (expand_to_rtl_hook): New target hook.
184         (instantiate_decls): Likewise.
185         * function.c (instantiate_decl): Make non-static.  Rename to...
186         (instantiate_decl_rtl): ... this.
187         (instantiate_expr): Use instantiate_decl_rtl.
188         (instantiate_decls_1): Likewise.
189         (instantiate_decls): Likewise.
190         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
191         * function.h (instantiate_decl_rtl): Add prototype.
192         * cfgexpand.c (target.h): New include.
193         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
194         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
195         (TARGET_INSTANTIATE_DECLS): Likewise.
196         (TARGET_INITIALIZER): New target hooks added.
197         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
198         New prototype.
199         * config/rs6000/rs6000.c (tree-flow.h): New include.
200         (machine_function): Add sdmode_stack_slot field.
201         (rs6000_alloc_sdmode_stack_slot): New function.
202         (rs6000_instantiate_decls): Likewise.
203         (rs6000_secondary_memory_needed_rtx): Likewise.
204         (rs6000_check_sdmode): Likewise.
205         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
206         (TARGET_INSTANTIATE_DECLS): Likewise.
207         (rs6000_hard_regno_mode_ok): Allow SDmode.
208         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
209         (rs6000_emit_move): Handle SDmode.
210         (function_arg_advance): Likewise.
211         (function_arg): Likewise.
212         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
213         SDmode var args for 32-bit compiles.
214         (rs6000_secondary_reload_class): Handle SDmode.
215         (rs6000_output_function_epilogue): Likewise.
216         (rs6000_function_value): Simplify if statement.
217         (rs6000_libcall_value): Likewise.
218         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
219         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
220         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
221         (movsd_hardfloat): New define_insn.
222         (movsd_softfloat): Likewise.
223         (movsd_store): Likewise.
224         (movsd_load): Likewise.
225         (extendsddd2): Likewise.
226         (extendsdtd2): Likewise.
227         (truncddsd2): Likewise.
228         (movdd_hardfloat64): Fixup comment.
229         (UNSPEC_MOVSD_LOAD): New constant.
230         (UNSPEC_MOVSD_STORE): Likewise.
232 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
234         PR c++/34965
235         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
236         TRUTH_XOR_EXPR.
237         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
238         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
239         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
240         and TRUTH_XOR_EXPR.
242 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
244         PR target/34794
245         * config.gcc: Separate AIX 5.3 from AIX 6.1.
246         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
247         __LONGDOUBLE128 too.
248         * config/rs6000/aix61.h: New file.
250 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
252         PR rtl-optimization/34959
253         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
254         popcount and parity rtxes the same mode as their operand.
255         Truncate or extend the result to the return value's mode
256         if necessary.
258 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
260         PR target/34981
261         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
262         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
263         to GOT_VERSION_REGNUM.
264         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
265         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
266         * config/mips/mips.c (mips_emit_call_insn): New function.
267         (mips_call_tls_get_addr): Call mips_expand_call directly.
268         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
269         emit_call_insn.
270         (mips16_build_call_stub): Likewise.  Return the call insn or null.
271         (mips_expand_call): Update the call to mips16_build_call_stub
272         accordingly and a remove redundant condition.  Assert that MIPS16
273         stubs do not use lazy binding.  Use mips_emit_call_insn and return
274         the call insn.
275         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
276         TARGET_USE_GOT.
277         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
278         (mips_avoid_hazard): Remove hazard_set handling.
279         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
280         (UNSPEC_RESTORE_GP): ...this.
281         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
282         (FAKE_CALL_REGNO): Rename to...
283         (GOT_VERSION_REGNUM): ...this.
284         (type): Add "ghost" value.  Add an associated insn reservation.
285         (hazard_set): Remove.
286         (exception_receiver): Rename to...
287         (restore_gp): ...this and update the unspec identifier accordingly.
288         (exception_receiver, nonlocal_got_receiver): New expanders.
289         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
290         FAKE_CALL_REGNO.  Remove hazard_set attribute.
291         (set_got_version, update_got_version): New patterns.
293 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
295         PR target/34970
296         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
298 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
300         PR other/31955
301         * doc/install.texi2html: Generate gcc-vers.texi.
303 2008-01-25  DJ Delorie  <dj@redhat.com>
305         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
307 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
309         * config/c4x: Remove directory.
310         * config.gcc (crx-*, mt-*): Mark obsolete.
311         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
312         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
313         sh-*-rtemscoff*): Remove cases.
314         * defaults.h (C4X_FLOAT_FORMAT): Remove.
315         * real.c (encode_c4x_single, decode_c4x_single,
316         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
317         c4x_extended_format): Remove.
318         * real.h (c4x_single_format, c4x_extended_format): Remove.
319         * doc/extend.texi (interrupt, naked): Remove mention of attributes
320         on C4x.
321         (Pragmas): Remove comment about c4x pragmas.
322         * doc/install.texi (c4x): Remove target-specific instructions.
323         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
324         * doc/md.texi (Machine Constraints): Remove C4x documentation.
325         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
326         refer to C4x source files as examples.
327         (C4X_FLOAT_FORMAT): Remove documentation.
329 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
331         * config/bfin/bfin.c (override_options): Reorder tests so that
332         flag_pic gets enabled for -msep-data.
334 2008-01-25  Richard Guenther  <rguenther@suse.de>
336         PR middle-end/32244
337         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
338         to its bitfield precision if required.
340 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
342         PR middle-end/33880
343         * tree-nested.c (walk_omp_for): New function.
344         (convert_nonlocal_reference, convert_local_reference): Call
345         walk_omp_for on OMP_FOR.
346         (convert_call_expr): Call walk_body on OMP_FOR's
347         OMP_FOR_PRE_INIT_BODY.
349 2008-01-25  Richard Guenther  <rguenther@suse.de>
351         PR tree-optimization/34966
352         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
353         default defs and PHI_NODEs we have to insert after the
354         defining statement.
356 2008-01-24  Nick Clifton  <nickc@redhat.com>
358         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
359         Provide a default definition.
360         (LIBGCC2_UNITS_PER_WORD): Likewise.
362         * config/stormy16/stormy16.c: Include df.h for the prototype
363         for df_regs_ever_live_p.
364         (xstormy16_expand_builtin_va_start): Convert the stack offset
365         into a component_ref and then use POINTER_PLUS_EXPR to add it
366         to the incoming_virtual_args_rtx.
367         (xstormy16_gimplify_va_arg_expr): Rename to
368         xstormy16_gimplify_va_arg_expr.
369         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
370         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
371         xstormy16_gimplify_va_arg_expr.
372         Fix up some formatting issues.
374         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
375         Move to predicates.md.
376         (xs_hi_general_operand): Likewise.
377         (xs_hi_nonmemory_operand): Likewise.
378         * config/stormy16/predicates.md:
379         (xstormy16_carry_plus_operand): New predicate.
380         (xs_hi_general_operand): New predicate.
381         (xs_hi_nonmemory_operand): New predicate.
382         * config/stormy16/stormy16-protos.h:
383         (xstormy16_carry_plus_operand): Delete prototype.
384         (xs_hi_general_operand): Likewise.
385         (xs_hi_nonmemory_operand): Likewise.
387         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
388         modifiers as they are no longer needed and they can trigger
389         reload spill failures.
391         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
392         with a match_operand in order to help reload.
394         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
395         constraint with 'e' for the 8th alternative as this version of
396         the mov.w instruction only accepts the lower 8 registers.
398 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
400         PR target/34856
401         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
402         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
403         vector elements.
405 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
407         PR middle-end/33333
408         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
410 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
412         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
413         New functions.
414         (remove_structure): Update allocations list before removing structure.
415         
416 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
418         * ipa-struct-reorg.c (is_safe_cond_expr, 
419         create_new_stmts_for_cond_expr): Use integer_zerop function,
420         that recognize not only zero-pointer, but zero-integer too.
422 2008-01-25  Ben Elliston  <bje@au.ibm.com>
424         PR other/22232
425         * fixproto: Escape "." in sed expression that strips leading "./".
427 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
429         PR driver/34904
430         * gcc.c (SWITCH_OK): Removed.
431         (SWITCH_LIVE): Changed to bit.
432         (SWITCH_FALSE): Likewise.
433         (SWITCH_IGNORE): Likewise.
434         (switchstr): Change live_cond to unsigned int.
435         (process_command): Replace SWITCH_OK with 0.
436         (do_self_spec): Likewise.
437         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
438         (give_switch): Likewise.
439         (used_arg): Likewise.
440         (do_spec_1): Set the SWITCH_IGNORE bit.
441         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
442         bits.  Set the SWITCH_LIVE bit.
444 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
446         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
448 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
450         PR tree-optimization/34472
451         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
452         parameter to a "bool *" and set *DATA to false if there is
453         an unsafe access.  Do not delete the structure here.
454         (check_cond_exprs): Delete it here instead.
455         (check_cond_exprs, exclude_cold_structs): Do not increase
456         I when removing a structure.
458 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
460         PR target/34856
461         * config/i386/i386.c (ix86_expand_vector_init): Consider only
462         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
464 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
466         PR middle-end/34934
467         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
468         a fixed vector for stack.
470 2008-01-24  Ben Elliston  <bje@au.ibm.com>
472         PR c++/25701
473         * doc/gcc.texi (Software development): Add a direntry for g++.
474         
475 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
477         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
478         stale and straggling -fforce-addr comments above.
480         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
481         define.
482         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
483         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
485 2008-01-23  Michael Matz  <matz@suse.de>
487         PR debug/34895
488         * dwarf2out.c (force_type_die): Use modified_type_die instead of
489         gen_type_die.
491 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
493         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
494         malloc result type.
496 2008-01-23 Anatoly Sokolov <aesok@post.ru>
498         * config/avr/avr.c (avr_current_arch): New variable.
499         (avr_arch_types): Add 'avr31' and 'avr51' entries.
500         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
501         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
502         (avr_override_options): Init 'avr_current_arch'. 
503         (base_arch_s): Move from here...
504         * config/avr/avr.h (base_arch_s): ... here. Add new members 
505         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
506         'mega' to 'have_jmp_call'.
507         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
508         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
509         macros.
510         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
511         architectures.
512         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
513         MULTILIB_MATCHES): (Ditto.).
515 2008-01-23  Richard Guenther  <rguenther@suse.de>
517         PR middle-end/31529
518         * cgraphunit.c (cgraph_reset_node): Always mark the node
519         not reachable if it is not queued already.
521 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
523         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
524         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
525         (cputype_selected): New static variable.
526         (bfin_handle_option): Set it if -mcpu is used.
527         (override_option): Select default set of workarounds if no cpu type
528         selected on the command line.
529         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
531         From  Michael Frysinger  <michael.frysinger@analog.com>
532         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
533         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
535         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
536         for bf547, bf523, bf524, and bf526.
537         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
538         bf526.
539         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
540         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
541         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
542         __ADSPBF547__ and __ADSPBF54x__ for bf547.
543         * doc/invoke.texi (Blackfin Options): Document that
544         -mcpu now accept bf547, bf523, bf524, and bf526.
546 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
548         PR rtl-optimization/34628
549         * combine.c (try_combine): Stop and undo after the first combination
550         if an autoincrement side-effect on the first insn has effectively
551         been lost.
553 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
555         PR target/34529
556         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
557         Offset addresses are not valid for Altivec or paired float modes.
559 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
561         PR c++/34607
562         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
563         if DECL_INITIAL (decl) is error_mark_node.
565         PR c++/34914
566         * c-common.c (handle_vector_size_attribute): Only allow
567         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
568         the same way as pointer, array etc. types.
569         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
571         PR c++/34917
572         * tree.c (build_type_attribute_qual_variant): Call
573         build_qualified_type if attributes are equal, but quals are not.
575 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
577         PR 32102
578         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
579         * flags.h (warn_strict_aliasing): Remove.
580         (warn_strict_overflow): Remove.
581         * opts.c (warn_strict_aliasing): Remove.
582         (warn_strict_overflow): Remove.
583         * c-opts.c (c_common_handle_option): -Wall only sets
584         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
585         (c_common_post_options): Give default values to -Wstrict-aliasing
586         and -Wstrict-overflow if they are uninitialized.
587         * common.opt (Wstrict-aliasing): Specify Var and Init.
588         (Wstrict-overflow): Likewise.
590 2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
592         PR rtl-optimization/26854
593         PR rtl-optimization/34400
594         PR rtl-optimization/34884
595         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
596         DF_RD->gen.
597         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
598         (df_rd_bb_info.expanded_lr_out): Deleted
599         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
600         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
601         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
602         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
603         Removed code to allocate, initialize or free expanded_lr_out.
604         (df_rd_bb_local_compute_process_def): Restructured to make more
605         understandable.
606         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
607         sets if the sets are being trimmed.
609 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
611         PR bootstrap/32287
612         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
613         (as_vers): Likewise.
614         * configure: Regenerated.
616 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
618         PR middle-end/33092
619         * tree-pass.h (pass_build_alias): New pass.
620         * tree-ssa-alias.c (gate_build_alias): New.
621         (pass_build_alias): New.
622         * passes.c (init_optimization_passes): Add pass_build_alias after
623         pass_create_structure_vars.
625 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
627         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
628         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
629         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
630         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
631         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
632         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
633         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
634         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
635         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
636         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
637         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
638         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
639         * config/s390/s390.md (FP_ALL): New mode iterator.
640         (_d): New mode attribute.
641         ("*signbit<mode>2>"): Changed mode of first operand.
642         ("isinf<mode>2"): Changed mode of first operand.
643         ("*TDC_insn"): Adaptation for DFP modes.
645 2008-01-22  Ben Elliston  <bje@au.ibm.com>
647         * tree.c (check_qualified_type): Improve function description.
649 2008-01-21  Jason Merrill  <jason@redhat.com>
651         PR c++/34196
652         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
653         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
654         if it is set.
656 2008-01-21  DJ Delorie  <dj@redhat.com>
658         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
659         return zero.
661 2008-01-21  Richard Guenther  <rguenther@suse.de>
663         PR middle-end/34856
664         * tree-cfg.c (verify_expr): Allow all invariant expressions
665         instead of just constant class ones as reference argument.
666         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
667         like any other constant.
668         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
670 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
672         * regmove.c (fixup_match_1): Update call crossed frequencies.
674 2008-01-21  Richard Guenther  <rguenther@suse.de>
676         PR c/34885
677         * tree-inline.c (setup_one_parameter): Deal with mismatched
678         types using a VIEW_CONVERT_EXPR.
680 2008-01-21  Alon Dayan  <alond@il.ibm.com>
681             Olga Golovanevsky  <olga@il.ibm.com>
682         
683         PR tree-optimization/34701
684         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
685         when the structure size is not a power of 2.
687 2008-01-20  Kenneth Zadeck <zadeck@naturalbridge.com>
689         * doc/install.texi: Add doc for --enable-checking=df.
690         
691 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
693         PR rtl-optimization/34808
694         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
696 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
698         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
699         input.
701 2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
703         PR rtl-optimization/26854
704         PR rtl-optimization/34400
705         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
706         DF_RD->gen.
707         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
708         (df_rd_bb_info.expanded_lr_out): New.
709         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
710         * loop_iv.c (iv_analysis_loop_init): Ditto.
711         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
712         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
713         Added code to allocate, initialize or free expanded_lr_out.
714         (df_rd_bb_local_compute_process_def): Restructured to make
715         more understandable.
716         (df_rd_confluence_n): Add code to do nothing with fake edges and
717         code to no apply invalidate_by_call sets if the sets are being trimmed.
718         (df_lr_local_finalize): Renamed to df_lr_finalize.
719         (df_live_local_finalize): Renamed to df_live_finalize.
721 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
723         PR target/34831
724         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
725         deciding whether to use reciprocal instructions.
727 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
729         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
730         dwarf2out_note_section_used if cold_text_section is NULL.
732 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
734         PR gcov-profile/34610
735         * tree-cfg.c (make_edges): Mark both outgoing edges from
736         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
737         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
738         from OMP_FOR and OMP_CONTINUE outgoing edges.
740         * tree-profile.c (tree_profiling): Return early if
741         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
742         at the end.
743         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
744         from cfun to child_cfun.
745         * function.h (struct function): Add after_tree_profile bit.
747 2008-01-19 Anatoly Sokolov <aesok@post.ru>
749         * config/avr/avr.S (_exit): Disable interrupt.
751 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
752             Steven Bosscher  <stevenb.gcc@gmail.com>
754         PR rtl-optimization/26854
755         PR rtl-optimization/34400
756         * df-problems.c (df_live_scratch): New scratch bitmap.
757         (df_live_alloc): Allocate df_live_scratch when doing df_live.
758         (df_live_reset): Clear the proper bitmaps.
759         (df_live_bb_local_compute): Only process the artificial defs once
760         since the order is not important.
761         (df_live_init): Init the df_live sets only with the variables
762         found live by df_lr.
763         (df_live_transfer_function): Use the df_lr sets to prune the
764         df_live sets as they are being computed.  
765         (df_live_free): Free df_live_scratch.
767 2008-01-18  Ian Lance Taylor  <iant@google.com>
769         * common.opt: Add fmerge-debug-strings.
770         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
771         flag_merge_debug_strings rather than flag_merge_constants.
772         * doc/invoke.texi (Option Summary): Mention
773         -fmerge-debug-strings.
774         (Debugging Options): Document -fmerge-debug-strings.
776 2008-01-18  Ian Lance Taylor  <iant@google.com>
778         PR c++/33407
779         * tree.h (DECL_IS_OPERATOR_NEW): Define.
780         (struct tree_function_decl): Add new field operator_new_flag.
781         * tree-inline.c (expand_call_inline): When inlining a call to
782         operator new, force the return value to go into a variable, and
783         set DECL_NO_TBAA_P on that variable.
784         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
786 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
788         PR debug/34484
789         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
790         DWARF2_DEBUGGING_INFO.
791         (dwarf2out_note_section_used): Ditto.  Add prototype.
792         (have_multiple_function_sections, text_section_used,
793         cold_text_section_used, *cold_text_sections): Move declarations
794         before their uses.
796 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
798         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
799         field and add signal_ra.
800         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
801         assignments to frame state pc.  Move end of stack check after
802         MD_FALLBACK_FRAME_STATE_FOR.
803         (uw_update_context_1): Use frame state signal_regs if set, instead
804         of checking signal_frame flag.
805         (uw_update_context): Use frame state signal_ra if set.
806         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
807         * config/xtensa/linux-unwind.h: New file.
809 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
811         * modulo-sched.c (get_sched_window): Fix comment typo.
813 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
815         PR tree-optimization/34648
816         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
818 2008-01-17  Anatoly Sokolov <aesok@post.ru>
820         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
821         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
823 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
825         PR rtl-optimization/34400
826         * df-core.c (df_worklist_dataflow_overeager,
827         df_worklist_dataflow_doublequeue): New functions.
828         (df_worklist_dataflow): Two different worklist solvers.
829         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
830         New param.
832 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
834         PR testsuite/34821
835         * doc/invoke.texi: Document the dependence on pthread for fopenmp
836         and ftree-parallelize-loops.
838 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
840         PR rtl-optimization/34826
841         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
843 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
845         * global.c (find_reg): Mark the eh regs as used if necessary.
846         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
847         * ra.h (struct allocno): no_eh_reg field added.  Changed
848         no_stack_reg type to bitfield.
850 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
852         * tree.c (substitute_in_expr): Add missing 'break'.
854 2008-01-17  Richard Guenther  <rguenther@suse.de>
856         PR tree-optimization/34825
857         * tree-ssa-math-opts.c (is_division_by): Do not recognize
858         x / x as division to handle.
860 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
862         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
863         "-pthread" is specified.
864         * pa-hpux11.h (LIB_SPEC): Likewise.
866 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
867             Peter Bergner  <bergner@vnet.ibm.com>
869         PR rtl-optimization/33796
870         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
872 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
874         PR libgfortran/34699
875         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
876         static links.
877         * pa-hpux10.h (LINK_SPEC): Likewise.
878         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
880 2008-01-16  Richard Guenther  <rguenther@suse.de>
882         PR middle-end/32628
883         * fold-const.c (fold_convert_const_int_from_int): Do not
884         set overflow if that occured only because of a sign extension
885         change when converting from/to a sizetype with the same
886         precision and signedness.
888 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
890         PR debug/34249
891         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
892         location address to the correct place.  Update copyright year.
894 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
896         * lambda-code.c (lambda_transform_legal_p): Handle the case of
897         no dependences in the dependence_relations vector.
899 2008-01-16  Jan Hubicka  <jh@suse.cz>
901         PR rtl-optimization/31396
902         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
903         * cfg.c (dump_reg_info): Print it.
904         * regs.h (struct reg_info_t): add freq_calls_crossed.
905         (REG_FREQ_CALLS_CROSSED): New macro.
906         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
907         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
908         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
909         regmove_optimize): Update call crossed frequencies.
910         * local-alloc.c (struct qty): Add freq_calls_crossed.
911         (alloc_qty): Copute freq_calls_crossed.
912         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
913         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
914         * ra.h (struct allocno): Add freq_calls_crossed.
916 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
918         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
919         libgomp when compiling with ftree-parallelize-loops.
920         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
922 2008-01-16  Richard Guenther  <rguenther@suse.de>
924         PR tree-optimization/34769
925         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
926         * tree.c (int_cst_value): Instead make this function more
927         permissive in what it accepts as valid input.  Document this
928         function always sign-extends the value.
930 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
931             Richard Guenther  <rguenther@suse.de>
933         PR c/34668
934         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
935         (gimple_fold_indirect_ref_rhs): ... this.
936         (gimple_fold_indirect_ref): New function with foldings
937         that preserve lvalueness.
938         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
939         * tree-flow.h (gimple_fold_indirect_ref): Declare.
940         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
941         to fold an INDIRECT_REF, fall back to the old use of
942         fold_indirect_ref_1.
944 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
946         * tree-data-ref.c (subscript_dependence_tester_1): Call 
947         free_conflict_function.
948         (compute_self_dependence): Same.
950 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
952         PR debug/34249
953         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
954         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
955         function global.
956         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
957         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
958         for DWARF2_UNWIND_INFO targets.
960 2008-01-16  Richard Guenther  <rguenther@suse.de>
962         PR c/34768
963         * c-typeck.c (common_pointer_type): Do not merge inconsistent
964         type qualifiers for function types.
966 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
968         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
969         loop_iterator li from previous commit.
971 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
973         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
975 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
977         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
978         (parallelize_loops): Don't parallelize irreducible components.
980 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
982         PR c++/24924
983         * c-opts (c_common_post_options): Do not enable CPP
984         flag_pedantic_errors by default.
985         
986 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
988         PR rtl-optimization/31944
989         * cse.c (remove_pseudo_from_table): New function.
990         (merge_equiv_classes): Use above function to remove pseudo-registers.
991         (invalidate): Likewise.
993 2008-01-13  Richard Guenther  <rguenther@suse.de>
995         PR middle-end/34601
996         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
997         instead of TYPE_MODE to deal with calls from expand_one_error_var.
999 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
1001         * gcse.c (cprop_jump): Call validate_unshare_change instead of
1002         validate_change to unshare the source of the PC set.
1004 2008-01-12  Jan Hubicka  <jh@suse.cz>
1006         PR middle-end/32135
1007         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
1008         references above array bounds.  This might trigger bounds checks for
1009         pointers to arrays.
1011 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
1013         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
1014         new_replaceable_dependencies.
1016 2008-01-12  Doug Kwan  <dougkwan@google.com>
1018         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
1019         instead of OPT_Wreturn_type in warning due to ignored return type
1020         qualifiers.
1021         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
1022         options included in -Wextra.
1023         * c.opt: New option -Wignored_qualifiers.
1024         * doc/invoke.texi (Warning Options, -Wextra): Add new option
1025         -Wignore_qualifiers.
1026         (-Wignored-qualifiers): Document.
1027         (-Wreturn-type): Remove description of functionality now handled
1028         by -Wignored-qualifiers.
1030 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
1032         PR ada/33788
1033         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
1034         NOP_EXPR if it is between integral types with the same precision.
1036 2008-01-12  Jan Hubicka  <jh@suse.cz>
1038         PR other/28023
1039         * invoke.texi (max-inline-recursive-depth): Fix default value.
1041 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
1043         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
1044         correct type.
1046 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
1047         
1048         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
1049         
1050 2008-01-11  James E. Wilson  <wilson@specifix.com>
1052         PR target/26015
1053         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
1055 2008-01-11  Anatoly Sokolov <aesok@post.ru>
1057         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
1058         save/restore frame pointer register and don't use 'call-prologues' 
1059         optimization in function with "OS_task" attribute.
1061 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
1063         PR middle-end/31309
1064         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
1065         when copying to memory.
1067 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
1069         PR rtl-optimization/30905
1070         * cfgcleanup.c: Include dce.h
1071         (crossjumps_occured): New global variable.
1072         (try_crossjump_bb): Exit loop after finding a fallthru edge.
1073         If something changed, set crossjumps_occured to true.
1074         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
1075         Don't add/remove fake edges to exit here...
1076         (cleanup_cfg): ...but do it here, when crossjumping.
1077         Run a fast DCE when successful crossjumps occured in the latest
1078         iteration of try_optimize_cfg.
1080 2008-01-11  Richard Guenther  <rguenther@suse.de>
1082         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
1083         (struct vn_unary_op_s): Likewise.
1084         (vn_reference_insert): Free old reference on hash collision.
1086 2008-01-10  Raksit Ashok  <raksit@google.com>
1088         PR rtl-optimization/27971
1089         * combine.c (find_split_point): Split PLUS expressions which are
1090         inside a MEM rtx, and whose first operand is complex.
1092 2008-01-10  DJ Delorie  <dj@redhat.com>
1094         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
1095         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
1096         (m32c_hard_regno_ok): Call the underlying function.
1098 2008-01-10  Richard Guenther  <rguenther@suse.de>
1100         PR middle-end/34683
1101         * tree-cfg.c (tree_merge_blocks): Do not go through the
1102         full-blown folding and stmt updating path if we just deal
1103         with virtual operands.
1104         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
1105         test for abnormal SSA_NAMEs.
1107 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
1109         PR middle-end/34641
1110         * reload.c (push_reload): Add assertions.  All constants from
1111         reg_equiv_constant should have been used for replacing the respective
1112         pseudo earlier.
1113         (find_reloads_address): Invoke find_reloads_address_part for
1114         constant taken from the reg_equiv_constant array.
1116 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
1118         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
1119         field (valnum) the first in the struct.  Replace bools with
1120         unit bit fields.
1122 2008-01-10  Richard Guenther  <rguenther@suse.de>
1124         PR tree-optimization/34651
1125         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
1126         types and ordering for masking and converting.
1128 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
1130         PR tree-optimization/34017
1131         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
1132         also for PHI_NODE expressions.
1134 2008-01-09  Jan Hubicka  <jh@suse.cz>
1136         PR tree-optimization/34708
1137         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
1138         based on number of case labels.
1139         (init_inline_once): Remove switch_cost.
1140         * tree-inline.h (eni_weights_d): Remove switch_cost.
1142 2008-01-09  Richard Guenther  <rguenther@suse.de>
1143         Andrew Pinski  <andrew_pinski@playstation.sony.com>
1145         PR middle-end/30132
1146         * gimplify.c (gimplify_cond_expr): Do not create an addressable
1147         temporary if an rvalue is ok or an lvalue is not required.
1149 2008-01-09  Richard Guenther  <rguenther@suse.de>
1151         PR middle-end/34458
1152         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
1153         adjust return type.
1155 2008-01-09  Richard Guenther  <rguenther@suse.de>
1157         PR middle-end/34679
1158         * tree.c (host_integerp): Check for sizetype only if the
1159         type is an integer type.
1161 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
1163         PR debug/26364
1164         * opts.c (decode_options): Disable inlining of functions called
1165         once if not in unit-at-a-time mode.
1167 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
1169         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
1171 2008-01-08  Richard Guenther  <rguenther@suse.de>
1173         PR middle-end/31863
1174         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
1175         out early if the result will be unused.
1177 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
1179         PR target/34709
1180         Revert:
1182         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
1183         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
1184         for TARGET_RECIP.       
1185         
1186 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
1187         
1188         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
1189         for vectorization tuned.
1190         
1191 2008-01-08  Richard Guenther  <rguenther@suse.de>
1193         PR tree-optimization/34683
1194         * tree-ssa-operands.c (operand_build_cmp): Export.
1195         * tree-ssa-operands.h (operand_build_cmp): Declare.
1196         * tree-vn.c (vuses_compare): Remove.
1197         (sort_vuses): Use operand_build_cmp.
1198         (sort_vuses_heap): Likewise.
1199         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
1200         to re-use old VEC if available.  Do not sort already sorted VUSEs.
1201         (vdefs_to_vec): Do not sort already sorted VDEFs.
1203 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
1205         PR middle-end/34694
1206         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
1208 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
1210         PR target/34702
1211         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
1212         limitations of reciprocal sequences on x86 targets.
1214 2008-01-08  Richard Guenther  <rguenther@suse.de>
1216         PR tree-optimization/34683
1217         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
1219 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
1221         PR target/34622
1222         * config/darwin.c (darwin_mergeable_string_section): Don't use
1223         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
1225 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
1227         PR target/34682
1228         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
1229         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
1230         predicates of op0 and op1 to register_operand.
1231         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
1232         expander using X87MODEF mode iterator.  Change predicates of
1233         op0 and op1 to register_operand.
1234         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
1235         corresponding patterns and macroize using MODEF macro.  Change
1236         predicates of op0 and op1 to register_operand and remove
1237         "m" constraint. Disparage "r" alternative with "!".
1238         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
1239         macroize using X87MODEF macro.  Change predicates of op0 and op1
1240         to register_operand and remove "m" constraint.  Disparage "r"
1241         alternative with "!".
1242         (absneg splitter with memory operands): Remove.
1243         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
1244         patterns and macroize using X87MODEF mode iterator.
1245         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
1246         Change predicate of op1 to register_operand.
1247         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
1248         for memory operands.
1250 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
1252         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
1254 2008-01-07  Richard Guenther  <rguenther@suse.de>
1256         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
1257         fields.
1259 2008-01-07  Richard Guenther  <rguenther@suse.de>
1261         PR tree-optimization/34683
1262         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
1263         VOPs of the needed size to save memory.  Use VEC_quick_push
1264         to save compile-time.
1265         (vdefs_to_vec): Likewise.
1267 2008-01-07  Sa Liu  <saliu@de.ibm.com>
1269         * config/spu/spu.md (divdf3): Genetate inline code for double
1270         division.  The implementation doesn't handle INF or NAN, therefore it
1271         only applies when -ffinite-math-only is given.
1273 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
1275         PR libstdc++/34680
1276         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
1277         * doc/cpp.texi ([Common Predefined Macros]): Document.
1279 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
1281         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
1282         order to use commutative addition instead of subtraction.
1284 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1285             Mircea Namolaru  <namolaru@il.ibm.com>
1286             Vladimir Yanovsky  <yanov@il.ibm.com>
1287             Revital Eres  <eres@il.ibm.com>
1289         PR tree-optimization/34263
1290         * tree-outof-ssa.c (process_single_block_loop_latch,
1291         contains_tree_r): New functions.
1292         (analyze_edges_for_bb): Call process_single_block_loop_latch
1293         function to empty single-basic-block latch block if possible.
1295 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
1297         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
1298         for TARGET_RECIP.
1299         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
1301 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
1303         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
1305 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
1307         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
1309 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
1311         PR tree-optimization/34618
1312         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
1313         flag from T.
1315 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
1317         PR target/34673
1318         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
1319         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
1320         Update copyright year.
1322         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
1323         Update copyright year.
1324         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
1325         using NR fixup.
1327 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
1329         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
1330         edge does not point to current bb before changing need_assert.
1332 2008-01-04  Richard Guenther  <rguenther@suse.de>
1334         PR middle-end/34029
1335         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
1336         for verifying purposes if they are is_gimple_min_invariant.
1338 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
1340         PR tree-optimization/34448
1341         PR tree-optimization/34465
1342         * gimplify.c (gimplify_init_constructor): Add new parameter
1343         notify_temp_creation.  Use it.
1344         (gimplify_modify_expr_rhs): Take volatiles into account when
1345         optimizing constructors.
1346         Do not optimize constructors if gimplify_init_constructor will dump to
1347         memory.
1348         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
1349         * gcc.c-torture/compile/pr34448.c: New.
1351 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
1353         PR gcov-profile/34609
1354         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
1355         return_slot if result is TREE_ADDRESSABLE.
1357 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
1359         * config/mips/mips.md (sqrt_condition): Tweak comment.
1360         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
1362 2008-01-03  Tom Tromey  <tromey@redhat.com>
1364         PR c/34457
1365         * c-common.c (c_type_hash): Handle VLAs.
1367 2008-01-03  Jan Hubicka  <jh@suse.cz>
1369         PR tree-optimization/31081
1370         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
1371         0 when inlining and not inlining to first basic block.
1372         (remap_decl): When var is initialized to 0, don't set default_def.
1373         (expand_call_inline): Set entry_bb.
1374         * tree-inline.h (copy_body_data): Add entry_bb.
1376 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
1378         PR c++/34619
1379         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
1380         before returning.
1382         PR tree-optimization/29484
1383         * tree-inline.c (inline_forbidden_p_2): New function.
1384         (inline_forbidden_p): Disallow inlining if some static var
1385         has an address of a local LABEL_DECL in its initializer.
1386         * doc/extend.texi (Labels as Values): Document &&foo behaviour
1387         vs. inlining.
1389 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
1391         PR tree-optimization/34635
1392         * tree-data-ref.c (add_other_self_distances): Make sure that the
1393         evolution step is constant.
1395 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
1397         PR middle-end/34608
1398         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
1400 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
1402         * tree-sra.c (scalarize_init): Insert the generate_element_init
1403         statements after the generate_element_zero statements.
1405 2008-01-02  Richard Guenther  <rguenther@suse.de>
1407         PR middle-end/34093
1408         PR middle-end/31976
1409         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
1410         for very large number of operands instead of ICEing.
1412 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
1414         PR target/34013
1415         * gcc/config/i386/i386.c (ix86_expand_prologue): Save red-zone
1416         while stack probing.
1418 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
1420         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
1421         in C++0x mode.
1423 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
1425         PR libmudflap/26442
1426         * tree-mudflap.c (mx_register_decls): Guard warning by
1427         !DECL_ARTIFICIAL check.
1429 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
1431         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
1432         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
1433         sse5_perm<mode>): Fix constraints.