OSDN Git Service

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