OSDN Git Service

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