OSDN Git Service

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