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