OSDN Git Service

2f6ea171a92042fd7e45ff0639ba666affc9fda0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/38428
4         * tree-ssa-operands.c (get_expr_operands) <case BIT_FIELD_REF>: Set
5         gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.
6
7 2008-12-07  Ben Elliston  <bje@au.ibm.com>
8
9         * gthr-single.h (__gthread_once): Adjust prototype to match all
10         other gthreads models.
11
12 2008-12-06  Jakub Jelinek  <jakub@redhat.com>
13
14         * config/i386/i386.c (override_options): Use CPU_AMDFAM10
15         instead of PROCESSOR_AMDFAM10 for barcelona's schedule.
16
17         PR middle-end/38422
18         * fold-const.c (fold_unary) <CASE_CONVERT>: Don't convert MULT_EXPR
19         operands to mult_type if it isn't narrower than op0's type.
20
21 2008-12-06  Jan Hubicka  <jh@suse.cz>
22             Jakub Jelinek <jakub@redhat.com>
23
24         PR tree-optimization/38074
25         * cgraphbuild.c (compute_call_stmt_bb_frequency): Fix handling of 0
26         entry frequency.
27         * predict.c (combine_predictions_for_bb): Ignore predictor predicting
28         in both dirrection for first match heuristics.
29         (tree_bb_level_predictions): Disable noreturn heuristic when there
30         is no returning path.
31
32 2008-12-05  Bernd Schmidt  <bernd.schmidt@analog.com>
33
34         PR rtl-optimization/38272
35         * reload1.c (choose_reload_regs): Keep reload_spill_index correct
36         in all cases.
37
38 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
39
40         PR c++/35336
41         * c-pretty-print.c (pp_c_postfix_expression): Handle BIT_FIELD_REF.
42         (pp_c_expression): Likewise.
43
44 2008-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
45
46         PR c/38416
47         * c-parser.c (struct c_token): Make pragma_kind 8 bits.
48
49 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
50
51         PR middle-end/37248
52         * fold-const.c (make_bit_field_ref): Change bitpos and bitsize
53         arguments to HOST_WIDE_INT.  If type has different signedness
54         than unsignedp or different precision from bitsize, create
55         the right type for BIT_FIELD_REF and cast to type.
56         (fold_truthop): Change first_bit and end_bit to HOST_WIDE_INT.
57
58         Revert:
59         2008-03-05  Richard Guenther  <rguenther@suse.de>
60         PR c++/35336
61         * fold-const.c (fold_truthop): Remove code generating
62         BIT_FIELD_REFs of structure bases.
63         (fold_binary): Likewise.
64         (make_bit_field_ref): Remove.
65         (optimize_bit_field_compare): Remove.
66         (all_ones_mask_p): Remove.
67
68 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
69
70         * tree-sra.c (sra_explode_bitfield_assignment): Always
71         call unsigned_type_for, if the precision is higher than
72         needed, call build_nonstandard_integer_type.
73
74         PR debug/38367
75         * function.c (assign_parm_find_stack_rtl): If promoted_mode
76         is wider than DECL_MODE, adjust MEM_OFFSET (stack_parm) for
77         big endian.
78
79         PR middle-end/38338
80         * builtins.c (expand_builtin_apply_args): Put before parm_birth_insn
81         only if internal_arg_pointer is a non-virtual pseudo.
82
83 2008-12-05  Joseph Myers  <joseph@codesourcery.com>
84
85         * config/rs6000/rs6000.md (move_from_CR_gt_bit): Enable for
86         TARGET_HARD_FLOAT && !TARGET_FPRS, not TARGET_E500.
87         * config/rs6000/spe.md (e500_cr_ior_compare): Likewise.
88
89 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
90
91         PR tree-optimization/37716
92         * gimplify.c (gimplify_expr): Allow COND_EXPR if
93         gimplify_ctxp->allow_rhs_cond_expr.
94
95 2008-12-05  Uros Bizjak  <ubizjak@gmail.com>
96
97         * config/alpha/alpha.c (alpha_fold_vector_minmax): Create
98         VIEW_CONVERT_EXPR to convert output to long_integer_type_node.
99
100         (alpha_emit_conditional_branch): Do not generate direct branch
101         for UNORDERED comparisons.
102
103 2008-12-05  Andreas Schwab  <schwab@suse.de>
104
105         * config/rs6000/linux-unwind.h (frob_update_context): Check for
106         NULL lr.
107
108 2008-12-05  Jakub Jelinek  <jakub@redhat.com>
109
110         PR c/38408
111         * fold-const.c (fold_checksum_tree): Change buf type to union
112         tree_node.
113
114 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
115
116         PR bootstrap/38262
117         * Makefile.in (LIBS): Remove GMPLIBS, CLOOGLIBS and PPLLIBS.
118         (BACKENDLIBS): New.
119         (cc1-dummy, cc1): Add BACKENDLIBS, remove GMPLIBS.
120
121 2008-12-05  Ben Elliston  <bje@au.ibm.com>
122
123         * c-parser.c (c_parser_enum_specifier): Initialise ident_loc and
124         comma_loc.
125         (c_parser_initelt): Initialise des_loc and ellipsis_loc.
126
127 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
128             Gary Funck  <gary@intrepid.com>
129
130         * cse.c (lookup_as_function): Delete mode frobbing code.
131         (equiv_constant): Re-implement it there for SUBREGs.
132
133 2008-12-04  Richard Guenther  <rguenther@suse.de>
134
135         PR middle-end/36509
136         * Makefile.in (tree-ssa-alias-warnings.o): Remove.
137         (tree-ssa-structalias.o): Remove errors.h dependency.
138         (tree-ssa-reassoc.o): Likewise.
139         * tree-ssa-reassoc.c: Do not include errors.h.
140         * tree-ssa-alias-warnings.c: Remove.
141         * tree-ssa-alias.c (compute_may_aliases): Remove call to
142         strict_aliasing_warning_backend.
143         * tree-ssa-structalias.c (emit_pointer_definition): New function.
144         (emit_alias_warning): Likewise.
145         (set_uids_in_ptset): Warn for clear cases of type-punning.
146         * tree-inline.c (remap_gimple_op_r): Preserve TREE_NO_WARNING
147         on INDIRECT_REFs.
148
149 2008-12-04  Eric Botcazou  <ebotcazou@adacore.com>
150
151         * cse.c (equiv_constant): Fix pasto.
152
153 2008-12-04  Nick Clifton  <nickc@redhat.com>
154
155         * config/stormy16/stormy16.md: Remove extraneous spaces and quotes.
156         * config/stormy16/stormy16.c: Remove extraneous spaces and fix up
157         formatting of quotes.
158
159 2008-12-04  Jakub Jelinek  <jakub@redhat.com>
160
161         PR middle-end/38371
162         * fold-const.c (fold_checksum_tree): Allow modification of
163         TYPE_NEXT_VARIANT.
164
165 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
166
167         PR middle-end/38360
168         * tree-ssa-ccp.c (ccp_fold_builtin): Bail out if the builtin doesn't
169         have the right number of arguments.
170
171 2008-12-03  Richard Guenther  <rguenther@suse.de>
172
173         PR middle-end/36326
174         * gimplify.c (is_gimple_mem_or_call_rhs): Remove work-around for
175         non-BLKmode types.
176
177 2008-12-03  Tomas Bily  <tbily@suse.cz>
178
179         PR middle-end/38250
180         * tree-loop-distribution.c (build_size_arg): New function.
181         (generate_memset_zero): Checks if dr_analyze_innermost succeed.
182         Reorganized generating of stmts.
183         * testsuite/gcc.dg/tree-ssa/pr38250.c: New file.
184         * tree-data-ref.c (dr_analyze_innermost): Returns bool.
185         Indicate if analysis succeed.
186         * tree-data-ref.h (dr_analyze_innermost): Returns bool.
187         * tree-predcom.c (valid_initializer_p, find_looparound_phi):
188         Uses new definition of dr_analyze_innermost.
189
190 2008-12-03  Ben Elliston  <bje@au.ibm.com>
191
192         * tree-ssa-pre.c (do_regular_insertion): Initialise edoubleprime.
193
194 2008-12-03  Jakub Jelinek  <jakub@redhat.com>
195
196         PR tree-optimization/37716
197         * tree-sra.c (sra_build_assignment): For scalar bitfield SRC construct
198         all the needed operations as trees and gimplify_assign it to dst.
199
200         PR target/37610
201         * configure.ac (gcc_cv_readelf): Look for readelf.
202         (gcc_cv_as_cfi_advance_working): Check for working
203         cfi advances with code alignment factor > 1.
204         (HAVE_GAS_CFI_DIRECTIVE): Don't define if cfi advances
205         don't work properly.
206         * configure: Regenerated.
207
208 2008-12-03  Eric Botcazou  <ebotcazou@adacore.com>
209             Jakub Jelinek  <jakub@redhat.com>
210             Andrew Pinski  <andrew_pinski@playstation.sony.com>
211
212         PR rtl-optimization/38281
213         * combine.c (distribute_notes): When invoking SET_INSN_DELETED on i2,
214         set it to NULL_RTX afterwards.
215
216         * emit-rtl.c (set_insn_deleted): Fix formatting.
217
218 2008-12-02  Richard Sandiford  <rdsandiford@googlemail.com>
219
220         * config/mips/mips.c (mips_expand_builtin): Fix the mode of the
221         error return value.
222         * config/mips/mips.md (IMOVE32): New mode iterator.
223         (movsi): Generalize with IMOVE32.
224         (*movsi_internal): Likewise.
225         (*mov<mode>_mips16): Likewise.
226         (*lwxs): Likewise.
227
228 2008-12-02  Nathan Sidwell  <nathan@codesourcery.com>
229             Maxim Kuvyrkov  <maxim@codesourcery.com>
230
231         * config/m68k/lb1sf68.asm (PICCALL, PICJUMP): Use GOT instead of
232         PC-relative addressing when compiling for uclinux PIC.
233         (__cmpdf_internal, __cmpsf_internal): Hide.
234         (__cmpdf, __cmpsf): Use PIC call sequence.
235
236 2008-12-02  Andreas Tobler  <a.tobler@schweiz.org>
237             Jack Howarth <howarth@bromo.med.uc.edu>
238
239         * config/i386/t-darwin64: Add m32 multilib support.
240
241 2008-12-02  Jack Howarth  <howarth@bromo.med.uc.edu>
242
243         * testsuite/gcc.dg/darwin-comm.c: Expand to darwin10 and later.
244
245 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
246
247         PR middle-end/38343
248         * builtins.c (fold_builtin_memory_op): Convert len to sizetype
249         before using it in POINTER_PLUS_EXPR.
250
251 2008-12-02  Richard Guenther  <rguenther@suse.de>
252
253         PR tree-optimization/38359
254         * fold-const.c (fold_binary): Fold -1 >> x to -1 only for
255         non-negative x.
256
257 2008-12-02  Martin Jambor  <mjambor@suse.cz>
258
259         PR middle-end/37861
260         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
261         for INDIRECT_REFs.
262         (forward_propagate_addr_into_variable_array_index): Check that the
263         offset is not computed from a MULT_EXPR, use is_gimple_assign rather
264         than the gimple code directly.
265
266 2008-12-02  Ben Elliston  <bje@au.ibm.com>
267
268         * config/spu/float_disf.c (__floatdisf): Prototype.
269         * config/spu/float_unsdisf.c (__float_undisf): Likewise.
270         * config/spu/float_unssidf.c (__float_unssidf): Constify cast.
271         * config/spu/float_unsdidf.c (__float_unsdidf): Likewise.
272
273 2008-12-02  DJ Delorie  <dj@redhat.com>
274
275         * config/stormy16/stormy16.h (INCOMING_FRAME_SP_OFFSET): Negate.
276         (DWARF_CIE_DATA_ALIGNMENT): Define.
277
278         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout):
279         Invert add/sub for INCOMING_FRAME_SP_OFFSET.
280         (xstormy16_expand_prologue): Likewise.
281         (xstormy16_expand_builtin_va_start): Likewise.
282         (xstormy16_gimplify_va_arg_expr): Likewise.
283
284 2008-12-02  Jakub Jelinek  <jakub@redhat.com>
285
286         PR middle-end/38343
287         * builtins.c (expand_builtin_mempcpy_args): Handle COMPOUND_EXPRs
288         potentially returned from folding memcpy.
289         (expand_builtin_stpcpy_args): Similarly for folding strcpy.
290         (fold_builtin_2): Handle BUILT_IN_STPCPY if result is ignored.
291
292 2008-12-02  Danny Smith  <dannysmith@users.sourceforge.net>
293
294         PR target/38054
295         * config/i386/winnt.c (i386_pe_encode_section_info): Condition stdcall
296         decoration of function RTL names here on Ada language.
297
298 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
299
300         PR rtl-optimization/38280
301         * ira-build.c (loop_is_inside_p, regno_allocno_order_compare_func,
302         ira_rebuild_regno_allocno_list): New functions.
303         (regno_allocnos): New static variable.
304         (remove_unnecessary_allocnos): Allocate/deallocate regno_allocnos.
305         Call ira_rebuild_regno_allocno_list.
306
307 2008-12-01  David Daney  <ddaney@caviumnetworks.com>
308             Adam Nemet  <anemet@caviumnetworks.com>
309
310         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add
311         LINUX_DRIVER_SELF_SPECS.
312
313 2008-12-01  Vladimir Makarov  <vmakarov@redhat.com>
314
315         PR rtl-optimization/37514
316         * reload1.c (reload_as_needed): Invalidate reg_last_reload
317         from previous insns.
318
319 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
320
321         PR c++/38348
322         * c-omp.c (c_finish_omp_for): Only transform pointer
323         ++ or -- into MODIFY_EXPR if second argument is non-NULL.
324
325         PR rtl-optimization/38245
326         * tree-vrp.c (abs_extent_range): New function.
327         (extract_range_from_binary_expr): Compute range
328         for *_DIV_EXPR even if vr1 is VR_VARYING, VR_ANTI_RANGE
329         or includes zero or if vr1 is VR_RANGE and op0 has some
330         other range.
331
332 2008-12-01  Uros Bizjak  <ubizjak@gmail.com>
333
334         PR middle-end/37908
335         * config/alpha/alpha.c (alpha_split_atomic_op): Properly handle NAND
336         case by calculating ~(new_reg & val) instead of (~new_reg & val).
337         * config/alpha/sync.md (sync_nand<mode>): Change insn RTX
338         to (not:I48MODE (and:I48MODE (...))).
339         (sync_old_nand<mode>): Ditto.
340         (sync_new_nand<mode>): Ditto.
341
342 2008-12-01  Nick Clifton  <nickc@redhat.com>
343
344         * config/stormy16/stormy16.md (CARRY_REG): New constant.
345         Replace uses of the "y" register class with direct references to
346         the CARRY_REG register.
347         * config/stormy16/stormy16.c: Replace clobbers of a BImode scratch
348         register with clobbers of the carry register.
349         (xstormy16_secondary_reload_class): Do not return CARRY_REGS.
350         (xstormy16_split_cbranch): Remove redundant carry parameter.
351         (xstormy16_expand_arith): Likewise.
352         * config/stormy16/stormy16.h (enum reg_class): Remove CARRY_REGS.
353         (IRA_COVER_CLASSES, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
354         REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
355         (CARRY_REGNUM): Define.
356         * config/stormy16/stormy16-protos.h (xstormy16_split_cbranch):
357         Update prototype.
358         (xstormy16_expand_arith): Likewise.
359
360 2008-12-01  Chen Liqin  <liqin.chen@sunplusct.com>
361
362         * config/score/score.h (IRA_COVER_CLASSES): Define.
363
364 2008-11-30  Eric Botcazou  <ebotcazou@adacore.com>
365
366         PR target/38287
367         * config/sparc/sparc.md (divsi3 expander): Remove constraints.
368         (divsi3_sp32): Add new alternative with 'K' for operand #2.
369         (cmp_sdiv_cc_set): Factor common string.
370         (udivsi3_sp32): Add new alternative with 'K' for operand #2.
371         Add TARGET_V9 case.
372         (cmp_udiv_cc_set): Factor common string.
373
374 2008-11-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
375
376         PR middle-end/38283
377         * varasm.c (emutls_finish): Fix common registration.
378
379 2008-11-29  Jakub Jelinek  <jakub@redhat.com>
380
381         PR target/29987
382         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
383
384 2008-11-29  David Edelsohn  <edelsohn@gnu.org>
385
386         * config/rs6000/rs6000.c (rs6000_emit_sync): Remove support for
387         operand wrapped in NOT.  Emit NAND as (ior (not X) (not Y)).
388         (rs6000_split_atomic_op): Emit NAND as (ior (not X) (not Y)).
389         * config/rs6000/sync.md (sync_nand<mode>): Represent NAND in RTL.
390         Call rs6000_emit_sync with CODE=NOT and unmodified operands.
391         Ignore sub-word case for now.
392         (sync_nand<mode>_internal): Represent NAND in RTL.
393         (sync_old_nand<mode): Same.
394         (sync_old_name<mode>_internal): Same.
395         (sync_new_nand<mode>): Same.
396         (sync_new_nand<mode>_internal): Same.
397         (sync_boolcshort_internal): Expect NAND.
398
399 2008-11-28  Richard Guenther  <rguenther@suse.de>
400
401         PR tree-optimization/37955
402         PR tree-optimization/37742
403         * tree-vect-transform.c (vectorizable_store): Remove assert for
404         compatible aliases.
405         (vectorizable_load): Likewise.
406
407 2008-11-27  Richard Guenther  <rguenther@suse.de>
408
409         * tree-ssa-structalias.c (intra_create_variable_infos): Make
410         a constraint for the static chain parameter.
411
412 2008-11-27  Bernd Schmidt  <bernd.schmidt@analog.com>
413
414         * config/bfin/bfin.opt (micplb): New option.
415         * config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
416         * config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
417         ENABLE_WA_INDIRECT_CALLS): New macros.
418         * config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
419         all 54x CPUs.
420         (indirect_call_p): New function.
421         (workaround_speculation): Handle anomaly 05-00-0426 when
422         ENABLE_WA_INDIRECT_CALLS is true.
423         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
424         __WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
425         * doc/invoke.texi (Blackfin Options): Document -micplb.
426
427 2008-11-26  DJ Delorie  <dj@redhat.com>
428
429         * config/m32c/mov.md ("extendhipsi2"): New.
430
431         * config/m32c/bitops.md (bset_qi): Add memsym_operand predicate.
432
433         * config/m32c/bitops.md (andhi3_24, iorhi3_24): Don't prefer HL class.
434         * config/m32c/mov.md (zero_extendqihi2): Likewise.
435
436 2008-11-26  Adam Nemet  <anemet@caviumnetworks.com>
437
438         * config/mips/mips.md (clear_hazard): Rename to
439         clear_hazard_<mode>.  Use mode-specific addition.
440         (clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
441         or gen_clear_hazard_di depending on the size of Pmode.
442
443 2008-11-26  DJ Delorie  <dj@redhat.com>
444
445         * configure.ac: Test m32c-elf-gas for .loc.
446         * configure: Likewise.
447
448 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
449
450         PR testsuite/28870
451         * doc/sourcebuild.texi (Test Directives): Add dg-timeout and
452         dg-timeout-factor.
453
454 2008-11-26  Uros Bizjak  <ubizjak@gmail.com>
455
456         * config/i386/sync.md (memory_barrier_nosse): Disable also for
457         TARGET_64BIT.  Remove special asm template for TARGET_64BIT case.
458         (memory_barrier): Do not generate memory_barrier_nosse instruction
459         for TARGET_64BIT.
460         * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
461
462 2008-11-26  Fredrik Unger  <fred@tree.se>
463
464         * config/soft-fp/floatuntisf.c (__floatuntisf): Correct
465         function name from __floatundisf.
466         * config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
467         DFtype.
468
469 2008-11-25  Daniel Berlin  <dberlin@dberlin.org>
470             Richard Guenther  <rguenther@suse.de>
471
472         PR tree-optimization/37869
473         * tree-ssa-structalias.c (struct constraint_graph): Remove
474         pt_used and number_incoming members.
475         (build_pred_graph): Do not allocate them.
476         (condense_visit): Do not use them.
477         (label_visit): Likewise.
478         (free_var_substitution_info): Do not free them.
479
480 2008-11-25  Vladimir Makarov  <vmakarov@redhat.com>
481
482         * doc/invoke.texi (ira-max-loops-num): Change semantics.
483
484         * ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
485
486         * ira-color.c (allocno_spill_priority): New function.
487         (remove_allocno_from_bucket_and_push, push_allocno_to_spill):
488         Print more info about the spilled allocno.
489         (push_allocnos_to_stack): Use allocno_spill_priority.  Add more
490         checks on bad spill.
491
492         * ira-build.c (loop_node_to_be_removed_p): Remove.
493         (loop_compare_func, mark_loops_for_removal): New functions.
494         (remove_uneccesary_loop_nodes_from_loop_t): Use member
495         to_remove_p.
496         (remove_unnecessary_allocnos): Call mark_loops_for_removal.
497
498         * ira.c (ira): Don't change flag_ira_algorithm.
499
500         * params.def (ira-max-loops-num): Change the value.
501
502 2008-11-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
503
504         * config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
505         Disable unsupported alternative for ColdFire,
506         add new alternative that ColdFire can handle.
507
508 2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
509
510         * regrename.c (merge_overlapping_regs): Add registers artificially
511         defined at the top of the basic block to the set of live ones just
512         before the first insn.
513
514 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
515             Joey Ye  <joey.ye@intel.com>
516
517         PR middle-end/37843
518         * config/i386/i386.c (ix86_function_ok_for_sibcall): Return
519         false if we need to align the outgoing stack.
520         (ix86_update_stack_boundary): Check parm_stack_boundary.
521
522 2008-11-25  Richard Guenther  <rguenther@suse.de>
523
524         PR middle-end/38151
525         PR middle-end/38236
526         * tree-ssa-alias.c (struct alias_info): Remove written_vars.
527         Remove dereferenced_ptrs_store and dereferenced_ptrs_load
528         in favor of dereferenced_ptrs.
529         (init_alias_info): Adjust.
530         (delete_alias_info): Likewise.
531         (compute_flow_insensitive_aliasing): Properly
532         include all aliased variables.
533         (update_alias_info_1): Use dereferenced_ptrs.
534         (setup_pointers_and_addressables): Likewise.
535         (get_smt_for): Honor ref-all pointers and pointers with known alias
536         set properly.
537         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
538
539 2008-11-25  Uros Bizjak  <ubizjak@gmail.com>
540
541         PR target/38254
542         * config/i386/sync.md (memory_barrier_nosse): New insn pattern.
543         (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2.
544
545 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
546
547         * config/m68k/m68k.md (cmpdi): Use (scratch) instead of pseudo.
548
549 2008-11-24  Richard Sandiford  <rdsandiford@googlemail.com>
550
551         * config/mips/mips.h (ASM_OUTPUT_DEBUG_LABEL): Define.
552
553 2008-11-24  Maxim Kuvyrkov  <maxim@codesourcery.com>
554
555         PR target/35018
556         * config/m68k/m68k.md (ok_for_coldfire, enabled): New attributes.
557         (addsi_lshrsi_31): Add ColdFire-friendly alternatives.
558
559 2008-11-24  Uros Bizjak  <ubizjak@gmail.com>
560
561         * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from
562         UNSPECV_CMPXCHG_[12].
563         * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of
564         UNSPECV_CMPXCHG_[12].
565
566         PR target/36793
567         * config/i386/sync.md (memory_barrier): New expander.
568
569 2008-11-24  Jakub Jelinek  <jakub@redhat.com>
570
571         PR middle-end/37135
572         * dse.c (find_shift_sequence): Optimize extraction from a constant.
573
574 2008-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
575
576         * pa.c (function_arg): Revert 2008-10-26 change.
577
578 2008-11-23  Helge Deller  <deller@gmx.de>
579
580         * pa/linux-atomic.c (EBUSY): Define if not _LP64.
581         (__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
582         succeeded and lws_ret is not equal to oldval.
583
584 2008-11-23  Kaz Kojima  <kkojima@gcc.gnu.org>
585
586         * config/sh/sh.md (consttable_4): Call mark_symbol_refs_as_used.
587
588 2008-11-22  Andreas Schwab  <schwab@suse.de>
589
590         * varasm.c (default_file_start): Suppress ASM_APP_OFF also with
591         -dA and -dP.
592
593 2008-11-22  Adam Nemet  <anemet@caviumnetworks.com>
594
595         * config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
596         Use constant 1 as the operand.
597         * config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
598         Rename gen_rdhwr to gen_rdhwr_synci_step_si or
599         gen_rdhwr_synci_step_di depending on the size of Pmode.
600
601 2008-11-22  Uros Bizjak  <ubizjak@gmail.com>
602
603         PR target/38222
604         * config/i386/i386.md (SWI248): New mode iterator.
605         (SWI32): Remove mode iterator.
606         (popcount<mode>2): Rename from popcounthi2, popcountsi2 and
607         popcounthi2 insn patterns. Macroize pattern using SWI248 mode
608         iterator.  Generate popcnt mnemonic without mode extensions
609         for Darwin x86 targets.
610         (*popcount<mode>2_cmp): Ditto.
611         (*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
612         extensions for Darwin x86 targets.
613
614 2008-11-22  Eric Botcazou  <ebotcazou@adacore.com>
615
616         * config/sparc/sparc.c (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define
617         only if HAVE_AS_SPARC_UA_PCREL is defined.
618
619 2008-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
620
621         * ira-costs.c (find_allocno_class_costs): Work out the maximum
622         allocno_costs value of the classees with the lowest total_costs
623         value.  Use this to set ALLOCNO_COVER_CLASS_COST here...
624         (setup_allocno_cover_class_and_costs): ...rather than here.
625         Use the ALLOCNO_COVER_CLASS_COST for all registers in the
626         preferred class.
627
628 2008-11-22  Jakub Jelinek  <jakub@redhat.com>
629
630         PR middle-end/37323
631         * builtins.c (expand_builtin_apply_args): Emit sequence before
632         parm_birth_insn instead of after entry_of_function's first insn.
633
634         PR middle-end/37316
635         * function.c (assign_parm_remove_parallels): Pass
636         data->passed_type as third argument to emit_group_store.
637
638         PR target/37170
639         * final.c (mark_symbol_refs_as_used): New function.
640         * output.h (mark_symbol_refs_as_used): New prototype.
641         * config/s390/s390.c (s390_mark_symbol_ref_as_used): Removed.
642         (s390_output_pool_entry): Use mark_symbol_refs_as_used.
643         * config/arm/arm.md (consttable_4): Likewise.
644
645         PR target/37880
646         * doc/invoke.texi: Adjust wording of -mcmodel=medium description.
647
648 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
649
650         PR middle-end/38200
651         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
652         propagate x = &a into *x = b if conversion from b to a's type is
653         useless.
654
655 2008-11-21  Eric Botcazou  <ebotcazou@adacore.com>
656
657         * caller-save.c (insert_one_insn): Take into account REG_INC notes
658         for the liveness computation of the new insn.
659
660 2008-11-21  DJ Delorie  <dj@redhat.com>
661
662         * config/stormy16/stormy16.md (movqi_internal, movhi_internal):
663         Moves to/from below100 space (W) can only use r0-r7.
664
665 2008-11-21  Paolo Carlini  <paolo.carlini@oracle.com>
666
667         PR other/38214
668         * doc/invoke.texi (Optimization Options): Fix typo.
669
670 2008-11-21  H.J. Lu  <hongjiu.lu@intel.com>
671             Xuepeng Guo  <xuepeng.guo@intel.com>
672
673         * config.gcc (extra_headers): For x86 and x86-64, remove
674         gmmintrin.h, add immintrin.h and avxintrin.h.
675
676         * config/i386/gmmintrin.h: Renamed to ...
677         * config/i386/avxintrin.h: This.  Issue an error if
678         _IMMINTRIN_H_INCLUDED is undedined.
679
680         * config/i386/immintrin.h: New.
681
682 2008-11-21  Jakub Jelinek  <jakub@redhat.com>
683
684         PR target/38208
685         * reload1.c (eliminate_regs_in_insn): For trunc_int_for_mode use
686         mode of PLUS, not mode of the eliminated register.
687
688 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
689
690         * config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
691         * config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
692         (<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
693         (sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
694         (*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
695         (*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
696         (*nand<mode>3): Rename to *andnot<mode>3.
697         (*nandtf3): rename to *andnottf3.
698         * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
699         Use CODE_FOR_mmx_andnotv2si3.
700         [IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
701         [IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
702         [IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
703         [IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
704         [IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
705
706 2008-11-21  Uros Bizjak  <ubizjak@gmail.com>
707
708         PR middle-end/37908
709         * config/ia64/ia64.c (ia64_expand_atomic_op): Properly handle NAND
710         case by calculating ~(new_reg & val) instead of (~new_reg & val).
711         * config/ia64/sync.md (sync_nand<mode>): Change insn RTX
712         to (not:IMODE (and:IMODE (...))).
713         (sync_old_nand<mode>): Ditto.
714         (sync_new_nand<mode>): Ditto.
715
716 2008-11-20  Joseph Myers  <joseph@codesourcery.com>
717
718         * config/arm/thumb2.md (thumb2_casesi_internal,
719         thumb2_casesi_internal_pic): Use earlyclobber for scratch operand 4.
720
721 2008-11-20  Andreas Krebbel  <krebbel1@de.ibm.com>
722
723         * gcc/config/s390/s390.c (s390_expand_atomic): Adjust QI/HI atomic
724         nand to the changed 4.4 semantic.
725
726 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
727
728         PR middle-end/29215
729         * builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
730         (fold_builtin_memory_op): Handle even the case where just one
731         of src and dest is an address of a var decl component, using
732         TYPE_REF_CAN_ALIAS_ALL pointers.  Remove is_gimple_min_invariant
733         and readonly_data_expr src check.
734         * tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
735         up warnings.
736
737         PR rtl-optimization/36998
738         * dwarf2out.c (stack_adjust_offset): Add cur_args_size and cur_offset
739         arguments.  Handle sp = reg and (set (foo) (mem (pre_inc (reg sp)))).
740         (compute_barrier_args_size_1, dwarf2out_frame_debug_expr): Adjust
741         stack_adjust_offset callers.
742         (dwarf2out_stack_adjust): Likewise.  Handle insns in annulled
743         branches properly.
744         (compute_barrier_args_size): Handle insns in annulled branches
745         properly.
746
747 2008-11-20  Uros Bizjak  <ubizjak@gmail.com>
748
749         PR target/38151
750         * config/i386/i386.c (classify_argument) [integer mode size <= 64bit]:
751         Handle cases when integer argument crosses argument register boundary.
752
753 2008-11-20  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
754
755         PR bootstrap/33100
756         * config.gcc (i[34567]86-*-solaris2*): Don't include
757         i386/t-crtstuff here.
758         Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
759         * config/i386/t-sol2: Move to libgcc/config/i386.
760
761 2008-11-20  Samuel Thibault  <samuel.thibault@ens-lyon.org>
762
763         PR driver/21706
764         * tlink.c: Include "libiberty.h".
765         (initial_cwd): Change type into char *.
766         (tlink_init): Call getpwd instead of getcwd.
767
768 2008-11-19  Zdenek Dvorak  <ook@ucw.cz>
769
770         PR rtl-optimization/32283
771         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
772         of the induction variable to decide whether it may wrap.
773         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the
774         initialization of the bound before the loop.
775         * simplify-rtx.c (simplify_binary_operation_1): Add two
776         simplifications regarding AND.
777         (simplify_plus_minus): Only fail if no simplification is possible.
778         * loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
779
780 2008-11-20  Jakub Jelinek  <jakub@redhat.com>
781
782         PR c++/36631
783         * gimplify.c (gimplify_call_expr): Defer most of the cannot inline
784         checking until GIMPLE lowering.
785         * gimple-low.c (check_call_args): New function.
786         (lower_stmt) <case GIMPLE_CALL>: Call it.
787
788 2008-11-19  Adam Nemet  <anemet@caviumnetworks.com>
789
790         * config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
791         with the same type as the first operand of the AND expression.
792
793 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
794
795         PR bootstrap/37859
796         * ira-int.h (struct ira_loop_tree_node): New member
797         entered_from_non_parent_p.
798
799         * ira-color.c (print_loop_title): Print loop bbs.
800
801         * ira-emit.c (entered_from_non_parent_p,
802         setup_entered_from_non_parent_p): New functions.
803         (not_modified_p): Rename to store_can_be_removed_p.  Check there
804         is no side entries.
805         (generate_edge_moves): Use store_can_be_removed_p instead of
806         not_modified_p.
807         (ira_emit): Call setup_entered_from_non_parent_p.
808
809         * ira-build.c (copy_info_to_removed_store_destinations):
810         Accumulate CALL_FREQ, CALL_CROSSED_NUM, and
811         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM.
812         (ira_flattening): Don't CHECK MEM_OPTIMIZED_DEST[_P], always
813         update all accumulated attributes.
814
815 2008-11-19  Vladimir Makarov  <vmakarov@redhat.com>
816
817         PR bootstrap/37790
818         * ira-int.h (ira_copy_allocno_live_range_list,
819         ira_merge_allocno_live_ranges, ira_allocno_live_ranges_intersect_p,
820         ira_finish_allocno_live_range_list): New prototypes.
821         (ira_allocno_live_ranges_intersect_p,
822         ira_pseudo_live_ranges_intersect_p): Remove.
823
824         * ira-conflicts.c (ira_allocno_live_ranges_intersect_p,
825         ira_pseudo_live_ranges_intersect_p): Rename to
826         allocnos_have_intersected_live_ranges_p and
827         pseudos_have_intersected_live_ranges_p.  Move them from here to ...
828
829         * ira-color.c: ... here
830         (coalesced_allocno_conflict_p): Use
831         allocnos_have_intersected_live_ranges_p.
832         (coalesced_allocnos_living_at_program_points,
833         coalesced_allocnos_live_at_points_p,
834         set_coalesced_allocnos_live_points): Remove.
835         (slot_coalesced_allocnos_live_ranges,
836         slot_coalesced_allocno_live_ranges_intersect_p,
837         setup_slot_coalesced_allocno_live_ranges): New.
838         (coalesce_spill_slots): Use ranges of coalesced allocnos.
839         (ira_sort_regnos_for_alter_reg): Use
840         allocnos_have_intersected_live_ranges_p.
841         (ira_reuse_stack_slot): Use
842         pseudos_have_intersected_live_ranges_p.
843
844         * global.c (pseudo_for_reload_consideration_p): Check
845         flag_ira_share_spill_slots too.
846
847         * ira-build.c (copy_allocno_live_range_list): Rename to
848         ira_copy_allocno_live_range_list.  Make it external.
849         (merge_ranges): Rename to ira_merge_allocno_live_ranges.  Make it
850         external.
851         (ira_allocno_live_ranges_intersect_p): New.
852         (ira_finish_allocno_live_range_list): New.
853         (finish_allocno): Use it.
854         (remove_unnecessary_allocnos): Use ira_merge_allocno_live_ranges.
855         (copy_info_to_removed_store_destinations): Ditto.  Use
856         ira_copy_allocno_live_range_list.
857         (ira_flattening): Use ira_merge_allocno_live_ranges.
858
859         * ira.c (too_high_register_pressure_p): New function.
860         (ira): Switch off sharing spill slots if the pressure is too high.
861
862 2008-11-19  Richard Guenther  <rguenther@suse.de>
863
864         * tree.c (build2_stat): Allow non-POINTER_PLUS_EXPRs with
865         non-sizetype offsets if their precision matches that of the pointer.
866         * expr.c (expand_expr_real_1): Always sign-extend the offset
867         operand of a POINTER_PLUS_EXPR.
868
869 2008-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
870
871         * config.gcc: Unobsolete mips-sgi-irix[56]*.
872         (mips-sgi-irix[56]*): No need to use fixproto.
873
874 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
875             Paul Brook  <paul@codesourcery.com>
876
877         * config/m68k/lb1sf68.asm: Add GNU-stack annotation to avoid
878         executable stack.
879
880 2008-11-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
881
882         * config/m68k/m68k.c (sched_attr_op_type): Handle all CONSTs.
883
884 2008-11-19  Razya Ladelsky  <razya@il.ibm.com>
885
886         PR target/38156
887         * tree-parloops.c (loop_parallel_p): NULL vect_dump.
888         (separate_decls_in_region): Create shared struct even when there
889         are only reductions.
890
891 2008-11-19  Hariharan Sandanagobalane <hariharan@picochip.com>
892
893         * config/picochip/picochip.c (headers): Remove an unnecessary
894         header file.
895
896 2008-11-19  Andrew Stubbs  <ams@codesourcery.com>
897
898         PR target/36133
899         * config/m68k/m68k.h (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY): New defines.
900         * config/m68k/m68k.c (notice_update_cc): Set cc_status properly for
901         shift instructions.
902         * config/m68k/m68k.md: Adjust all conditional branches that use the
903         carry and overflow flags so they understand CC_OVERFLOW_UNUSABLE.
904
905 2008-11-18  Uros Bizjak  <ubizjak@gmail.com>
906
907         PR target/37362
908         * config/mips/mips.md (move_doubleword_fpr<mode>): Check that "high"
909         is a register or zero operand in the correct mode before generating
910         mtch1 insn or a register operand in the correct mode before generating
911         mfch1 insn.
912         (mtch1<mode>): Correct operand 1 predicate to reg_or_0_operand.
913
914 2008-11-18  Adam Nemet  <anemet@caviumnetworks.com>
915
916         * config.gcc (mips*-sde-elf*): Handle mipsisa64r2*.
917         (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add new cases to
918         mipsisa*-*-elf*.  Handle mipsisa64r2*.
919         * config/mips/sde.h (LINK_SPEC): Handle -mips64r2.
920         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
921         mips64r2.
922         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.
923         * config/mips/t-sde (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
924         mips64r2.
925         (MULTILIB_EXCLUSIONS): Add mips64r2/mfp64.  Add mips64r2/mips16.
926         Fix mips16 if mips64 or mips64r2 are multilib defaults.
927         * config/mips/t-sdemtk (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add
928         mips64r2.
929
930 2008-11-18  Jakub Jelinek  <jakub@redhat.com>
931
932         PR target/38130
933         * config/i386/i386.md (allocate_stack_worker_32,
934         allocate_stack_worker_64): Don't use match_dup between input and
935         output operand.
936         (allocate_stack): Adjust gen_stack_worker_{32,64} caller.
937         * config/i386/i386.c (ix86_expand_prologue): Likewise.
938
939 2008-11-18  Kai Tietz  <kai.tietz@onevision.com>
940
941         * config/i386/t-cygming (SHLIB_LINK): Make sure that $(SHLIB_MAP).def
942         is forced when trying to do a symbol link for it.
943
944 2008-11-17  Adam Nemet  <anemet@caviumnetworks.com>
945
946         * expmed.c (extract_bit_field_1): Also use a temporary and
947         convert_extracted_bit_field when the conversion from ext_mode to
948         the target mode requires explicit truncation.
949
950 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
951
952         * config/mips/mips.h (REG_ALLOC_ORDER): Put accumulators first.
953         Tweak formatting.
954         * config/mips/mips.c (mips_ira_cover_classes): Don't use accumulator
955         registers when not optimizing.
956
957 2008-11-17  Richard Sandiford  <rdsandiford@googlemail.com>
958
959         * config/mips/mips.md (*mul_acc_si): Remove middle alternative
960         and its associated define_split.  Expose the all-d alternative
961         to the register allocator, but mark it with "?".  Mark the first
962         alternative with "*?*?".
963         (*mul_sub_si): Likewise.
964         (*mul_acc_si_r3900): New pattern.
965
966 2008-11-17  Jakub Jelinek  <jakub@redhat.com>
967
968         PR middle-end/38140
969         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If
970         propagating x = &a into *x = b, add a cast if not useless
971         type conversion or don't optimize if another stmt would be
972         needed.
973
974 2008-11-17  Uros Bizjak  <ubizjak@gmail.com>
975
976         PR middle-end/37908
977         * optabs.c (expand_sync_operation): Properly handle NAND case
978         by calculating ~(t1 & val) instead of (~t1 & val).
979         * builtins.c (expand_builtin_sync_operation): Warn for changed
980         semantics in NAND builtins.
981         * c.opt (Wsync-nand): New warning option.  Describe -Wsync-nand.
982
983         * doc/invoke.texi (Warning options): Add Wsync-nand.
984         * doc/extend.texi (Atomic Builtins) [__sync_fetch_and_nand]: Correct
985         __sync_fetch_and_nand builtin operation in the example.  Add a note
986         about changed semantics in GCC 4.4.
987         [__sync_nand_and_fetch]: Correct __sync_nand_and_fetch builtin
988         operation in the example.  Add a note about changed semantics in
989         GCC 4.4.
990
991 2008-11-16  Jan Hubicka  <jh@suse.cz>
992
993         * cgraph.c (cgraph_function_body_availability): Fix test of externally
994         visible.
995
996 2008-11-16  Joshua Kinard  <kumba@gentoo.org>
997
998         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=r1[0246]000
999         to -mips4.
1000
1001 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1002
1003         PR target/38052
1004         * config/mips/mips.c (mips_cfun_call_saved_reg_p)
1005         (mips_cfun_might_clobber_call_saved_reg_p): New functions,
1006         split out from...
1007         (mips_save_reg_p): ...here.  Always consult TARGET_CALL_SAVED_GP
1008         rather than call_really_used_regs when handling $gp.
1009
1010 2008-11-16  Richard Sandiford  <rdsandiford@googlemail.com>
1011
1012         PR target/38052
1013         * config/mips/mips.c (machine_function): Update the comment
1014         above global_pointer.
1015         (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate
1016         that a function doesn't need a global pointer.
1017         (mips_current_loadgp_style): Update accordingly.
1018         (mips_restore_gp): Likewise.
1019         (mips_output_cplocal): Likewise.
1020         (mips_expand_prologue): Likewise.
1021
1022 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1023
1024         * config/sparc/sparc.c (function_arg_vector_value): Remove 'base_mode'
1025         parameter.  Use DImode for computing the number of registers.
1026         (function_arg): Adjust for above change.
1027         (function_value): Likewise.
1028
1029 2008-11-15  Zdenek Dvorak  <ook@ucw.cz>
1030
1031         PR tree-optimization/37950
1032         * tree-flow-inline.h (memory_partition): Return NULL when aliases were
1033         not computed for the current function.
1034
1035 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1036
1037         PR target/38123
1038         * config/i386/i386.c (ix86_gimplify_va_arg): Don't share valist between
1039         gpr and other COMPONENT_REFs.
1040
1041 2008-11-15  Richard Guenther  <rguenther@suse.de>
1042
1043         PR tree-optimization/38051
1044         * tree-ssa-alias.c (update_alias_info_1): Manually find
1045         written variables.
1046
1047 2008-11-15  Joshua Kinard  <kumba@gentoo.org>
1048
1049         * doc/invoke.texi (-mfix-r10000): Document.
1050         * config/mips/mips.opt (mfix-r10000): New option.
1051         * config/mips/mips-protos.h (mips_output_sync_loop): Declare.
1052         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Use %?.
1053         (MIPS_COMPARE_AND_SWAP_12): Likewise.
1054         (MIPS_SYNC_OP): Likewise.
1055         (MIPS_SYNC_OP_12): Likewise.
1056         (MIPS_SYNC_OLD_OP_12): Likewise.
1057         (MIPS_SYNC_NEW_OP_12): Likewise.
1058         (MIPS_SYNC_OLD_OP): Likewise.
1059         (MIPS_SYNC_NAND): Likewise.
1060         (MIPS_SYNC_OLD_NAND): Likewise.
1061         (MIPS_SYNC_EXCHANGE): Likewise.
1062         (MIPS_SYNC_EXCHANGE_12): Likewise.
1063         (MIPS_SYNC_NEW_OP): Likewise, using %~ to fill branch-likely
1064         delay slots.
1065         (MIPS_SYNC_NEW_NAND): Likewise.
1066         * config/mips/mips.c (mips_print_operand_punctuation): Handle '~'.
1067         (mips_init_print_operand_punct): Treat '~' as a punctuation character.
1068         (mips_output_sync_loop): New function.
1069         (mips_override_options): Make -march=r10000 imply -mfix-r10000.
1070         Make -mfix-r10000 require branch-likely instructions.
1071         * config/mips/sync.md (sync_compare_and_swap<mode>): Use
1072         mips_output_sync_loop.
1073         (compare_and_swap_12): Likewise.
1074         (sync_add<mode>): Likewise.
1075         (sync_<optab>_12): Likewise.
1076         (sync_old_<optab>_12): Likewise.
1077         (sync_new_<optab>_12): Likewise.
1078         (sync_nand_12): Likewise.
1079         (sync_old_nand_12): Likewise.
1080         (sync_new_nand_12): Likewise.
1081         (sync_sub<mode>): Likewise.
1082         (sync_old_add<mode>): Likewise.
1083         (sync_old_sub<mode>): Likewise.
1084         (sync_new_add<mode>): Likewise.
1085         (sync_new_sub<mode>): Likewise.
1086         (sync_<optab><mode>): Likewise.
1087         (sync_old_<optab><mode>): Likewise.
1088         (sync_new_<optab><mode>): Likewise.
1089         (sync_nand<mode>): Likewise.
1090         (sync_old_nand<mode>): Likewise.
1091         (sync_new_nand<mode>): Likewise.
1092         (sync_lock_test_and_set<mode>): Likewise.
1093         (test_and_set_12): Likewise.
1094
1095 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
1096
1097         * gcc.c (cc1_options): Fix comment.
1098
1099 2008-11-15  Jakub Jelinek  <jakub@redhat.com>
1100
1101         PR c++/37561
1102         * c-typeck.c (build_unary_op): Don't call get_unwidened.  Use
1103         argtype instead of result_type.
1104
1105 2008-11-14  Adam Nemet  <anemet@caviumnetworks.com>
1106
1107         * ira-int.h (struct ira_loop_tree_node): Improve comments for
1108         subloop_next/next and subloops/childen fields.
1109
1110 2008-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1111
1112         * config/spu/spu-elf.h (STANDARD_STARTFILE_PREFIX_2): Disable default.
1113         (STANDARD_INCLUDE_DIR): Redefine to "/include".
1114         (LOCAL_INCLUDE_DIR): Undefine.
1115         * config/spu/t-spu-elf (NATIVE_SYSTEM_HEADER_DIR): Define.
1116
1117 2008-11-14  Vladimir Makarov  <vmakarov@redhat.com>
1118
1119         PR rtl-optimization/37397
1120         * ira-int.h (struct ira_allocno): New member bad_spill_p.
1121         (ALLOCNO_BAD_SPILL_P): New macro.
1122
1123         * ira-color.c (push_allocnos_to_stack): Check ALLOCNO_BAD_SPILL_P.
1124
1125         * ira-build.c (ira_create_allocno): Initialize ALLOCNO_BAD_SPILL_P.
1126         (create_cap_allocno, propagate_allocno_info,
1127         remove_unnecessary_allocnos): Set up or update ALLOCNO_BAD_SPILL_P.
1128         (update_bad_spill_attribute): New function.
1129         (ira_build): Call it.
1130
1131         * ira-costs.c (record_reg_classes): Set up ALLOCNO_BAD_SPILL_P.
1132
1133 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1134
1135         PR tree-optimization/38104
1136         * gimplify.c (gimple_regimplify_operands): Add referenced vars
1137         before calling mark_symbols_for_renaming, not after it.
1138
1139 2008-11-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1140
1141         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Revert last change.
1142         (OVERRIDE_OPTIONS): Likewise.
1143
1144 2008-11-14  Maxim Kuvyrkov  <maxim@codesourcery.com>
1145             Andrew Stubbs  <ams@codesourcery.com>
1146             Gunnar Von Boehn  <gunnar@genesi-usa.com>
1147
1148         PR target/36134
1149         * config/m68k/m68k.md (addsi3_5200): Add a new alternative preferring
1150         the shorter LEA insn over ADD.L where possible.
1151
1152 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
1153
1154         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
1155         systems, which are assumend to always provide SSP-support in glibc.
1156         Also consider GNU/kFreeBSD, GNU/kNetBSD systems in the `*-*-linux*'
1157         case.
1158         * configure: Regenerate.
1159
1160 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
1161
1162         PR middle-end/36125
1163         * function.c (gimplify_parameters): For callee copies parameters,
1164         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
1165
1166 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
1167
1168         PR target/28102
1169         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*',
1170         x86 parts into the `i[34567]86-*-linux*' and parts that are
1171         independent of the processor architecture into the `*-*-linux*' cases.
1172         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
1173         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
1174         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
1175         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
1176         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
1177         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
1178         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
1179
1180 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
1181
1182         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
1183         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
1184         (ls2_idiv): Likewise idiv3.
1185         (ls2_prefetch): New reservation.
1186         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
1187         * config/mips/mips.md (type): Add imul3nc and idiv3.
1188         (length): Handle idiv3.
1189         (any_mod): New code_iterator.
1190         (u): Handle MOD and UMOD.
1191         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
1192         (prefetch): Handle TARGET_LOONGSON_2EF.
1193
1194 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1195
1196         PR c++/27017
1197         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
1198         (prune_unused_types_walk): Call it for non-perennial local classes.
1199         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
1200         entry, just set it to 2 and recurse on children, don't walk attributes
1201         again.
1202
1203 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
1204
1205         * c-common.c (warn_about_parentheses): Add missing whitespace
1206         in warning.
1207
1208 2008-11-13  Paul Brook  <paul@codesourcery.com>
1209
1210         * doc/invoke.texi: Document --fix-cortex-m3.
1211         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
1212         Cortex-M3 cpu is selected.
1213         (output_move_double): Avoid overlapping base register and first
1214         destination register when fix_cm3_ldrd.
1215         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
1216
1217 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
1218
1219         PR bootstrap/38100
1220         * gimple.h (gimple_range_check_failed): Remove prototype.
1221         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
1222         in guarding #if.
1223         (gimple_range_check_failed): Removed.
1224
1225 2008-11-13  Andrew Haley  <aph@redhat.com>
1226
1227         PR bootstrap/38088
1228         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
1229         __LONG_LONG_MAX__.
1230
1231 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1232
1233         PR c++/36478
1234         Revert:
1235         2007-05-07  Mike Stump  <mrs@apple.com>
1236         * doc/invoke.texi (Warning Options): Document that -Wempty-body
1237         also checks for and while statements in C++.
1238
1239 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
1240
1241         PR debug/27574
1242         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
1243         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
1244         - which clones are reachable - as "abstract and needed".
1245         * cgraph.c (cgraph_release_function_body):  If a node is
1246         "abstract and needed", do not release its DECL_INITIAL() content
1247         that will be needed to emit debug info.
1248
1249 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
1250
1251         PR target/27880
1252         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
1253         to set HAVE_GETIPINFO.
1254         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
1255         * configure: Regenerate.
1256         * config.in: Regenerate.
1257
1258 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
1259
1260         PR bootstrap/38010
1261         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
1262
1263 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1264
1265         Revert:
1266         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
1267         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1268
1269 2008-11-12  Jason Merrill  <jason@redhat.com>
1270
1271         PR c++/38007
1272         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
1273         special casing.
1274
1275 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
1276
1277         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
1278         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
1279         atmega32u6 devices.
1280         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1281         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1282
1283 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1284
1285         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
1286         packed-stack special handling.
1287         (FRAME_ADDR_RTX): Add definition.
1288
1289 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1290
1291         PR target/35366
1292         * fold-const.c (native_encode_string): New function.
1293         (native_encode_expr): Use it for STRING_CST.
1294
1295 2008-11-12  DJ Delorie  <dj@redhat.com>
1296
1297         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
1298         insns if the intermediate value will be used later.
1299
1300 2008-11-12  Andreas Schwab  <schwab@suse.de>
1301
1302         * config/m68k/m68k.c (print_operand): Mask off extra extension
1303         bits when writing out the representation of real values.
1304
1305 2008-11-12  Ira Rosen  <irar@il.ibm.com>
1306
1307         PR tree-optimization/38079
1308         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
1309         with vect_dump.
1310
1311 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR c++/35334
1314         * c-pretty-print.c (pp_c_complex_expr): New function.
1315         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
1316
1317         PR target/35366
1318         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
1319         than INNER and INNER is a constant, forcibly align INNER as much
1320         as needed.
1321
1322 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1323
1324         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
1325
1326 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
1327
1328         PR rtl-optimization/37363
1329         * simplify-rtx.c (simplify_plus_minus): Don't create
1330         (const (minus ...)) expresisons.
1331
1332 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
1333
1334         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
1335         handling.
1336
1337 2008-11-10  Catherine Moore  <clm@codesourcery.com>
1338
1339         * config.gcc (mips64vrel-*-elf*): Include the tm_file
1340         prior to vr.h.
1341         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
1342         (BASE_DRIVER_SELF_SPECS): Remove.
1343         (DRIVER_SELF_SPECS): New definition.
1344         * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
1345         BASE_DRIVER_SELF_SPECS.
1346         * config/mips/sde.h: Likewise.
1347         * config/mips/iris6.h: Likewise.
1348         * config/mips/vr.h: Likewise.
1349         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New.
1350
1351 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
1352
1353         PR rtl-optimizations/37948
1354         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
1355         (ira_create_copy, ira_add_allocno_copy): New parameter.
1356
1357         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
1358         to ira_add_allocno_copy.
1359         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
1360         parameter to process_regs_for_copy.
1361         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
1362         Fix typo in passing second allocno to ira_add_allocno_copy.
1363
1364         * ira-color.c (update_conflict_hard_regno_costs): Use head of
1365         coalesced allocnos list.
1366         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
1367         the graph.
1368         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
1369         (add_ira_allocno_to_ordered_bucket): Rename to
1370         add_allocno_to_ordered_bucket.
1371         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
1372         head of coalesced allocnos list.
1373         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
1374         Check that it is aready calculated.
1375         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
1376         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
1377         list.
1378         (coalesce_allocnos): Do extended coalescing too.
1379
1380         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
1381         parameter to ira_add_allocno_copy.
1382
1383         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
1384         parameter.
1385         (print_copy): Print copy origination too.
1386
1387         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
1388         equivalent memory.
1389
1390 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
1391
1392         PR rtl-optimization/37514
1393         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
1394         flag_ira_share_spill_slots to 2 if it's already non-zero.
1395         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
1396         flag_ira_share_spill_slots is 2.
1397
1398 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
1399
1400         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
1401         (prologue_enter_32): Set FB to SP - 4.
1402
1403 2008-11-10  DJ Delorie  <dj@redhat.com>
1404
1405         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
1406         constraint for single-bit-clear in lower byte of HI constant, vs
1407         Imb which just ignores the upper byte.
1408         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
1409         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
1410         (iorhi3_16): Check for single bit set, not single bit clear.
1411
1412 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
1413
1414         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
1415
1416         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
1417
1418 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1419
1420         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
1421         values living in memory and use more precise alignment information.
1422
1423 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
1424
1425         PR middle-end/35314
1426         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
1427         after __mf_check call if the call must end a bb.
1428
1429 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
1430
1431         PR middle-end/37807
1432         PR middle-end/37809
1433         * combine.c (force_to_mode): Do not process vector types.
1434
1435         * rtlanal.c (nonzero_bits1): Do not process vector types.
1436         (num_sign_bit_copies1): Likewise.
1437
1438 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
1439
1440         * config/i386/gnu.h: Add copyright and licensing header.
1441         * config/gnu.h: Likewise.
1442
1443 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1444
1445         * fwprop.c (fwprop_done): Call df_remove_problem.
1446
1447 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
1448
1449         PR middle-end/37379
1450         * tree-scalar-evolution.c (instantiate_scev_1): Return
1451         chrec_dont_know for VL_EXP_CLASS_P.
1452
1453 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
1454
1455         * reg-stack.c (reg_to_stack): Add missing braces in memset
1456         size calculation.
1457
1458 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
1459
1460         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
1461         (NO_PROFILE_COUNTERS): New define.
1462
1463 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
1464
1465         PR target/26397
1466         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
1467
1468 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
1469
1470         PR target/35574
1471         * config/sparc/constraints.md (D): New.
1472         * config/sparc/predicates.md (const_double_or_vector_operand): New.
1473         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
1474         'D' constraint.
1475         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
1476         Use the 'D' constraint in addition to 'F' in some alternatives.
1477         (DF splitter): Generalize for V64mode.
1478         * doc/md.texi (SPARC): Document the 'D' constraint.
1479
1480 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
1481
1482         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
1483
1484 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1485
1486         * gcc.c: Remove ancient comment about a bug in Sun cc.
1487
1488 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
1489
1490         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
1491
1492 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1493
1494         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
1495
1496 2008-11-06  Ben Elliston  <bje@au.ibm.com>
1497
1498         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
1499         description.
1500
1501 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
1502
1503         PR target/38016
1504         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
1505         just MEM_P.
1506
1507 2008-11-05  Martin Jambor  <mjambor@suse.cz>
1508
1509         PR middle-end/37861
1510         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
1511         pointer arithmetics into array_ref if the array is accessed
1512         through an indirect_ref.
1513
1514 2008-11-05  Richard Guenther  <rguenther@suse.de>
1515
1516         PR middle-end/37742
1517         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
1518         qualified pointer conversion before stripping qualifiers.
1519         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
1520         * tree-flow.h (may_propagate_address_into_dereference): Declare.
1521         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
1522         function.
1523         (ccp_fold): Use it.
1524         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
1525         properly canonicalize binary ops.
1526         (forward_propagate_addr_expr_1): Use
1527         may_propagate_address_into_dereference.
1528
1529 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
1530
1531         PR middle-end/37286
1532         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
1533         Initialize uninitialized input registers with a NaN.
1534
1535 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
1536
1537         PR middle-end/37833
1538
1539         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
1540
1541 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
1542
1543         PR middle-end/37943
1544
1545         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
1546         exits and conditions.
1547         * testsuite/gcc.dg/graphite/pr37943.c: New.
1548
1549 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
1550             Andrew Pinski  <andrew_pinski@playstation.sony.com>
1551
1552         PR c/35430
1553         * c-common.c (warn_for_sign_compare): For complex result_type
1554         use component's type.
1555
1556 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
1557
1558         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
1559
1560         * print-tree.c (print_node): Don't print DECL_INITIAL
1561         for PARM_DECL.
1562
1563         PR c/37106
1564         * c-common.c (parse_optimize_options): Save and restore
1565         flag_strict_aliasing around decode_options call.
1566
1567 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
1568
1569         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
1570         (host_detect_local_cpu): Use it instead of casted strings to
1571         compare vendor signatures.
1572
1573 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
1574
1575         PR target/37989
1576         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
1577         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
1578
1579 2008-11-03  Catherine Moore  <clm@codesourcery.com>
1580
1581         * config/mips.c (mips_conditional_register_usage):  Handle the
1582         DSP control register.
1583         * doc/extend.texi: Document the DSP control register.
1584
1585 2008-11-03  Steve Ellcey <sje@cup.hp.com>
1586             Jakub Jelinek  <jakub@redhat.com>
1587
1588         * omp-low.c (expand_omp_for_generic): If iter_type has different
1589         precision than type and type is a pointer type, cast n1 and n2
1590         first to an integer type with the same precision as pointers
1591         and only afterwards to iter_type.
1592
1593 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
1594
1595         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
1596         (UNSPEC_GOTSYM_OFF): New unspec.
1597         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
1598         (pic_add_dot_plus_eight): Likewise.
1599         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
1600         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
1601         UNSPEC_PIC_BASE operands.
1602         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
1603         (arm_output_addr_const_extra): Handle it.
1604
1605 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1606
1607         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
1608         integer class to full integer class if the offset is not word-aligned.
1609
1610 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1611
1612         PR rtl-opt/37782
1613         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
1614         mode count is in.
1615         (doloop_optimize): Update call to doloop_modify.
1616
1617 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1618
1619         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
1620
1621 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1622
1623         PR other/37463
1624         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
1625         gcc_cv_as_cfi_directive.
1626         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
1627         merging read-only and read-write sections or assembler emits
1628         read-write .eh_frame sections.
1629         * configure: Regenerate.
1630
1631 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
1632
1633         Revert:
1634         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
1635
1636         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1637         problem.
1638         (rs6000_emit_prologue): Invert logic.
1639         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1640         (reg:P 11) instead of match_operand.
1641         (*save_fpregs_<mode>): Likewise.
1642         (*restore_gpregs_<mode>): Likewise.
1643         (*return_and_restore_gpregs_<mode>): Likewise.
1644         (*return_and_restore_fpregs_<mode>): Likewise.
1645         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1646         (reg:P 11) insted of match_operand.
1647         (*restore_gpregs_spe): Likewise.
1648         (*return_and_restore_gpregs_spe): Likewise.
1649
1650 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
1651
1652         PR tree-optimization/37684
1653         * gcc.dg/graphite/pr37684.c: New.
1654         * graphite.c (exclude_component_ref): New.
1655         (is_simple_operand): Call exclude_component_ref.
1656
1657 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
1658
1659         PR tree-optimization/36908
1660         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
1661         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
1662         (number_of_rw_in_partition): New.
1663         (partition_contains_all_rw): New.
1664         (ldist_gen): Do not distribute when one of the partitions
1665         contains all the memory operations.
1666
1667 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
1668
1669         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
1670         EDGE_IRREDUCIBLE_LOOP.
1671
1672 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
1673
1674         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
1675         where we have one entry point in the loop which isn't the head.
1676
1677 2008-11-03  Richard Guenther  <rguenther@suse.de>
1678
1679         PR middle-end/37573
1680         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
1681
1682 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
1683
1684         PR middle-end/37858
1685         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
1686         for ipa and simple ipa passes.
1687
1688 2008-11-02  Richard Guenther  <rguenther@suse.de>
1689
1690         PR tree-optimization/37542
1691         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
1692         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
1693         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
1694         (vn_nary_op_insert_stmt): Likewise.
1695         (visit_use): Likewise.
1696
1697 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
1698
1699         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
1700         (*swap): Remove.
1701         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
1702         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
1703         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
1704         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
1705         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
1706         peephole2's): Replace unspec with rotate.
1707         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
1708
1709 2008-11-02  Richard Guenther  <rguenther@suse.de>
1710
1711         PR tree-optimization/37991
1712         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
1713         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
1714         (set_ssa_val_to): Print if the value changed.
1715         (simplify_binary_expression): Strip useless conversions.
1716
1717 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
1718
1719         PR target/37939
1720         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
1721         operand.
1722
1723 2008-11-01  Richard Guenther  <rguenther@suse.de>
1724
1725         PR middle-end/37976
1726         * builtins.c (fold_builtin_strspn): Return a size_t.
1727         (fold_builtin_strcspn): Likewise.
1728
1729 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
1730
1731         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
1732         attribute for struct return convention.
1733
1734 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
1735
1736         * config/rs6000/crtsavres.asm: Really, really delete.
1737
1738 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
1739
1740         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
1741         problem.
1742         (rs6000_emit_prologue): Invert logic.
1743         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
1744         (reg:P 11) instead of match_operand.
1745         (*save_fpregs_<mode>): Likewise.
1746         (*restore_gpregs_<mode>): Likewise.
1747         (*return_and_restore_gpregs_<mode>): Likewise.
1748         (*return_and_restore_fpregs_<mode>): Likewise.
1749         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
1750         (reg:P 11) insted of match_operand.
1751         (*restore_gpregs_spe): Likewise.
1752         (*return_and_restore_gpregs_spe): Likewise.
1753
1754 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
1755
1756         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
1757         list of word switches that take args.
1758
1759 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
1760
1761         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
1762         (s390_output_pool_entry): Call it through for_each_rtx.
1763
1764         PR middle-end/37730
1765         * expr.c (store_constructor): For vectors, if target is a MEM, use
1766         target's MEM_ALIAS_SET instead of elttype alias set.
1767
1768 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1769
1770         PR target/37909
1771         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
1772         no address.
1773
1774 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
1775
1776         PR target/37878
1777         * config/rs6000/predicates.md (word_offset_memref_operand):
1778         Restructure code and look inside auto-inc/dec addresses.
1779
1780 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
1781
1782         PR target/32277
1783         * libgcov.c ( __gcov_indirect_call_profiler): Check
1784         TARGET_VTABLE_USES_DESCRIPTORS.
1785
1786 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
1787
1788         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
1789         (INITIAL_FRAME_POINTER_OFFSET): Remove.
1790         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
1791         offset if eliminating soft frame pointer.
1792         * config/spu/spu.md (stack_protect_set, stack_protect_test)
1793         (stack_protect_test_si): Add initial machine description
1794         for Stack Smashing Protector
1795
1796 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1797
1798         PR 11492
1799         * c-common.c (min_precision): Move to...
1800         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
1801         * tree.h (tree_int_cst_min_precision): Declare.
1802         * c-common.h (min_precision): Delete declaration.
1803         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
1804         multiplication of non-negative integer constants.
1805         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
1806         tree_int_cst_min_precision.
1807         (finish_enum): Likewise.
1808
1809 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
1810
1811         PR middle-end/36578
1812         * convert.c (convert_to_real): Do not optimize conversions of
1813         binary arithmetic operations between binary and decimal
1814         floating-point types.  Consider mode of target type in determining
1815         decimal type for arithmetic.  Unless
1816         flag_unsafe_math_optimizations, do not optimize binary conversions
1817         where this may change rounding behavior.
1818         * real.c (real_can_shorten_arithmetic): New.
1819         * real.h (real_can_shorten_arithmetic): Declare.
1820
1821 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1822
1823         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
1824         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
1825         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
1826         appropriate.
1827         (must_save_p): For some workarounds, interrupts need to clobber a
1828         P register.
1829         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
1830         and LC1 for WA_05000257.
1831         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
1832         WA_05000283 and WA_05000315.
1833         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
1834         (movbi): Add alternative to set CC to 1; improve code for setting
1835         CC to 0.
1836         (dummy_load): New pattern.
1837
1838 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
1839
1840         PR middle-end/37870
1841         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
1842         BLKmode for non-memory, convert using a wider MODE_INT mode
1843         or through memory.
1844
1845         PR middle-end/37913
1846         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
1847         that haven't been removed yet.
1848
1849 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1850
1851         * config/bfin/bfin.c (struct machine_function): New member
1852         has_loopreg_clobber.
1853         (bfin_expand_movmem): Set it when generating memcpy insns.
1854         (n_regs_saved_by_prologue, expand_prologue_reg_save,
1855         expand_epilogue_reg_restore): If we have hardware loops,
1856         memcpy insns (indicated by has_loopreg_clobber) or function
1857         calls, we need to save the loop registers.
1858
1859 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
1860
1861         * config/i386/i386.c (core2_cost): Fix typos in comments.
1862
1863 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
1864
1865         PR c/37924
1866         * combine.c (make_compound_operation): Don't call make_extraction with
1867         non-positive length.
1868         (simplify_shift_const_1): Canonicalize count even if complement_p.
1869
1870 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
1871
1872         * convert.c (strip_float_extensions): Do not remove or introduce
1873         conversions between binary and decimal floating-point types.
1874
1875 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
1876
1877         PR middle-end/37931
1878         * fold-const.c (distribute_bit_expr): Convert common, left and
1879         right arguments to type.
1880
1881 2008-10-28  Nick Clifton  <nickc@redhat.com>
1882
1883         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
1884         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
1885         call_really_used_regs array rather than the call_used_regs array.
1886         (mn10300_get_live_callee_saved_regs, expand_prologue,
1887         expand_epilogue, output_tst): Likewise.
1888
1889 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
1890
1891         PR target/37378
1892         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
1893         (df_get_entry_block_def_set): Neither here.
1894         (df_get_regular_block_artificial_uses): Add EH_USES registers.
1895
1896         PR tree-optimization/37879
1897         * predict.c (tree_estimate_probability): Check if last_stmt is
1898         non-NULL before dereferencing it.
1899
1900 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1901
1902         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
1903         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
1904         (ira_fast_allocation): Remove the prototype.
1905
1906         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
1907         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
1908         (color_pass): Modify the updated costs.
1909         (ira_color): Rename to color.  Make it static.
1910         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
1911         (ira_color): New function.
1912
1913         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
1914         change.
1915
1916         * ira-lives.c (last_call_num, allocno_saved_at_call): New
1917         variables.
1918         (set_allocno_live, clear_allocno_live, mark_ref_live,
1919         mark_ref_dead): Invalidate corresponding element of
1920         allocno_saved_at_call.
1921         (process_bb_node_lives): Increment last_call_num.  Setup
1922         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
1923         allocno was already saved.
1924         (ira_create_allocno_live_ranges): Initiate last_call_num and
1925         allocno_saved_at_call.
1926
1927         * ira-build.c (ira_create_allocno): Initiate
1928         ALLOCNO_UPDATED_COVER_CLASS_COST.
1929         (create_cap_allocno, propagate_allocno_info,
1930         remove_unnecessary_allocnos): Remove setting updated costs.
1931         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
1932
1933         * ira.c (ira):  Don't call ira_fast_allocation.
1934
1935         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
1936         updated costs.
1937
1938 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1939
1940         PR middle-end/37813
1941         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
1942
1943         * ira-int.h (ira_hard_regno_cover_class): New.
1944
1945         * ira-lives.c (mark_reg_live, mark_reg_dead,
1946         process_bb_node_lives): Use ira_hard_regno_cover_class.
1947
1948         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
1949         (setup_hard_regno_cover_class): New function.
1950         (ira_init): Call setup_hard_regno_cover_class.
1951
1952         * ira-costs.c (cost_class_nums): Add comment.
1953         (find_allocno_class_costs): Initiate cost_class_nums.
1954         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
1955
1956 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1957
1958         PR middle-end/37884
1959         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
1960         Rename to copy_info_to_removed_store_destinations.  Propagate
1961         conflict hard regs and register stack attribute.
1962
1963 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1964
1965         PR middle-end/37316
1966         * pa.c (function_arg_padding):  Pad complex and vector types
1967         upward in 64-bit runtime.
1968         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
1969
1970 2008-10-26  Matthias Klose  <doko@ubuntu.com>
1971
1972         * doc/install.texi: Document requirements on antlr.
1973
1974 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
1975
1976         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
1977         first.
1978
1979 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
1980
1981         PR target/37841
1982         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
1983         is defined, use it to modify the constant offset.
1984
1985         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
1986
1987         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
1988         and short arguments to the correct location as mandated by the ABI.
1989
1990 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1991
1992         PR rtl-optimization/37769
1993         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
1994
1995 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1996
1997         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
1998         unwind-dw2-Os-4-200.o.
1999
2000 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
2001
2002         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
2003         (convert_for_assignment): Remove ic_argpass_nonproto cases.
2004
2005 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2006
2007         PR tree-optimization/36038
2008         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
2009         add sizetype IV with initial value zero instead of pointer type.
2010
2011 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2012
2013         PR c/7543
2014         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
2015         around bit operation.
2016         * profile.c (is_edge_inconsistent): Likewise.
2017         * fold-const.c (truth_value_p): Move from here...
2018         * tree.h (truth_value_p): ... to here.
2019         * c-tree.h (c_expr): Update description of original_code.
2020         * c-typeck.c (parser_build_unary_op): Set original_code.
2021         (parser_build_binary_op): Update call to warn_about_parentheses.
2022         * c-common.c (warn_about_parentheses): Take two additional
2023         arguments of the operands. Use a switch. Quote operators
2024         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
2025         Add warning about !x | y and !x & y.
2026         * c-common.h (warn_about_parentheses): Update declaration.
2027
2028 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
2029
2030         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
2031         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
2032         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
2033         New variables.
2034         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
2035         (check-%): For test targets listed in lang_checks_parallelized
2036         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
2037         run the testing in multiple make goals, possibly parallel, and
2038         afterwards run dg-extract-results.sh to merge the sum and log files.
2039
2040 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
2041
2042         * config/mips/mips.c (mips_canonicalize_move_class): New function.
2043         (mips_move_to_gpr_cost): Likewise.
2044         (mips_move_from_gpr_cost): Likewise.
2045         (mips_register_move_cost): Make more fine-grained.
2046
2047 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
2048
2049         * graphite.c (graphite_apply_transformations): Check for
2050         -fgraphite-identity.
2051         * toplev.c (process_options): Add graphite_identity.
2052         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
2053
2054 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
2055
2056         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
2057         mulhisihl and mulhisihh builtins.
2058
2059         From Jie Zhang  <jie.zhang@analog.com>
2060         * config/bfin/bfin.md (composev2hi): Put operands into vector
2061         with correct order.
2062
2063 2008-10-22  Chao-ying Fu  <fu@mips.com>
2064
2065         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
2066
2067 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
2068
2069         From Mike Frysinger  <michael.frysinger@analog.com>
2070         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
2071         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
2072         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
2073         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
2074         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
2075         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
2076         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
2077         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
2078         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
2079         __ADSPBF51x__ for all of them.
2080         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
2081         -mcpu bf512, bf514, bf516, and bf518.
2082         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
2083         bf512-none, bf514-none, bf516-none, and bf518-none.
2084         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
2085         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
2086         * doc/invoke.texi (Blackfin Options): Document that
2087         -mcpu now accepts bf512, bf514, bf516, and bf518.
2088
2089 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2090
2091         PR middle-end/37882
2092         * fold-const.c (build_range_type): For 1 .. signed_max
2093         range call build_nonstandard_inter_type if signed_type_for
2094         returned a type with bigger precision.
2095
2096 2008-10-22  Richard Guenther  <rguenther@suse.de>
2097
2098         * tree.def (COMPLEX_TYPE): Constrain element type.
2099         * tree.c (build_complex_type): Assert that.
2100         * tree-ssa-structalias.c (could_have_pointers): Complex types
2101         cannot have pointers.
2102
2103 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2104
2105         PR c/30949
2106         * c-typeck.c (convert_for_assignment): Do not give declaration's
2107         location for builtins. Spell out which type was expected and which
2108         was given.
2109
2110 2008-10-22  Nick Clifton  <nickc@redhat.com>
2111
2112         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
2113         the fdpic register to be a target when running in fdpic mode.
2114
2115 2008-10-22 Rafael Espindola  <espindola@google.com>
2116
2117         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
2118         newly created statements.
2119
2120 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2121
2122         PR target/37633
2123         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
2124         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
2125         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
2126
2127 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
2128
2129         PR target/37880
2130         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
2131         Adjust -mcmodel=medium description for 2005-07-31 changes.
2132
2133 2008-10-22  Jan Hubicka  <jh@suse.cz>
2134             Jakub Jelinek  <jakub@redhat.com>
2135
2136         PR middle-end/35853
2137         * doc/invoke.texi: Remove references to obsoleted -d dumps.
2138
2139 2008-10-21  Richard Henderson  <rth@redhat.com>
2140
2141         PR 37815
2142         * emit-rtl.c (get_spill_slot_decl): Export.
2143         * emit-rtl.h (get_spill_slot_decl): Declare.
2144         * var-tracking.c (vt_add_function_parameters): Relax assertion
2145         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
2146
2147 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
2148
2149         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
2150         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
2151         of from insn.
2152
2153 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
2154
2155         PR middle-end/37669
2156         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
2157         processed by get_maxval_strlen.
2158
2159 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
2160
2161         PR target/35485
2162         * tree.c (get_file_function_name): Copy first_global_object_name.
2163         Centralize call to clean_symbol_name.
2164
2165 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
2166
2167         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
2168         * config/svr4.h (SVR4_ASM_SPEC): New.
2169         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2170         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
2171
2172         * doc/invoke.texi (Option Summary): Add -T to linker options.
2173         (Link Options): Document -T.
2174
2175 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
2176
2177         * tree-inline.c (tree_inlinable_function_p): Remove tuples
2178         debugging hack.
2179
2180         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
2181
2182         PR debug/37020
2183         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
2184
2185 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
2186
2187         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
2188         part of expression.
2189
2190 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
2191
2192         * doc/install.texi: Fix typos in previous patch.
2193
2194 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
2195
2196         * doc/install.texi: Document in-tree building of gcc and mpfr.
2197
2198 2008-10-19  Richard Guenther  <rguenther@suse.de>
2199
2200         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
2201
2202 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2203
2204         PR c/30260
2205         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
2206         (build_enumerator): Convert enumerators that fit in integer to
2207         integer type.
2208
2209 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
2210
2211         * config/i386/i386.md (unnamed peephole2): Do not force memory
2212         operands of arith or logical instructions into registers for
2213         non-TARGET_READ_MODIFY targets.
2214
2215         (ffs_cmove): Change operand 0 predicate to register_operand.
2216         Change operand 1 predicate to nonimmediate_operand.
2217         (ffsdi2): Ditto.
2218         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
2219
2220 2008-10-18  Richard Guenther  <rguenther@suse.de>
2221
2222         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
2223         VIEW_CONVERT_EXPR case against invalid gimple.
2224
2225 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2226
2227         * c-parser.c (c_parser_binary_expression): Silence the
2228         uninitialized variable warning emitted for binary_loc.
2229
2230 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
2231
2232         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
2233         translation cache.
2234
2235 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
2236
2237         PR c/33192
2238         * c-typeck.c (build_unary_op): Use omit_one_operand for
2239         IMAGPART_EXPR of real argument.
2240
2241 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2242
2243         PR tree-optimization/37664
2244         * fold-const.c (fold_binary): When optimizing comparison with
2245         highest or lowest type's value, don't consider TREE_OVERFLOW.
2246
2247 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
2248
2249         PR target/35483
2250         * Makefile.in (coverage.o): Depend on $(TM_P_H).
2251         * coverage.c: Include tm_p.h.
2252         * config/rs6000/x-aix (jc1): Override LDFLAGS.
2253         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
2254         dollar signs from PREFIX.
2255         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
2256         instead of manual strip_name_encoding.
2257
2258 2008-10-16  Richard Guenther  <rguenther@suse.de>
2259
2260         PR middle-end/37418
2261         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
2262         volatile qualified functions or methods as relevant.
2263
2264 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
2265
2266         PR tree-optimization/37525
2267         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
2268         sizetype unsigned constants, both in the case of C and bounds.
2269
2270 2008-10-15  Jan Hubicka  <jh@suse.cz>
2271
2272         * ira-emit.c (change_regs): Return false when replacing reg by itself.
2273
2274 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
2275
2276         PR target/37633
2277         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
2278         HARD_REGNO_CALL_PART_CLOBBERED.
2279
2280 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2281
2282         PR middle-end/37535
2283         * ira-lives.c (mark_early_clobbers): Remove.
2284         (make_pseudo_conflict, check_and_make_def_use_conflicts,
2285         check_and_make_def_conflicts,
2286         make_early_clobber_and_input_conflicts,
2287         mark_hard_reg_early_clobbers): New functions.
2288         (process_bb_node_lives): Call
2289         make_early_clobber_and_input_conflicts and
2290         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
2291
2292         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
2293         early clobbers of pseudo-registers.
2294
2295 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2296
2297         PR middle-end/37674
2298         * ira-build.c (ira_flattening): Recalculate
2299         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
2300         from the scratch instead of the propagation.
2301
2302 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2303
2304         * doc/rtl.texi (const_double): Remove the "addr" operand.
2305         Describe CONST_DOUBLE_* macros under const_double rather
2306         than const_vector.
2307         (const_fixed): Fix the operand description.
2308         (const): Add an @findex directive.
2309         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
2310         after the constant rtl table.
2311         (fix): Combine floating-point and fixed-point descriptions.
2312         Fix hyphenation.
2313         * sched-deps.c (sched_analyze_2): Remove reference to
2314         CONST_DOUBLE_CHAIN.
2315
2316 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
2317
2318         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
2319         UNSPEC_GOTSYM_OFFs.
2320         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
2321         for UNSPEC_GOTSYM_OFFs.
2322         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
2323         (add_GOT_to_pic_reg): Use it.
2324         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
2325
2326 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
2327             Harsha Jagasia  <harsha.jagasia@amd.com>
2328
2329         PR tree-optimization/37485
2330         * graphite.c (gmp_cst_to_tree): Moved.
2331         (iv_stack_entry_is_constant): New.
2332         (iv_stack_entry_is_iv): New.
2333         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
2334         (loop_iv_stack_insert_constant): New.
2335         (loop_iv_stack_pop): Use new datatpype.
2336         (loop_iv_stack_get_iv): Same.
2337         (loop_iv_stack_get_iv_from_name): Same.
2338         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
2339         (loop_iv_stack_patch_for_consts): New.
2340         (loop_iv_stack_remove_constants): New.
2341         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
2342         (translate_clast): Call loop_iv_stack_patch_for_consts and
2343         loop_iv_stack_remove_constants.
2344         (gloog): Use new datatype.  Redirect construction edge to end
2345         block to avoid accidental deletion.
2346         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
2347         iv stack entry.
2348         (union iv_stack_entry_data): New.  Data in iv stack entry.
2349         (struct iv_stack_entry): New.  Datatype for iv stack entries.
2350
2351 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2352
2353         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
2354         * graphite.c (free_scop): Same.
2355         (build_scops): Same.
2356         (free_scattering): New.
2357         (build_cloog_prog): Call free_scattering.
2358         (patch_phis_for_virtual_defs): Fix memleak.
2359         (graphite_trans_bb_strip_mine): Same.
2360         (limit_scops): Same.
2361
2362 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2363             Harsha Jagasia  <harsha.jagasia@amd.com>
2364
2365         PR tree-optimization/37828
2366         * graphite.c (graphite_trans_loop_block): Do not loop block
2367         single nested loops.
2368
2369 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
2370
2371         PR tree-optimization/37686
2372         * tree-loop-linear.c (linear_transform_loops): Build a
2373         loop nest vector.  Pass it to lambda_compute_access_matrices.
2374         * tree-data-ref.h (struct access_matrix): Store the loop nest
2375         relative to which it encodes the information.
2376         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
2377         (am_vector_index_for_loop): Reimplemented: iterate over the
2378         loop nest for finding the loop index in the access matrix.
2379         (lambda_compute_access_matrices): Update declaration.
2380         * lambda-code.c (build_access_matrix): Pass the loop nest and
2381         record it.
2382         (lambda_compute_access_matrices): Same.
2383
2384 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
2385
2386         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
2387         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
2388         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
2389         already implies hard float.  Also fix several insn condition
2390         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
2391
2392 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
2393
2394         PR target/35483
2395         Based on patches by Laurent Vivier.
2396         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
2397         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
2398         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
2399         dollar sign to underscore.
2400         (ASM_OUTPUT_EXTERNAL): Same.
2401         (ASM_OUTPUT_LABELREF): New.
2402         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
2403
2404         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
2405         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
2406         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
2407         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
2408
2409 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
2410
2411         PR tree-optimization/36881
2412         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
2413         that each value doesn't need runtime relocations, for !flag_pic
2414         check that each value is just a valid initializer constant.
2415
2416 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
2417
2418         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
2419         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
2420         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
2421         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
2422         GR_AND_ACC_REGS.
2423         (REG_CLASS_NAMES): Update accordingly.
2424         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
2425         rather than an unpredictable descriptive string.
2426         * config/mips/mips.c (mips_register_move_cost): Remove comment.
2427         (mips_register_move_cost): Check for specific COP*_REGS classes,
2428         instead of ALL_COP_AND_GR_REGS.
2429         (mips_ira_cover_classes): New function.
2430         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
2431         (TARGET_IRA_COVER_CLASSES): Define.
2432
2433 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
2434
2435         PR c++/37553
2436         * tree.c (build_type_attribute_qual_variant): Hash on the
2437         unqualified type, and don't overwrite an existing
2438         (type_hash_eq): Make the TYPE_NAME of the types significant, to
2439         allow distinguishing between wchar_t and its underlying type. This
2440         also means that we'll retain a little more typedef information.
2441
2442 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
2443             Dmitry Melnik  <dm@ispras.ru>
2444             Dmitry Zhurikhin  <zhur@ispras.ru>
2445             Alexander Monakov  <amonakov@ispras.ru>
2446             Maxim Kuvyrkov  <maxim@codesourcery.com>
2447
2448         * target.h (struct gcc_target): Update prototypes of needs_block_p
2449         and gen_spec_check.
2450         * haifa-sched.c (create_check_block_twin): Update calls to the above.
2451         * sel-sched.c (create_speculation_check): Likewise.
2452         * doc/tm.texi: Provide documentation for new target hooks.
2453
2454         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
2455         (ia64_gen_spec_insn): Removed.
2456         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
2457         ia64_gen_spec_check): New static functions.
2458         (ia64_alloc_sched_context, ia64_init_sched_context,
2459         ia64_set_sched_context, ia64_clear_sched_context,
2460         ia64_free_sched_context, ia64_get_insn_spec_ds,
2461         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
2462         (ia64_needs_block_p): Change prototype.
2463         (ia64_gen_check): Rename to ia64_gen_spec_check.
2464         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
2465         into declaration, add special memory dependencies handling.
2466         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
2467         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
2468         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
2469         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
2470         Define new target hooks.
2471         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
2472         (ia64_optimization_options): Turn on selective scheduling with -O3,
2473         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
2474         default with selective scheduling.
2475         (ia64_override_options): Initialize align_loops and align_functions
2476         to 32 and 64, respectively.  Set global selective scheduling flags
2477         according to target-dependent flags.
2478         (rtx_needs_barrier): Support UNSPEC_LDS_A.
2479         (group_barrier_needed): Use new mstop-bit-before-check flag.
2480         Add heuristic.
2481         (dfa_state_size): Make global.
2482         (spec_check_no, max_uid): Remove.
2483         (mem_ops_in_group, current_cycle): New variables.
2484         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
2485         Initialize new variables.
2486         (is_load_p, record_memory_reference): New functions.
2487         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
2488         reached.
2489         (ia64_variable_issue): Change use of current_sched_info to
2490         sched_deps_info.  Update comment.  Note if a load or a store is issued.
2491         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
2492         advance if maximal number of loads or stores was issued on current
2493         cycle.
2494         (scheduled_good_insn): New static helper function.
2495         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
2496         a group barrier is needed.  Fix vertical spacing.  Guard the code
2497         doing state transition with last_scheduled_insn check.
2498         Mark that a stop bit should be before current insn if there was a
2499         cycle advance.  Update current_cycle and mem_ops_in_group.
2500         (ia64_h_i_d_extended): Change use of current_sched_info to
2501         sched_deps_info. Reallocate stops_p by larger chunks.
2502         (struct _ia64_sched_context): New structure.
2503         (ia64_sched_context_t): New typedef.
2504         (ia64_alloc_sched_context, ia64_init_sched_context,
2505         ia64_set_sched_context, ia64_clear_sched_context,
2506         ia64_free_sched_context): New static functions.
2507         (gen_func_t): New typedef.
2508         (get_spec_load_gen_function): New function.
2509         (SPEC_GEN_EXTEND_OFFSET): Declare.
2510         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
2511         (get_mode_no_for_insn): Change the condition that prevents use of
2512         special hardware registers so it can now handle pseudos.
2513         (get_spec_unspec_code): New function.
2514         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
2515         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
2516         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
2517         during selective scheduling.
2518         (ia64_speculate_insn): Use ds_get_speculation_types when
2519         determining whether we need to change the pattern.
2520         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
2521         (ia64_spec_check_src_p): Support new speculation/check codes.
2522         (struct bundle_state): New field.
2523         (issue_nops_and_insn): Initialize it.
2524         (insert_bundle_state): Minimize mid-bundle stop bits.
2525         (important_for_bundling_p): New function.
2526         (get_next_important_insn): Use important_for_bundling_p.
2527         (bundling): When shifting TImode from unimportant insns, ignore
2528         also group barriers.  Assert that best state is found before
2529         the backward bundling pass.  Print number of mid-bundle stop bits.
2530         Minimize mid-bundle stop bits.  Check correct calculation of
2531         mid-bundle stop bits.
2532         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
2533         (final_emit_insn_group_barriers): Emit stop bits before insns starting
2534         a new cycle.
2535         (sel2_run): New variable.
2536         (ia64_reorg): When flag_selective_scheduling2 is set, run the
2537         selective scheduling pass instead of schedule_ebbs.
2538
2539         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
2540         (UNSPEC_LDS_A): New UNSPEC.
2541         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
2542         movti_internal, movsf_internal, movdf_internal,
2543         movxf_internal): Make visible.  Add speculable* attributes.
2544         (output_c_nc): New mode attribute.
2545         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
2546         mov<mode>_nc, zero_extend<mode>di2_nc,
2547         advanced_load_check_nc_<mode>): New insns.
2548         (zero_extend*): Add speculable* attributes.
2549
2550         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
2551         (msched-stop-bits-after-every-cycle): Likewise.
2552         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
2553         Likewise.
2554         (msched-spec-verbose): Remove.
2555         (msched-prefer-non-data-spec-insns,
2556         msched-prefer-non-control-spec-insns,
2557         msched-count-spec-in-critical-path,
2558         msel-sched-dont-check-control-spec): Use Target  Report Var
2559         instead of Common Report Var.
2560
2561         * config/ia64/itanium2.md: Remove incorrect bypass.
2562
2563         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
2564
2565 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
2566
2567         PR middle-end/37805
2568         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
2569         and -fhelp=separate.
2570
2571 2008-10-14  Ben Elliston  <bje@au.ibm.com>
2572
2573         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
2574
2575 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
2576
2577         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
2578         non-integer modes.
2579
2580 2008-10-13  Matthias Klose  <doko@ubuntu.com>
2581
2582         * config/pa/linux-atomic.c: Work around missing header file
2583         for hppa64-linux-gnu targets.
2584
2585 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2586             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
2587             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
2588             Grace Cao  <grace_cao@playstation.sony.com>
2589
2590         * doc/invoke.texi (-mgen-cell-microcode): Document.
2591         (-mwarn-cell-microcode): Document.
2592         * cfglayout.c (locator_location): Export.
2593         * rtl.h (locator_location): Define prototype.
2594         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
2595         New predicate.
2596         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
2597         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
2598         (mwarn-cell-microcode): New option.
2599         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
2600         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
2601         cell and not already set.
2602         Turn off string instructions if not generating cell microcode.
2603         (rs6000_final_prescan_insn): New function that warns about microcoded
2604         instructions.
2605         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
2606         * config/rs6000/rs6000.md
2607         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
2608         the instruction would have been microcoded on the Cell.  Set
2609         cell_micro to always on unnamed patterns for the string instructions.
2610         (cell_micro): Update definition, remove load/store conditional
2611         microcoded.
2612         (sign_extend:DI): Define new pattern for non microcoded version.
2613         (sign_extend:SI): Likewise.
2614         (compare (div:P)): Set cell_micro to not.
2615         (andsi3): Define as an expand.
2616         (andsi3_mc): New pattern.
2617         (andsi3_nomc): New pattern.
2618         (andsi3_internal0_nomc): New pattern.
2619         (andsi3_internal2): Rename to ...
2620         (andsi3_internal2_mc): this and enable iff generating microcode.
2621         (andsi3_internal3): Rename to ...
2622         (andsi3_internal3_mc): this and enable iff generating microcode.
2623         (andsi3_internal4): Enable iif generating microcode.
2624         (andsi3_internal5): Rename to ..
2625         (andsi3_internal5_mc): this and enable iff generating microcode.
2626         (andsi3_internal5_nomc): New pattern.
2627         (extzvdi_internal1): Enable iff generating microcode.
2628         (extzvdi_internal2): Likewise.
2629         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
2630         (anddi3): Change to expand.
2631         (anddi3_mc): Rename from anddi3.
2632         (anddi3_no_mc): New pattern.
2633         (anddi3_internal2): Rename to ..
2634         (anddi3_internal2_mc): this and enable iff generating microcode.
2635         (anddi3_internal2_nomc): New pattern.
2636         (anddi3_internal3): Rename to ..
2637         (anddi3_internal3_mc): this and enable iff generating microcode.
2638         (anddi3_internal3_nomc): New pattern.
2639         (movti_string): Set cell_micro to always if TARGET_STRING.
2640         (stmsi8): Set cell_micro to always.
2641         (stmsi7): Likewise.
2642         (stmsi6): Likewise.
2643         (stmsi5): Likewise.
2644         (stmsi4): Likewise.
2645         (stmsi3): Likewise.
2646         (stmsi8_power): Likewise.
2647         (stmsi7_power): Likewise.
2648         (stmsi6_power): Likewise.
2649         (stmsi5_power): Likewise.
2650         (stmsi4_power): Likewise.
2651         (stmsi3_power): Likewise.
2652         (movsi_update2): Enable iff generating microcode.
2653         (movhi_update3): Likewise.
2654         (lmw): Set cell_micro to always.
2655
2656 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
2657
2658         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
2659         * config/s390/s390.c (machine_function): Remove
2660         decomposed_literal_pool_addresses_ok_p.
2661         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
2662         the difference of two labels.
2663         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
2664         (s390_pool_offset): New function.
2665         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
2666         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
2667
2668 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
2669
2670         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
2671         (powerpc*-*-linux-gnu*): Describe.
2672         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
2673         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2674         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2675         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2676         config/rs6000/e500crtres32gpr.asm,
2677         config/rs6000/e500crtres64gpr.asm,
2678         config/rs6000/e500crtres64gprctr.asm,
2679         config/rs6000/e500crtrest32gpr.asm,
2680         config/rs6000/e500crtrest64gpr.asm,
2681         config/rs6000/e500crtresx32gpr.asm,
2682         config/rs6000/e500crtresx64gpr.asm,
2683         config/rs6000/e500crtsav32gpr.asm,
2684         config/rs6000/e500crtsav64gpr.asm,
2685         config/rs6000/e500crtsav64gprctr.asm,
2686         config/rs6000/e500crtsavg32gpr.asm,
2687         config/rs6000/e500crtsavg64gpr.asm,
2688         config/rs6000/e500crtsavg64gprctr.asm: Use it.
2689         * config/rs6000/crtsavres.asm: Really remove.
2690
2691 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
2692
2693         Fix PR/25502
2694         * c-format.c (convert_format_name_to_system_name): Use
2695         TARGET_OVERRIDES_FORMAT_INIT.
2696         * config.gcc (extra_options): Add for mingw targets mingw.opt.
2697         * config/i386/mingw.opt: New.
2698         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
2699         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
2700         (ms_printf_length_specs): Removed const specifier.
2701         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
2702         * doc/invoke.texi (Wno-pedantic-ms-format): New.
2703
2704 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2705
2706         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
2707         * doc/install.texi: Bump recommended MPFR to 2.3.2.
2708
2709 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
2710
2711         PR middle-end/37808
2712         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
2713         sure that ref has valid bb.
2714
2715 2008-10-12  Richard Henderson  <rth@redhat.com>
2716
2717         PR middle-end/37447
2718         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
2719         * alias.c (value_addr_p, stack_addr_p): Remove.
2720         (nonoverlapping_memrefs_p): Remove IRA special case.
2721         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
2722         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
2723         * reload1.c (alter_reg): Use it.
2724
2725 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
2726
2727         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
2728         of registers instead of eax, ebx, ecx and edx.  Use for loop
2729         and check register for non-zero value before the call
2730         to decode_caches_intel.
2731
2732 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2733
2734         PR rtl-optimization/37448
2735         * df.h: (df_ref_class): New enum.
2736         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
2737         (struct df_ref): Replaced with union df_ref_d.
2738         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
2739         New members of df_ref_d union.
2740         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
2741         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
2742         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
2743         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
2744         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
2745         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
2746         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
2747         (df_scan_bb_info, df_bb_regno_first_def_find,
2748         df_bb_regno_last_def_find, df_find_def, df_find_use,
2749         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2750         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
2751         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
2752         df_get_artificial_defs, df_get_artificial_uses, union_defs)
2753         Replaced struct df_ref * with df_ref.
2754         * df-scan.c (df_collection_rec, df_null_ref_rec,
2755         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
2756         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
2757         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
2758         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
2759         df_reorganize_refs_by_reg_by_reg,
2760         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
2761         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
2762         df_sort_and_compress_refs, df_install_ref, df_install_refs,
2763         df_ref_record, df_get_conditional_uses, df_get_call_refs,
2764         df_bb_refs_record, df_exit_block_uses_collect,
2765         df_record_exit_block_uses, df_reg_chain_mark,
2766         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
2767         df_ref * with df_ref.
2768         (df_ref_record, df_uses_record, df_ref_create_structure): Added
2769         df_ref_class parameter.
2770         (df_scan_problem_data): Added new pools for different types of refs.
2771         (df_scan_free_internal, df_scan_alloc, df_free_ref,
2772         df_ref_create_structure): Processed new ref pools.
2773         (df_scan_start_dump): Added counts of refs and insns.
2774         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
2775         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2776         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
2777         code to pass df_ref_class down to ref creation functions.
2778         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
2779         df_reg_chain_mark): Use macros to hide references to df_refs.
2780         (df_ref_chain_change_bb): Removed.
2781         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
2782         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2783         Enhanced to understand df_ref union structure.
2784         * fwprop.c (local_ref_killed_between_p, use_killed_between,
2785         all_uses_available_at, update_df, try_fwprop_subst,
2786         forward_propagate_subreg, forward_propagate_and_simplify,
2787         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
2788         df_ref * with df_ref.
2789         (use_killed_between, all_uses_available_at): Use macros to hide
2790         references to df_refs.
2791         * regstat.c (regstat_bb_compute_ri,
2792         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
2793         df_ref.
2794         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
2795         see_handle_relevant_refs, see_analyze_one_def,
2796         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
2797         struct df_ref * with df_ref.
2798         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
2799         global_conflicts): Replaced struct df_ref * with df_ref.
2800         * ddg.c (create_ddg_dep_from_intra_loop_link,
2801         add_cross_iteration_register_deps, build_inter_loop_deps):
2802         Replaced struct df_ref * with df_ref.
2803         (create_ddg_dep_from_intra_loop_link,
2804         add_cross_iteration_register_deps): Use macros to hide references
2805         to df_refs.
2806         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
2807         df_ref * with df_ref.
2808         * df-core.c (df_bb_regno_first_def_find,
2809         df_bb_regno_last_def_find, df_find_def, df_find_use,
2810         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
2811         debug_df_ref): Replaced struct df_ref * with df_ref.
2812         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
2813         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
2814         df_ref.
2815         * web.c (union_defs, entry_register, replace_ref, web_main):
2816         Replaced struct df_ref * with df_ref.
2817         (union_defs, replace_ref): Use macros to hide references to df_refs.
2818         * global.c (compute_regs_asm_clobbered, build_insn_chain):
2819         Replaced struct df_ref * with df_ref.
2820         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
2821         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
2822         Replaced struct df_ref * with df_ref.
2823         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
2824         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
2825         with df_ref.
2826         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
2827         * df-byte-scan.c (df_compute_accessed_bytes_extract,
2828         df_compute_accessed_bytes_strict_low_part,
2829         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
2830         Replaced struct df_ref * with df_ref.
2831         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
2832         * init-regs.c (initialize_uninitialized_regs): Replaced struct
2833         df_ref * with df_ref.
2834         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
2835         check_dependency, check_dependencies, record_uses): Replaced
2836         struct df_ref * with df_ref.
2837         (invariant_for_use, check_dependency): Use macros to hide
2838         references to df_refs.
2839         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
2840         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
2841         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
2842         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
2843         references to df_refs.
2844         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
2845         with df_ref.
2846         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
2847         * df-problems.c (df_rd_bb_local_compute_process_def,
2848         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
2849         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
2850         df_chain_remove_problem, df_chain_create_bb_process_use,
2851         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
2852         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
2853         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
2854         df_byte_lr_simulate_artificial_refs_at_top,
2855         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
2856         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
2857         df_simulate_uses, df_simulate_artificial_refs_at_end,
2858         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
2859         df_ref.
2860         (df_chain_dump): Use macros to hide references to df_refs.
2861         * config/mips/mips.c (r10k_simplify_address): Replaced struct
2862         df_ref * with df_ref.
2863         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
2864         mark_artificial_uses, mark_reg_dependencies,
2865         byte_dce_process_block): Replaced struct df_ref * with df_ref.
2866
2867 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2868
2869         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
2870         head comment.
2871         (array_ref_element_size): Likewise.
2872         (array_ref_low_bound): Likewise.
2873         (array_ref_up_bound): Likewise.
2874         * expr.c (contains_packed_reference): Likewise.
2875         (array_ref_element_size): Likewise.
2876         (array_ref_low_bound): Likewise.
2877         (array_ref_up_bound): Likewise.
2878         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
2879         with ARRAY_RANGE_REF.
2880         (idx_find_step): Likewise.
2881         (idx_record_use): Likewise.
2882         (strip_offset_1): Likewise.
2883         (idx_remove_ssa_names): Likewise.
2884
2885 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
2886             Andi Kleen  <ak@linux.intel.com>
2887
2888         * config/i386/cpuid.h (__cpuid_count): New defines.
2889         * config/i386/driver-i386.c (struct cache_desc): New structure.
2890         (describe_cache): Use struct cache_desc to pass cache descriptions.
2891         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
2892         (detect_caches_amd): Use struct cache_desc to describe caches.
2893         (decode_caches_intel): Use struct cache_desc to pass cache
2894         descriptions.  Update descriptions to match latest (rev -032,
2895         December 2007) CPUID documentation.  Do not check valid bit here.
2896         Check for Xeon MP value 0x49 problems.
2897         (detect_caches_cpuid2): New function, split from detect_caches_intel.
2898         Check valid bit before calling decode_caches_intel.  Detect number
2899         of times to repeat CPUID instruction.
2900         (detect_caches_cpuid4): New function.
2901         (detect_caches_intel): Depending on max_level, call
2902         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
2903         only when other methods fail to provide valid L2 cache description.
2904
2905 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2906
2907         PR middle-end/37608
2908         * pa.md (call, call_value): Generate an rtx for register r4 and pass
2909         it to PIC call patterns.
2910         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
2911         code generation and attributes from pattern.  Change peephole2 to
2912         split for noreturn case.  Revise split pattern for non noreturn case.
2913         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
2914         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
2915         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
2916         asserts.
2917
2918 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
2919
2920         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
2921         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
2922         and fp_type.
2923         (divdf3): Reformat long line.
2924
2925 2008-10-11  Michael J. Eager  <eager@eagercon.com>
2926
2927         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
2928         -mfpu options.
2929         (rs6000_handle_option): Process -mfpu options.
2930         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
2931         (enum fpu_type_t): New.
2932         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
2933         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
2934         fp_type.
2935         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
2936         (floatdidf2): Add TARGET_SINGLE_FPU condition.
2937         * config/rs6000/rs6000.opt (-mfpu): New.
2938         (-mxilinx-fpu): New.
2939         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
2940         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
2941         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
2942         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
2943         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
2944
2945 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
2946
2947         PR target/35760
2948         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
2949         LO_SUM on Darwin if mode has just one unit.
2950
2951 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
2952
2953         PR debug/37002
2954         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
2955         has been optimized out.
2956
2957 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
2958
2959         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
2960         instead of PIC_DIRECT_ADDR_P.
2961         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
2962         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
2963         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
2964         (PIC_OFFSET_P): Rename to...
2965         (PCREL_SYMOFF_P): ...this.
2966         (PIC_DIRECT_ADDR_P): Delete.
2967         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
2968         PIC_OFFSET_P.
2969         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
2970         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
2971         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
2972         * config/sh/sh.c (print_operand): Remove CONST handling.
2973         (unspec_caller_rtx_p): Rewrite to use split_const and check
2974         the operands of UNSPEC bases.
2975         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
2976         with (unspec [A B] UNSPEC_SYMOFF).
2977         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
2978         UNSPEC_PCREL_SYMOFF.
2979         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2980         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
2981         (UNSPEC_EXTRACT_U16): Likewise.
2982         (UNSPEC_SYMOFF): Likewise.
2983         (UNSPEC_PCREL_SYMOFF): Likewise.
2984         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
2985         of constants.
2986         (movsi_const_16bit): Likewise.
2987         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
2988         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
2989         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
2990         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
2991         with (unspec [A B] UNSPEC_SYMOFF).
2992         (symPLT_label2reg): Replace (minus A (minus B pc)) with
2993          (unspec [A B] PCREL_UNSPEC_SYMOFF).
2994         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
2995         (Csu): Likewise UNSPEC_EXTRACT_U16.
2996         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
2997         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
2998
2999 2008-10-10  Stepan Kasal  <skasal@redhat.com>
3000
3001         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
3002         for loop strip mining and loop blocking.
3003
3004 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3005
3006         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
3007         vary types depending on debug info.
3008
3009 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
3010
3011         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
3012         before ensuring it's already computed.
3013
3014 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
3015
3016         * rtl.h (locator_eq): New decl.
3017         * cfglayout.c (locator_scope): New function.
3018         (insn_scope): Use it.
3019         (locator_eq): New function.
3020         (fixup_reorder_chain): Search for last insn in src bb
3021         that has locator set or first insn in dest bb.  Use
3022         locator_eq instead of == to compare locators.
3023         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
3024         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
3025         == to compare locators.
3026
3027         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
3028         as used.
3029         * gimple-low.c (lower_function_body, lower_gimple_return,
3030         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
3031         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
3032         goto_block on edges if goto_locus is known.
3033
3034         PR middle-end/37774
3035         * tree.h (get_object_alignment): Declare.
3036         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
3037         get_object_alignment if needed.
3038         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
3039         handling to ...
3040         (get_object_alignment): ... here.  New function.  Try harder to
3041         determine alignment from get_inner_reference returned offset.
3042
3043 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3044
3045         * graphite.c (gloog): Don't call find_unreachable_blocks
3046         before delte_unreachable_blocks.
3047
3048         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
3049         goto_locus of true_edge into RTL locator.
3050
3051 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
3052
3053         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
3054         (*jcc_btdi_mask_rex64): Ditto.
3055         (*jcc_btsi): Ditto.
3056         (*jcc_btsi_mask): Ditto.
3057         (*jcc_btsi_1): Ditto.
3058         (*jcc_btsi_mask_1): Ditto.
3059
3060 2008-10-08  Paul Brook  <paul@codesourcery.com>
3061
3062         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
3063         compatible profiler (__gnu_mcount_nc).
3064         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3065
3066 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3067
3068         * config/i386/i386.c (initial_ix86_tune_features): Add
3069         X86_TUNE_USE_VECTOR_FP_CONVERTS.
3070         * config/i386/i386.h (ix86_tune_indices): Likewise.
3071         (TARGET_USE_VECTOR_FP_CONVERTS): New.
3072
3073         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
3074         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
3075         for FP to FP splitters.
3076
3077 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
3078
3079         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
3080         splitter.
3081
3082 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
3083
3084         PR target/36635
3085         PR target/37290
3086         PR rtl-optimization/37341
3087         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
3088         to ORIG_BB, pass through ORIG_BB recursively.
3089         (cse_condition_code_reg): Adjust caller.
3090
3091 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
3092
3093         * sdbout.c (sdbout_one_type): Treat the value type
3094         CONST_DECL for enumerals.
3095
3096 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3097
3098         * config/i386/i386.md: Remove trailing white spaces.
3099
3100 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
3101
3102         PR rtl-optimization/37448
3103         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
3104         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
3105         Make unsigned long.
3106         (struct output_info) [count]: Renamed total_created and made
3107         unsigned long.
3108         (struct output_info) [size]: Renamed total_allocated and made
3109         unsigned long.
3110         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
3111         Properly keep track of desc->size.
3112         (print_statistics, dump_alloc_pool_statistics): Enhance the
3113         printing of statistics to print the number of elements and to use
3114         unsigned longs.
3115
3116 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3117
3118         PR middle-end/37576
3119         * opts.h (CL_SAVE): Move up to flags range.
3120         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
3121         CL_COMMON): Renumber.
3122         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
3123         * opts.c (common_handle_option): Revert last change.
3124
3125 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3126
3127         * config/i386/i386-protos.h (ix86_schedule): New.
3128
3129         * config/i386/i386.c (ix86_schedule): New.
3130         (override_options): Add schedule to processor_alias_table.  Set
3131         ix86_schedule from the schedule field in processor_alias_table.
3132         (ix86_function_specific_save): Save ix86_schedule.
3133         (ix86_function_specific_restore): Restore ix86_schedule.
3134
3135         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
3136         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
3137         and generic32.
3138
3139         * config/i386/i386.opt: Add schedule.
3140
3141         * config/i386/ppro.md: Remove generic32.
3142
3143 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
3144
3145         PR c/35437
3146         * expr.c (count_type_elements): Handle ERROR_MARK.
3147
3148 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3149
3150         PR debug/29609
3151         PR debug/36690
3152         PR debug/37616
3153         * basic-block.h (struct edge_def): Add goto_block field.
3154         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
3155         one insn with locus corresponding to edge's goto_locus if !optimize.
3156         * profile.c (branch_prob): Copy edge's goto_block.
3157         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
3158         emitted jumps.
3159         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
3160         locator in between the merged basic blocks if !optimize and needed.
3161         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
3162         goto_locus into RTL locator.  For unconditional jump use that
3163         locator for the jump insn.
3164         (expand_gimple_cond): Convert goto_block and goto_locus into
3165         RTL locator for all remaining edges.  For unconditional jump
3166         use that locator for the jump insn.
3167         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
3168         there is more than one edge or insn locator along the forwarding
3169         edges and !optimize.  If there is just one, set e->goto_locus.
3170         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
3171         edge's goto_block.
3172         (move_block_to_fn): Adjust edge's goto_block.
3173
3174 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3175
3176         PR middle-end/37731
3177         * expmed.c (expand_mult): Properly check DImode constant in
3178         CONST_DOUBLE.
3179
3180 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
3181
3182         PR debug/37738
3183         * dwarf2out.c (common_block_die_table): New variable.
3184         (common_block_die_table_hash, common_block_die_table_eq): New
3185         functions.
3186         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
3187         COMMON block in the current scope rather than globally.  Optimize
3188         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
3189         DW_OP_addr SYMBOL_REF+off.
3190
3191 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3192
3193         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
3194         Return true for non-addressable GIMPLE operands.
3195
3196 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
3197
3198         PR target/24765
3199         * config/i386/i386.c (initial_ix86_tune_features): Remove
3200         X86_TUNE_USE_BIT_TEST.
3201         * config/i386/i386.h (ix86_tune_indices): Likewise.
3202         (TARGET_USE_BIT_TEST): Removed.
3203
3204 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3205
3206         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
3207
3208 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
3209
3210         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
3211         (mul<mode>3_mul3): ... into this new template.
3212
3213 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
3214
3215         * gimplify.c (gimplify_arg): Add location argument.  Use it.
3216         (gimplify_call_expr): Pass location to gimplify_arg.
3217         (gimplify_modify_expr_to_memcpy): Same.
3218         (gimplify_modify_expr_to_memset): Same.
3219
3220 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3221
3222         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3223         Update calls to build_unary_op and build_indirect_ref for location
3224         changes.
3225
3226 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
3227
3228         build_modify_expr.
3229         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
3230         * c-typeck.c (array_to_pointer_conversion): Pass location to
3231         build_unary_op.
3232         (function_to_pointer_conversion): Use error_at and warning_at.
3233         (build_indirect_ref): Same.
3234         (build_array_ref): Pass location to build_binary_op.
3235         (parser_build_unary_op): Do not set location after calling
3236         build_unary_op.
3237         (build_unary_op): Add location argument.  Use it throughout.  Set
3238         EXPR_LOCATION before returning new tree.
3239         (build_modify_expr): Same.
3240         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
3241         returning node.
3242         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
3243         build_indirect_ref, build_modify_expr.
3244         (c_finish_omp_for): Same.  Use error_at instead of error.
3245         * c-common.c (c_common_truthvalue_conversion): Pass location to
3246         build_unary_op.
3247         (warn_for_div_by_zero): Add location argument.
3248         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
3249         build_unary_op, warn_for_div_by_zero.
3250         * c-parser.c (c_parser_typeof_specifier): Use
3251         protected_set_expr_location.
3252         (c_parser_statement_after_labels): Same.
3253         (c_parser_condition): Same.
3254         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
3255         (c_parser_conditional_expression): Use protected_set_expr_location.
3256         (c_parser_unary_expression): Pass location to build_indirect_ref.
3257         (c_parser_postfix_expression_after_primary): Pass location to
3258         build_indirect_ref, build_unary_op.
3259         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
3260
3261 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
3262
3263         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
3264         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
3265         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
3266         r14000 and r16000.
3267         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
3268         (mips_issue_rate): Handle PROCESSOR_R10000.
3269         * config/mips/mips.md (cpu): Add r10000.
3270         Include r10000.md.
3271         * config/mips/10000.md: New file.
3272
3273 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3274
3275         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
3276         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
3277         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
3278
3279 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3280
3281         * config/darwin-protos.h (machopic_function_base_name): Delete.
3282         (machopic_function_base_sym): Likewise.
3283         (machopic_gen_offset): Declare.
3284         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
3285         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
3286         * config/darwin.c (machopic_function_base_name): Delete.
3287         (machopic_function_base_sym): Likewise.
3288         (gen_pic_offset): Rename to...
3289         (machopic_gen_offset): ...this and remove the pic_base argument.
3290         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
3291         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
3292         crtl->uses_pic_offset_table.
3293         (machopic_indirect_data_reference): Use new machopic_gen_offset
3294         interface.
3295         (machopic_legitimize_pic_address): Likewise.
3296         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
3297
3298         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
3299         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
3300         * config/i386/i386.c (output_set_got): Likewise.
3301         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
3302         instead of a MINUS.
3303         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
3304         (legitimate_address_p): Likewise.
3305         (output_pic_addr_const): Likewise.
3306         (output_addr_const_extra): Likewise.
3307         (ix86_delegitimize_address): Expect darwin_local_data_pic to
3308         match an UNSPEC rather than a MINUS.
3309         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
3310         (builtin_setjmp_receiver): Use machopic_gen_offset.
3311         * config/i386/predicates.md (pic_symbolic_operand): Handle
3312         UNSPEC_MACHOPIC_OFFSET.
3313
3314         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
3315         Use machopic_gen_offset and machopic_operand_p.
3316         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
3317         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
3318         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
3319         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
3320         Set crtl->uses_pic_offset_table.
3321
3322 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
3323
3324         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
3325         Declare.
3326         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
3327         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
3328         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
3329         (constant_pool_expr_p): Use split_const and check the base.
3330         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
3331         instead of a MINUS.
3332         (legitimate_constant_pool_address_p): Check toc_relative_p
3333         instead of constant_pool_expr_p.
3334         (print_operand_address): Always use output_addr_const for
3335         constant pool addresses.
3336         (rs6000_output_addr_const_extra): New function.
3337         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
3338
3339 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
3340
3341         PR middle-end/37535
3342
3343         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3344         (mark_ref_live, mark_ref_dead): Use them.
3345         (def_conflicts_with_inputs_p): Remove.
3346         (mark_early_clobbers): New function.
3347         (process_bb_node_lives): Call preprocess_constraints and
3348         mark_early_clobbers.
3349
3350         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
3351
3352 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
3353
3354         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
3355         lib with -mthread switch.
3356
3357 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
3358
3359         PR c++/37410
3360         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
3361         function in two, making it call a new and reusable
3362         dwarf2out_imported_module_or_decl() that takes the containing
3363         BLOCK of the declaration in argument.
3364         (dwarf2out_imported_module_or_decl_real): New function.
3365         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
3366         IMPORTED_DECL in account.
3367         * tree.def: Added IMPORTED_DECL node type.
3368         * tree.h: Added accessors for IMPORTED_DECL nodes.
3369         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
3370
3371 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3372
3373         * doc/gimple.texi: Fix some typos, wrap some long lines,
3374         fix some broken wraps with continuations.
3375         * tree-ssa-reassoc.c: Fix comment typos.
3376
3377 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3378
3379         PR target/37603
3380         * pa.c (legitimize_pic_address): Force function labels to memory in
3381         word mode.
3382
3383 2008-10-04  Anton Blanchard  <anton@samba.org>
3384
3385         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
3386         (rs6000_split_atomic_op): Same.
3387         (rs6000_split_compare_and_swap): Same.
3388         (rs6000_split_compare_and_swapqhi): Same.
3389
3390 2008-10-04  Richard Guenther  <rguenther@suse.de>
3391
3392         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
3393         instead of pointer equality.
3394         (vn_nary_op_eq): Likewise.
3395
3396 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3397
3398         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT
3399         condition.
3400         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
3401         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
3402
3403 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
3404
3405         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3406         Revert previous change.
3407
3408 2008-10-03  Tom Tromey  <tromey@redhat.com>
3409
3410         * stringpool.c (ggc_alloc_string): Terminate string.
3411
3412 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
3413
3414         * gimplify.c (gimplify_function_tree): For -finstrument-functions
3415         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
3416         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
3417
3418         PR debug/37726
3419         * gimplify.c (declare_vars): Use gimple_bind_block instead of
3420         gimple_block.
3421
3422 2008-10-03  Pascal Obry  <obry@adacore.com>
3423
3424         * gcov.c (create_file_names): Properly handle UNIX and DOS
3425         directory separators.
3426         (make_gcov_file_name): Likewise + convert the ':' DOS drive
3427         separator to '~' to ensure clean filenames on Windows.
3428
3429 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
3430
3431         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
3432         Add a null terminator to the stripped name.
3433
3434 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
3435
3436         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
3437         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3438         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
3439         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
3440         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3441         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
3442         TARGET_SINGLE_FLOAT.
3443
3444 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
3445
3446         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
3447
3448 2008-10-02  Richard Guenther  <rguenther@suse.de>
3449
3450         PR middle-end/37713
3451         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
3452         and VECTOR_TYPE recurse with useless_type_conversion_p which
3453         properly handles void pointer conversion.
3454
3455 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
3456
3457         PR target/37528
3458         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
3459         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
3460
3461 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3462
3463         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3464         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
3465         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
3466         they translate to non builtins.
3467         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
3468         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
3469         __builtin_vec_promote, __builtin_vec_extract, and
3470         __builtin_vec_insert.
3471         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
3472         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
3473         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
3474         * config/rs6000/altivec.h (vec_extract): Define
3475         (vec_insert): Define.
3476         (vec_splats): Define.
3477         (vec_promote): Define.
3478
3479 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3480             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
3481             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
3482
3483         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
3484         Altivec intrinsics.
3485         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
3486         prototype.  Add new parameter, blk.
3487         Use BLKmode for the MEM if blk is true.
3488         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
3489         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
3490         ALTIVEC_BUILTIN_STVRXL.
3491         Update usage of altivec_expand_lv_builtin.
3492         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
3493         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
3494         (altivec_init_builtins): If compiling for the Cell, also define the
3495         cell VMX builtins.
3496         * config/rs6000/rs6000.h (rs6000_builtins): Define
3497         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
3498         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
3499         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
3500         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
3501         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
3502         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
3503         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
3504         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
3505         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
3506         UNSPEC_STVRX, and UNSPEC_STVRXL.
3507         (altivec_lvlx): New pattern.
3508         (altivec_lvlxl): New pattern.
3509         (altivec_lvrx): New pattern.
3510         (altivec_lvrxl): New pattern.
3511         (altivec_stvlx): New pattern.
3512         (altivec_stvlxl): New pattern.
3513         (altivec_stvrx): New pattern.
3514         (altivec_stvrxl): New pattern.
3515         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
3516         (vec_lvlxl): Likewise.
3517         (vec_lvrx): Define if PPU is defined.
3518         (vec_lvrxl): Likewise.
3519         (vec_stvlx): Define if PPU is defined.
3520         (vec_stvlxl): Likewise.
3521         (vec_stvrx): Define if PPU is defined.
3522         (vec_stvrxl): Likewise.
3523
3524 2008-10-01  Geert Bosch  <bosch@adacore.com>
3525
3526         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
3527
3528 2008-10-01  Richard Guenther  <rguenther@suse.de>
3529
3530         PR tree-optimization/37617
3531         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
3532         do not add to the NEW_SETS.
3533
3534 2008-10-01  Richard Guenther  <rguenther@suse.de>
3535
3536         PR middle-end/37285
3537         * tree-vrp.c (execute_vrp): If we optimized away the default
3538         case make sure to promote the label that got in place of it
3539         to a default case label.
3540
3541 2008-10-01  Richard Henderson  <rth@redhat.com>
3542
3543         PR tree-opt/35737
3544         * tree-complex.c (set_component_ssa_name): Don't optimize
3545         is_gimple_min_invariant values with ssa_names in abnormal phis.
3546
3547 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
3548
3549         PR tree-optimization/37662
3550         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
3551         commutative binary operation if they are in the wrong order and
3552         fold_build2 produces non-GIMPLE.
3553
3554 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
3555
3556         PR tree-optimization/37662
3557         PR tree-optimization/37663
3558         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
3559         get_value_range with non-SSA_NAME.  Don't assert operands have been
3560         folded, instead just bail out.
3561
3562 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3563
3564         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
3565
3566 2008-09-30  Richard Guenther  <rguenther@suse.de>
3567
3568         PR middle-end/37491
3569         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
3570         build restrict-qualified pointers.
3571         (vectorizable_store): Move alias check later.
3572         (vectorizable_load): Likewise.
3573
3574 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
3575
3576         * c-common.c (empty_if_body_warning): Remove.
3577         * c-common.h (empty_if_body_warning): Remove.
3578         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
3579         here the -Wempty-body warning for `if' and `else' statements.
3580         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
3581
3582 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
3583
3584         * config/i386/i386.opt: Add msse2avx.
3585
3586         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
3587         * config/i386/linux64.h (ASM_SPEC): Likewise.
3588
3589         * doc/invoke.texi: Document -msse2avx.
3590
3591 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3592
3593         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
3594
3595 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
3596
3597         * ifcvt.c (noce_emit_store_flag): If using condition from original
3598         jump, reverse it if if_info->cond was reversed.
3599
3600 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3601
3602         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3603         non-constant memory if it cannot be forced to constant memory.
3604         Overhaul surrounding code and factor out common condition.
3605
3606 2008-09-29  Jeff Law <law@redhat.com>
3607
3608         * reload1.c (alter_reg): Add missing curly braces.
3609
3610 2008-09-29  Michael J. Eager  <eager@eagercon.com>
3611
3612         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3613         are easy.
3614         * config/rs6000/rs6000.c (rs6000_override_options): Move
3615         rs6000_init_hard_regno_mode_ok after all options changed.
3616         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3617         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3618         -msimple-fpu flags.  Add warning messages if single FP not configured.
3619         (rs6000_file_start): Output gnu_attribute for single-float.
3620         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3621         (rs6000_legitimize_address): Likewise.
3622         (rs6000_legitimize_reload_address): Likewise.
3623         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3624         TARGET_SINGLE_FLOAT.
3625         (function_arg_advance): Likewise (partial conversion).
3626         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3627         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3628         TARGET_SINGLE_FLOAT.
3629         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3630         (rs6000_emit_prologue): Likewise.
3631         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3632         TARGET_SINGLE_FLOAT.
3633         (rs6000_libcall_value): Likewise.
3634         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3635         (TARGET_DOUBLE_FLOAT): New default to 1
3636         (TARGET_SIMPLE_FPU): New default to 0
3637         (TARGET_SINGLE_FPU): New default to 0
3638         (TARGET_SINGLE_FLOAT_MODE): New.
3639         (TARGET_DOUBLE_FLOAT_MODE): New.
3640         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3641         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3642         UNITS_PER_FP_WORD
3643         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3644         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3645         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3646         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3647         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3648         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3649         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3650         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3651         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3652         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3653         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3654         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3655         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3656         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3657         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3658         cmptf_internal1, *cmptf_internal2): Condition on
3659         TARGET_DOUBLE_FLOAT.
3660         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3661         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3662         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3663         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3664         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3665         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3666         TARGET_SINGLE_FLOAT.
3667         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3668         * config/rs6000/rs6000.opt (-msingle-float): New.
3669         (-mdouble-float): New.
3670         (-msimple-fpu): New.
3671         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3672         -msingle-float, -mdouble-float, -msimple-fpu options.
3673         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3674         _SOFT_DOUBLE for -msingle-float.
3675         * config.gcc: New config for target=powerpc-xilinx-eabi.
3676
3677 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
3678
3679         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
3680         have exit and entry.
3681         (new_scop): Take entry and exit edge to define new SCoP.
3682         (sd_region_p): New structure used during SCoP detection.
3683         (move_scops): Delete.
3684         (move_sd_regions): New.
3685         (scopdet_info): Change the definition from edges back to basic_blocks.
3686         (scopdet_edge_info):  Work on basic_blocks and rename to
3687         scopdet_basic_block_info.
3688         (split_difficult_bb): At the moment removed. We should later
3689         add it at another place.
3690         (build_scops_1): Work on basic_blocks.
3691         (bb_in_sd_region): New.
3692         (find_single_entry_edge): New.
3693         (find_single_exit_edge): New.
3694         (create_single_entry_edge): New.
3695         (sd_region_without_exit): New.
3696         (create_single_exit_edge): New.
3697         (unmark_exit_edges): New.
3698         (mark_exit_edges): New.
3699         (create_sese_edges): New.
3700         (build_graphite_scops): New.
3701         (build_scops): Make SCoPs SESE.
3702         (limit_scops): Use the new functions.
3703
3704 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
3705
3706         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
3707
3708 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3709
3710         PR target/37640
3711         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
3712         address to a register before taking the lower part.
3713
3714 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3715
3716         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
3717         for SHmedia.
3718
3719 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3720             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
3721
3722         PR tree-opt/36891
3723         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
3724         the newly created variable.
3725         Create a VECTOR_CST of all 1s for vector types.
3726
3727 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
3728
3729         PR middle-end/36575
3730         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
3731
3732 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
3733
3734         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
3735         order to convert between modes.
3736         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
3737
3738 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3739
3740         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
3741         if needed.
3742
3743 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
3744
3745         Revert:
3746         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
3747         * ira-lives.c:...
3748         * doc/rtl.texi:...
3749
3750 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
3751
3752         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
3753         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
3754         them to yield false with MIPS16.
3755
3756 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
3757
3758         PR middle-end/37275
3759         * dwarf2out.c (tls_mem_loc_descriptor): New function.
3760         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
3761         mem_loc_descriptor failed.  Accept UNSPEC.
3762         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
3763         fail if one of the loc_descriptor calls for pieces failed.
3764         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
3765         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
3766         if loc_descriptor_from_tree_1 on offset failed.
3767
3768         PR middle-end/37576
3769         * opts.c (common_handle_option): Don't call print_specific_help with
3770         CL_SAVE as first argument.
3771
3772 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
3773             Steve Ellcey  <sje@cup.hp.com>
3774
3775         * configure: Regenerate for new libtool.
3776         * aclocal.m4: Ditto.
3777
3778 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
3779
3780         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
3781         alias set on MEM when saving stack pointer.
3782         * config/rs6000/rs6000.md (allocate_stack): Likewise
3783
3784 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
3785
3786         PR tree-optimization/37574
3787         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
3788         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
3789         instead of vector_type for constants. Take computation out of loop.
3790         (vect_get_vec_def_for_operand): Use only vectype for constant case,
3791         and use only vector_type for invariant case.
3792         (get_initial_def_for_reduction): Use vectype instead of vector_type.
3793
3794 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
3795
3796         PR c/37645
3797         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
3798         the decl is a VAR_DECL or FUNCTION_DECL.
3799
3800 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
3801
3802         PR middle-end/37535
3803         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
3804         (mark_ref_live, mark_ref_dead): Use them.
3805         (def_conflicts_with_inputs_p): Remove.
3806         (mark_early_clobbers): New function.
3807         (process_bb_node_lives): Call preprocess_constraints and
3808         mark_early_clobbers.
3809
3810         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
3811
3812 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
3813
3814         PR middle-end/37448
3815         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
3816         (ira_compress_allocno_live_ranges): New prototype.
3817
3818         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
3819         (coalesced_allocnos_living_at_program_points): New.
3820         (coalesced_allocnos_live_at_points_p,
3821         set_coalesced_allocnos_live_points): New functions.
3822         (coalesce_spill_slots): Rewrite.
3823
3824         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
3825         ira_compress_allocno_live_ranges): New functions.
3826
3827         * ira-build.c (ira_flattening): Call
3828         ira_compress_allocno_live_ranges.
3829         (ira_build): Ditto.
3830
3831 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
3832
3833         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
3834         optimization.
3835
3836 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
3837
3838         * combine.c (make_compound_operation): Handle the 'E' format.
3839         (count_rtxs): Likewise.
3840         (update_table_tick): Likewise.
3841         (get_last_value_validate): Likewise.
3842
3843 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
3844
3845         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
3846
3847 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
3848
3849         * matrix-reorg.c (transform_allocation_sites): Initializers
3850         added to avoid the warning.
3851
3852 2008-09-25  Martin Jambor  <mjambor@suse.cz>
3853
3854         * cgraph.c (free_nodes): New variable.
3855         (NEXT_FREE_NODE): New macro.
3856         (cgraph_create_node): Reuse nodes from the free list.  Do not
3857         update uid if doing so.
3858         (cgraph_remove_node): Add the node to the free list.
3859
3860 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
3861
3862         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3863
3864 2008-09-24  Richard Henderson  <rth@redhat.com>
3865
3866         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
3867         * unwind-dw2.c (execute_stack_op): Handle it.
3868
3869 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
3870
3871         Revert:
3872         2008-09-24  Michael J. Eager  <eager@eagercon.com>
3873
3874 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
3875
3876         * c-common.c (fname_decl): New location argument.
3877         * c-common.h (fname_decl): Same.
3878         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
3879         {warning,error}.
3880         (c_parser_typeof_specifier): Same.
3881         (c_parser_parms_list_declarator): Same.
3882         (c_parser_asm_string_literal): Same.
3883         (c_parser_compound_statement_nostart): Same.
3884         (c_parser_label): Same.
3885         (c_parser_do_statement): Same.
3886         (c_parser_asm_statement): Same.
3887         (c_parser_unary_expression): Same.
3888         (c_parser_sizeof_expression): Same.
3889         (c_parser_postfix_expression): Same.
3890         (c_parser_pragma): Same.
3891         (c_parser_omp_clause_collapse): Same.
3892         (c_parser_omp_clause_num_threads): Same.
3893         (c_parser_omp_clause_schedule): Same.
3894         (c_parser_omp_all_clauses): Same.
3895         (c_parser_omp_sections_scope): Same.
3896         (c_parser_omp_for_loop): Same.  Pass condition's location to
3897         c_objc_common_truthvalue_conversion.
3898         (c_parser_enum_specifier): Remove comment.
3899
3900 2008-09-24  Michael J. Eager  <eager@eagercon.com>
3901
3902         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
3903         are easy.
3904         * config/rs6000/rs6000.c (rs6000_override_options): Move
3905         rs6000_init_hard_regno_mode_ok after all options changed.
3906         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
3907         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
3908         -msimple-fpu flags.  Add warning messages if single FP not configured.
3909         (rs6000_file_start): Output gnu_attribute for single-float.
3910         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
3911         (rs6000_legitimize_address): Likewise.
3912         (rs6000_legitimize_reload_address): Likewise.
3913         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
3914         TARGET_SINGLE_FLOAT.
3915         (function_arg_advance): Likewise.
3916         (function_arg): Likewise.
3917         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
3918         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
3919         TARGET_SINGLE_FLOAT.
3920         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
3921         (rs6000_emit_prologue): Likewise.
3922         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
3923         TARGET_SINGLE_FLOAT.
3924         (rs6000_libcall_value): Likewise.
3925         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
3926         (TARGET_DOUBLE_FLOAT): New default to 1
3927         (TARGET_SIMPLE_FPU): New default to 0
3928         (TARGET_SINGLE_FPU): New default to 0
3929         (TARGET_SINGLE_FLOAT_MODE): New.
3930         (TARGET_DOUBLE_FLOAT_MODE): New.
3931         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
3932         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
3933         UNITS_PER_FP_WORD
3934         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
3935         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
3936         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
3937         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
3938         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
3939         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
3940         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
3941         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
3942         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
3943         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
3944         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
3945         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
3946         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
3947         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
3948         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
3949         cmptf_internal1, *cmptf_internal2): Condition on
3950         TARGET_DOUBLE_FLOAT.
3951         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
3952         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
3953         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
3954         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
3955         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
3956         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
3957         TARGET_SINGLE_FLOAT.
3958         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
3959         * config/rs6000/rs6000.opt (-msingle-float): New.
3960         (-mdouble-float): New.
3961         (-msimple-fpu): New.
3962         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
3963         -msingle-float, -mdouble-float, -msimple-fpu options.
3964         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
3965         _SOFT_DOUBLE for -msingle-float.
3966         * config.gcc: New config for target=powerpc-xilinx-eabi.
3967
3968 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
3969
3970         * config/sparc/constraints.md: New file.
3971         * config/sparc/sparc.md: Include it.
3972         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
3973         (sparc_extra_constraint_check): Delete.
3974         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
3975         (memory_ok_for_ldd): New predicate.
3976         (sparc_extra_constraint_check): Delete.
3977         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
3978         (CONST_OK_FOR_LETTER_P): Likewise.
3979         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
3980         (EXTRA_CONSTRAINT): Likewise.
3981
3982 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
3983
3984         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
3985
3986 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3987
3988         * alias.c (find_base_value): Use FIND_BASE_TERM.
3989         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
3990
3991 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3992
3993         * config/i386/i386.c: Include cselib.h.
3994         (ix86_pic_register_p): New function.
3995         (ix86_delegitimize_address): Use it to check for the PIC register.
3996
3997 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
3998
3999         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
4000         * config/i386/i386.c (ix86_find_base_term): Don't check for
4001         SYMBOL_REF and LABEL_REF.
4002
4003 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
4004
4005         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
4006         constant PLUS in a CONST.
4007
4008 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
4009
4010         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
4011         check for sibcall support for w64.
4012
4013 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
4014
4015         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
4016
4017 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
4018
4019         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
4020         parser_build_binary_op.
4021         * c-decl.c (build_enumerator): Pass location to build_binary_op.
4022         * c-typeck.c (build_array_ref): Same.
4023         (parser_build_unary_op): New location argument.
4024         (pointer_diff): Pass location to build_binary_op,
4025         c_objc_common_truthvalue_conversion.
4026         (build_modify_expr): Same.
4027         (build_unary_op): New location argument.
4028         (build_binary_op): New location argument.
4029         (c_objc_common_truthvalue_conversion): Pass location to
4030         c_*common_truthvalue_conversion.
4031         * c-convert.c (convert): Same.
4032         * c-common.c (binary_op_error): New location argument.
4033         (pointer_int_sum): Pass location to build_binary_op.
4034         (c_common_truthvalue_conversion): New location argument.
4035         (warn_for_sign_compare): Same.
4036         * c-common.h: Add location argument to c_common_truthvalue_conversion,
4037         binary_op_error, build_binary_op, warn_for_sign_compare.
4038         * c-parser.c (c_parser_condition): Pass location to
4039         c_*common_truthvalue_conversion.
4040         (c_parser_conditional_expression): Save condition's location and pass
4041         it on down.
4042         (c_parser_binary_expression): Same, but for the binary operator's
4043         location.
4044         (c_parser_omp_for_loop): Pass location to
4045         c_objc_common_truthvalue_conversion.
4046
4047 2008-09-23  Martin Jambor  <mjambor@suse.cz>
4048
4049         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
4050         (cgraph_node_remove_callees): New temporary f.  Hold the next item
4051         in f when looping.
4052         (cgraph_node_remove_callers): Likewise.
4053
4054         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
4055         (ipa_node_removal_hook): Likewise.
4056
4057         * doc/gimple.texi (gimple_copy_call_skip_args): C