OSDN Git Service

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