OSDN Git Service

2008-11-14 Thomas Schwinge <tschwinge@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-11-14  Thomas Schwinge  <tschwinge@gnu.org>
2
3         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/Hurd
4         systems, which are assumend to always provide SSP-support in glibc.
5         * configure: Regenerate.
6
7         * configure.ac (gcc_cv_libc_provides_ssp): Also consider GNU/kFreeBSD,
8         GNU/kNetBSD systems in the `*-*-linux*' case.
9         * configure: Regenerate.
10
11 2008-11-14  Jakub Jelinek  <jakub@redhat.com>
12
13         PR middle-end/36125
14         * function.c (gimplify_parameters): For callee copies parameters,
15         move TREE_ADDRESSABLE flag from the PARM_DECL to the local copy.
16
17 2008-11-13  Thomas Schwinge  <tschwinge@gnu.org>
18
19         PR target/28102
20         * config.gcc (*-*-gnu*): Move Alpha parts into the `alpha*-*-gnu*', x86
21         parts into the `i[34567]86-*-linux*' and parts that are independent of
22         the processor architecture into the `*-*-linux*' cases.
23         (*-*-linux*): Consider `linux.opt' only for Linux-based configurations.
24         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Redefine.
25         (TARGET_OS_CPP_BUILTINS, LINK_SPEC): Don't redefine.
26         [TARGET_LIBC_PROVIDES_SSP] (TARGET_THREAD_SSP_OFFSET): Undefine.
27         * config/gnu.h (NO_IMPLICIT_EXTERN_C): Don't redefine.
28         (HURD_TARGET_OS_CPP_BUILTINS): Don't define, but instead...
29         (LINUX_TARGET_OS_CPP_BUILTINS): Redefine.
30
31 2008-11-13  Ruan Beihong  <ruanbeihong@gmail.com>
32
33         * config/mips/loongson.md (<u>div<mode>3, <u>mod<mode>3): New patterns.
34         * config/mips/loongson2ef.md (ls2_imult): Handle imul3nc.
35         (ls2_idiv): Likewise idiv3.
36         (ls2_prefetch): New reservation.
37         * config/mips/mips.h (ISA_HAS_PREFETCH): Add TARGET_LOONGSON_2EF.
38         * config/mips/mips.md (type): Add imul3nc and idiv3.
39         (length): Handle idiv3.
40         (any_mod): New code_iterator.
41         (u): Handle MOD and UMOD.
42         (mul<mode>3): Generate mul<mode>3_mul3_ls2ef on Loongson targets.
43         (prefetch): Handle TARGET_LOONGSON_2EF.
44
45 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
46
47         PR c++/27017
48         * dwarf2out.c (prune_unused_types_walk_local_classes): New function.
49         (prune_unused_types_walk): Call it for non-perennial local classes.
50         Set die_mark to 2 if recursing on children.  If die_mark is 1 on
51         entry, just set it to 2 and recurse on children, don't walk attributes
52         again.
53
54 2008-11-13  Martin Michlmayr  <tbm@cyrius.com>
55
56         * c-common.c (warn_about_parentheses): Add missing whitespace
57         in warning.
58
59 2008-11-13  Paul Brook  <paul@codesourcery.com>
60
61         * doc/invoke.texi: Document --fix-cortex-m3.
62         * config/arm/arm.c (arm_override_options): Set fix_cm3_ldrd if
63         Cortex-M3 cpu is selected.
64         (output_move_double): Avoid overlapping base register and first
65         destination register when fix_cm3_ldrd.
66         * config/arm/arm.opt: Add mfix-cortex-m3-ldrd.
67
68 2008-11-13  Jakub Jelinek  <jakub@redhat.com>
69
70         PR bootstrap/38100
71         * gimple.h (gimple_range_check_failed): Remove prototype.
72         * gimple.c (gimple_check_failed): Don't check GCC_VERSION
73         in guarding #if.
74         (gimple_range_check_failed): Removed.
75
76 2008-11-13  Andrew Haley  <aph@redhat.com>
77
78         PR bootstrap/38088
79         * mcf.c (CAP_INFINITY): Use HOST_WIDEST_INT maximum, not GCC specific
80         __LONG_LONG_MAX__.
81
82 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
83
84         PR c++/36478
85         Revert:
86         2007-05-07  Mike Stump  <mrs@apple.com>
87         * doc/invoke.texi (Warning Options): Document that -Wempty-body
88         also checks for and while statements in C++.
89
90 2008-11-12  Dodji Seketeli  <dodji@redhat.com>
91
92         PR debug/27574
93         * cgraph.h: New abstract_and_needed member to struct cgraph_node.
94         * cgraphunit.c (cgraph_analyze_functions): Flag abstract functions
95         - which clones are reachable - as "abstract and needed".
96         * cgraph.c (cgraph_release_function_body):  If a node is
97         "abstract and needed", do not release its DECL_INITIAL() content
98         that will be needed to emit debug info.
99
100 2008-11-12  Steve Ellcey  <sje@cup.hp.com>
101
102         PR target/27880
103         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Use this macro
104         to set HAVE_GETIPINFO.
105         * aclocal.m4: Include ../config/unwind_ipinfo.m4.
106         * configure: Regenerate.
107         * config.in: Regenerate.
108
109 2008-11-12  Jack Howarth  <howarth@bromo.med.uc.edu>
110
111         PR bootstrap/38010
112         * gcc/config.gcc: Use darwin9.h on darwin10 as well.
113
114 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
115
116         Revert:
117         2008-10-21  Jakub Jelinek  <jakub@redhat.com>
118         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
119
120 2008-11-12  Jason Merrill  <jason@redhat.com>
121
122         PR c++/38007
123         * c-common.c (c_common_signed_or_unsigned_type): Remove C++
124         special casing.
125
126 2008-11-12  Anatoly Sokolov  <aesok@post.ru>
127
128         * config/avr/avr.c (avr_mcu_t): Add atmega16hvb, atmega32hvb,
129         atmega4hvd, atmega8hvd, atmega64c1, atmega64m1, atmega16u4 and
130         atmega32u6 devices.
131         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
132         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
133
134 2008-11-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
135
136         * gcc/config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Remove
137         packed-stack special handling.
138         (FRAME_ADDR_RTX): Add definition.
139
140 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
141
142         PR target/35366
143         * fold-const.c (native_encode_string): New function.
144         (native_encode_expr): Use it for STRING_CST.
145
146 2008-11-12  DJ Delorie  <dj@redhat.com>
147
148         * config/m32c/cond.md (cond_to_int peephole2): Don't eliminate the
149         insns if the intermediate value will be used later.
150
151 2008-11-12  Andreas Schwab  <schwab@suse.de>
152
153         * config/m68k/m68k.c (print_operand): Mask off extra extension
154         bits when writing out the representation of real values.
155
156 2008-11-12  Ira Rosen  <irar@il.ibm.com>
157
158         PR tree-optimization/38079
159         * tree-vect-analyze.c (vect_analyze_data_refs): Replace dump_file
160         with vect_dump.
161
162 2008-11-12  Jakub Jelinek  <jakub@redhat.com>
163
164         PR c++/35334
165         * c-pretty-print.c (pp_c_complex_expr): New function.
166         (pp_c_postfix_expression) <case COMPLEX_EXPR>: Call it.
167
168         PR target/35366
169         * expr.c (expand_expr_addr_expr_1): If EXP needs bigger alignment
170         than INNER and INNER is a constant, forcibly align INNER as much
171         as needed.
172
173 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
174
175         * cse.c (fold_rtx): Remove redundant gen_rtx_CONST.
176
177 2008-11-11  Richard Sandiford  <rdsandiford@googlemail.com>
178
179         PR rtl-optimization/37363
180         * simplify-rtx.c (simplify_plus_minus): Don't create (const (minus ...))
181         expresisons.
182
183 2008-11-11  Eric Botcazou  <ebotcazou@adacore.com>
184
185         * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO
186         handling.
187
188 2008-11-10  Catherine Moore  <clm@codesourcery.com>
189
190         * config.gcc (mips64vrel-*-elf*): Include the tm_file
191         prior to vr.h.
192         * config/mips/linux.h (LINUX_DRIVER_SELF_SPECS): New.
193         (BASE_DRIVER_SELF_SPECS): Remove.
194         (DRIVER_SELF_SPECS): New definition.
195         * config/mips/elfoabi.h: (DRIVER_SELF_SPECS): Include
196         BASE_DRIVER_SELF_SPECS.
197         * config/mips/sde.h: Likewise.
198         * config/mips/iris6.h: Likewise.
199         * config/mips/vr.h: Likewise.
200         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): New. 
201
202 2008-11-10  Vladimir Makarov  <vmakarov@redhat.com>
203
204         PR rtl-optimizations/37948
205         * ira-int.h (struct ira_allocno_copy): New member constraint_p.
206         (ira_create_copy, ira_add_allocno_copy): New parameter.
207
208         * ira-conflicts.c (process_regs_for_copy): New parameter.  Pass it
209         to ira_add_allocno_copy.
210         (process_reg_shuffles, add_insn_allocno_copies): Pass a new
211         parameter to process_regs_for_copy.
212         (propagate_copies): Pass a new parameter to ira_add_allocno_copy.
213         Fix typo in passing second allocno to ira_add_allocno_copy.
214
215         * ira-color.c (update_conflict_hard_regno_costs): Use head of
216         coalesced allocnos list.
217         (assign_hard_reg): Ditto.  Check that assigned allocnos are not in
218         the graph.
219         (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket.
220         (add_ira_allocno_to_ordered_bucket): Rename to
221         add_allocno_to_ordered_bucket.
222         (push_ira_allocno_to_stack): Rename to push_allocno_to_stack.  Use
223         head of coalesced allocnos list.
224         (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP.
225         Check that it is aready calculated.
226         (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill.
227         (setup_allocno_left_conflicts_num): Use head of coalesced allocnos
228         list.
229         (coalesce_allocnos): Do extended coalescing too.
230
231         * ira-emit.c (add_range_and_copies_from_move_list): Pass a new
232         parameter to ira_add_allocno_copy.
233
234         * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new
235         parameter.
236         (print_copy): Print copy origination too.
237
238         * ira-costs.c (scan_one_insn): Use alloc_pref for load from
239         equivalent memory.
240         
241 2008-11-10  Kaz Kojima  <kkojima@gcc.gnu.org>
242
243         PR rtl-optimization/37514
244         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set
245         flag_ira_share_spill_slots to 2 if it's already non-zero.
246         (OVERRIDE_OPTIONS): Clear flag_ira_share_spill_slots if
247         flag_ira_share_spill_slots is 2.
248
249 2008-11-10  Kevin Buettner  <kevinb@redhat.com>
250
251         * config/m32c/prologue.md (prologue_enter_16): Set FB to SP - 2.
252         (prologue_enter_32): Set FB to SP - 4.
253
254 2008-11-10  DJ Delorie  <dj@redhat.com>
255
256         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add ImB
257         constraint for single-bit-clear in lower byte of HI constant, vs
258         Imb which just ignores the upper byte.
259         * config/m32c/predicates.md (m32c_1mask8_operand): Use it.
260         * config/m32c/bitops.md (andhi3_16, andhi3_24): Use it.
261         (iorhi3_16): Check for single bit set, not single bit clear.
262
263 2008-11-10  Janis Johnson  <janis187@us.ibm.com>
264
265         * doc/sourcebuild.texi (Torture Tests): Fix formatting for bullets.
266
267         * doc/sourcebuild.texi (Torture Tests): Fix formatting in example.
268
269 2008-11-10  Eric Botcazou  <ebotcazou@adacore.com>
270
271         * calls.c (store_unaligned_arguments_into_pseudos): Deal only with
272         values living in memory and use more precise alignment information.
273
274 2008-11-10  Jakub Jelinek  <jakub@redhat.com>
275
276         PR middle-end/35314
277         * tree-mudflap.c (mf_build_check_statement_for): Split then_block
278         after __mf_check call if the call must end a bb.
279
280 2008-11-10  Ralph Loader  <suckfish@ihug.co.nz>
281
282         PR middle-end/37807
283         PR middle-end/37809
284         * combine.c (force_to_mode): Do not process vector types.
285
286         * rtlanal.c (nonzero_bits1): Do not process vector types.
287         (num_sign_bit_copies1): Likewise.
288
289 2008-11-09  Thomas Schwinge  <tschwinge@gnu.org>
290
291         * config/i386/gnu.h: Add copyright and licensing header.
292         * config/gnu.h: Likewise.
293
294 2008-11-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
295
296         * fwprop.c (fwprop_done): Call df_remove_problem.
297
298 2008-11-07  Sebastian Pop  <sebastian.pop@amd.com>
299
300         PR middle-end/37379
301         * tree-scalar-evolution.c (instantiate_scev_1): Return
302         chrec_dont_know for VL_EXP_CLASS_P.
303         
304 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
305
306         * reg-stack.c (reg_to_stack): Add missing braces in memset
307         size calculation.
308
309 2008-11-06  Andrew Stubbs  <ams@codesourcery.com>
310
311         * config/arm/bpabi.h (PROFILE_HOOK): New undef.
312         (NO_PROFILE_COUNTERS): New define.
313
314 2008-11-06  David Edelsohn  <edelsohn@gnu.org>
315
316         PR target/26397
317         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Define.
318         
319 2008-11-06  Kazu Hirata  <kazu@codesourcery.com>
320
321         PR target/35574
322         * config/sparc/constraints.md (D): New.
323         * config/sparc/predicates.md (const_double_or_vector_operand): New.
324         * config/sparc/sparc.c (sparc_extra_constraint_check): Handle the
325         'D' constraint.
326         * config/sparc/sparc.md (*movdf_insn_sp32_v9, *movdf_insn_sp64):
327         Use the 'D' constraint in addition to 'F' in some alternatives.
328         (DF splitter): Generalize for V64mode.
329         * doc/md.texi (SPARC): Document the 'D' constraint.
330
331 2008-11-06  Uros Bizjak  <ubizjak@gmail.com>
332
333         * reg-stack.c (reg_to_stack): Generate +QNaN using real_nan.
334
335 2008-11-06  Ben Elliston  <bje@au.ibm.com>
336
337         * gcc.c: Remove ancient comment about a bug in Sun cc.
338
339 2008-11-05  Janis Johnson  <janis187@us.ibm.com>
340
341         * doc/sourcebuild.texi (Torture Tests): Add ADDITIONAL_TORTURE_OPTIONS.
342
343 2008-11-06  Ben Elliston  <bje@au.ibm.com>      
344
345         * config/rs6000/rs6000.c (rs6000_override_options): Comment fix.
346
347 2008-11-06  Ben Elliston  <bje@au.ibm.com>
348
349         * config/rs6000/rs6000.opt (mwarn-cell-microcode): Improve option
350         description.
351
352 2008-11-05  Hans-Peter Nilsson  <hp@axis.com>
353
354         PR target/38016
355         * config/cris/cris.c (cris_order_for_addsi3): Test for !REG_P, not
356         just MEM_P.
357
358 2008-11-05  Martin Jambor  <mjambor@suse.cz>
359
360         PR middle-end/37861
361         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
362         pointer arithmetics into array_ref if the array is accessed
363         through an indirect_ref.
364
365 2008-11-05  Richard Guenther  <rguenther@suse.de>
366
367         PR middle-end/37742
368         * tree-ssa.c (useless_type_conversion_p_1): Check different restrict
369         qualified pointer conversion before stripping qualifiers.
370         * gimplify.c (create_tmp_from_val): Use correctly qualified type.
371         * tree-flow.h (may_propagate_address_into_dereference): Declare.
372         * tree-ssa-ccp.c (may_propagate_address_into_dereference): New
373         function.
374         (ccp_fold): Use it.
375         * tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
376         properly canonicalize binary ops.
377         (forward_propagate_addr_expr_1): Use
378         may_propagate_address_into_dereference.
379
380 2008-11-05  Uros Bizjak  <ubizjak@gmail.com>
381
382         PR middle-end/37286
383         * reg-stack.c (subst_stack_regs_pat) [MINUS, DIV, MULT, PLUS]:
384         Initialize uninitialized input registers with a NaN.
385
386 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
387
388         PR middle-end/37833
389
390         * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
391
392 2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>
393
394         PR middle-end/37943
395
396         * graphite.c (scopdet_basic_block_info): Fix loops with multiple
397         exits and conditions.
398         * testsuite/gcc.dg/graphite/pr37943.c: New.
399
400 2008-11-04  Jakub Jelinek  <jakub@redhat.com>
401             Andrew Pinski  <andrew_pinski@playstation.sony.com>
402
403         PR c/35430
404         * c-common.c (warn_for_sign_compare): For complex result_type
405         use component's type.
406
407 2008-11-04  Jakub Jelinek  <jakuB@redhat.com>
408
409         * print-tree.c (print_node): Use code instead of TREE_CODE (node).
410
411         * print-tree.c (print_node): Don't print DECL_INITIAL
412         for PARM_DECL.
413
414         PR c/37106
415         * c-common.c (parse_optimize_options): Save and restore
416         flag_strict_aliasing around decode_options call.
417
418 2008-11-04  Uros Bizjak  <ubizjak@gmail.com>
419
420         * config/i386/driver-i386.c (enum vendor_signatures): New enum.
421         (host_detect_local_cpu): Use it instead of casted strings to
422         compare vendor signatures.
423
424 2008-11-03  Mikael Pettersson  <mikpe@it.uu.se>
425
426         PR target/37989
427         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Only add libgcc_s.a
428         or libgcc_eh.a to spec if ENABLE_SHARED_LIBGCC.
429
430 2008-11-03  Catherine Moore  <clm@codesourcery.com>
431
432         * config/mips.c (mips_conditional_register_usage):  Handle the
433         DSP control register.
434         * doc/extend.texi: Document the DSP control register.
435
436 2008-11-03  Steve Ellcey <sje@cup.hp.com>
437             Jakub Jelinek  <jakub@redhat.com>
438
439         * omp-low.c (expand_omp_for_generic): If iter_type has different
440         precision than type and type is a pointer type, cast n1 and n2
441         first to an integer type with the same precision as pointers
442         and only afterwards to iter_type.
443
444 2008-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
445
446         * config/arm/arm.md (UNSPEC_PIC_BASE): Update documentation.
447         (UNSPEC_GOTSYM_OFF): New unspec.
448         (pic_add_dot_plus_four): Simplify the UNSPEC_PIC_BASE operands.
449         (pic_add_dot_plus_eight): Likewise.
450         (tls_load_dot_plus_eight): Likewise.  Update peephole2.
451         * config/arm/thumb2.md (pic_load_dot_plus_four): Simplify the
452         UNSPEC_PIC_BASE operands.
453         * config/arm/arm.c (arm_load_pic_register): Use UNSPEC_GOTSYM_OFF.
454         (arm_output_addr_const_extra): Handle it.
455
456 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
457
458         * config/i386/i386.c (classify_argument) <ARRAY_TYPE>: Promote partial
459         integer class to full integer class if the offset is not word-aligned.
460
461 2008-11-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
462
463         PR rtl-opt/37782
464         * loop-doloop.c (doloop_modify): Add from_mode argument that says what
465         mode count is in.
466         (doloop_optimize): Update call to doloop_modify.
467
468 2008-11-03  Eric Botcazou  <ebotcazou@adacore.com>
469
470         * tree-sra.c (bitfield_overlaps_p): Fix oversight.
471
472 2008-11-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
473
474         PR other/37463
475         * configure.ac (gcc_cv_ld_ro_rw_mix): Move before
476         gcc_cv_as_cfi_directive.
477         (gcc_cv_as_cfi_directive) [*-*-solaris*]: Check if linker supports
478         merging read-only and read-write sections or assembler emits
479         read-write .eh_frame sections.
480         * configure: Regenerate.
481         
482 2008-11-03  Nathan Froyd  <froydnj@codesourcery.com>
483
484         Revert:
485         2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
486
487         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
488         problem.
489         (rs6000_emit_prologue): Invert logic.
490         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
491         (reg:P 11) instead of match_operand.
492         (*save_fpregs_<mode>): Likewise.
493         (*restore_gpregs_<mode>): Likewise.
494         (*return_and_restore_gpregs_<mode>): Likewise.
495         (*return_and_restore_fpregs_<mode>): Likewise.
496         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
497         (reg:P 11) insted of match_operand.
498         (*restore_gpregs_spe): Likewise.
499         (*return_and_restore_gpregs_spe): Likewise.
500
501 2008-11-03  Harsha Jagasia  <harsha.jagasia@amd.com>
502
503         PR tree-optimization/37684
504         * gcc.dg/graphite/pr37684.c: New.
505         * graphite.c (exclude_component_ref): New.
506         (is_simple_operand): Call exclude_component_ref.
507
508 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
509
510         PR tree-optimization/36908
511         * testsuite/gcc.dg/tree-ssa/pr36908.c: New.
512         * tree-loop-distribution.c (number_of_rw_in_rdg): New.
513         (number_of_rw_in_partition): New.
514         (partition_contains_all_rw): New.
515         (ldist_gen): Do not distribute when one of the partitions
516         contains all the memory operations.
517
518 2008-11-03  Sebastian Pop  <sebastian.pop@amd.com>
519
520         * cfghooks.c (split_block): Set BB_IRREDUCIBLE_LOOP and
521         EDGE_IRREDUCIBLE_LOOP.
522
523 2008-11-03  Bernd Schmidt  <bernd.schmidt@analog.com>
524
525         * config/bfin/bfin.c (bfin_optimize_loop): Properly handle case
526         where we have one entry point in the loop which isn't the head.
527
528 2008-11-03  Richard Guenther  <rguenther@suse.de>
529
530         PR middle-end/37573
531         * tree-data-ref.c (split_constant_offset_1): Fix tuplification.
532
533 2008-11-03  Jakub Jelinek  <jakub@redhat.com>
534
535         PR middle-end/37858
536         * passes.c (execute_one_pass): Don't look at cfun->curr_properties
537         for ipa and simple ipa passes.
538
539 2008-11-02  Richard Guenther  <rguenther@suse.de>
540
541         PR tree-optimization/37542
542         * tree-ssa-pre.c (fully_constant_expression): Handle more cases.
543         * tree-ssa-sccvn.c (vn_get_expr_for): Fix typo.
544         (vn_nary_op_lookup_stmt): Adjust for unary reference trees.
545         (vn_nary_op_insert_stmt): Likewise.
546         (visit_use): Likewise.
547
548 2008-11-02  Anatoly Sokolov  <aesok@post.ru>
549
550         * config/avr/avr.md (UNSPEC_SWAP): Remove constants.
551         (*swap): Remove.
552         (rotlqi3, *rotlqi3_4, rotlhi3, *rotlhi3_8,
553         rotlsi3, *rotlsi3_8, *rotlsi3_16, *rotlsi3_24): New patterns.
554         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, ashlqi3_l_const4,
555         ashlqi3_l_const5, ashlqi3_l_const6, lshrqi3_const4, lshrqi3_const5,
556         lshrqi3_const6, lshrqi3_l_const4, lshrqi3_l_const4, lshrqi3_l_const6
557         peephole2's): Replace unspec with rotate.
558         * config/avr/avr.c (avr_rtx_costs): Add ROTATE.
559
560 2008-11-02  Richard Guenther  <rguenther@suse.de>
561
562         PR tree-optimization/37991
563         * tree-ssa-sccvn.h (copy_vuses_from_stmt): Remove.
564         * tree-ssa-sccvn.c (copy_vuses_from_stmt): Make static.
565         (set_ssa_val_to): Print if the value changed.
566         (simplify_binary_expression): Strip useless conversions.
567
568 2008-11-01  Hans-Peter Nilsson  <hp@axis.com>
569
570         PR target/37939
571         * config/cris/cris.c (cris_rtx_costs) <MULT>: Return 0 for an ADDI
572         operand.
573
574 2008-11-01  Richard Guenther  <rguenther@suse.de>
575
576         PR middle-end/37976
577         * builtins.c (fold_builtin_strspn): Return a size_t.
578         (fold_builtin_strcspn): Likewise.
579
580 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
581
582         * config/rs6000/rs6000.c (rs6000_file_start): Output gnu
583         attribute for struct return convention.
584
585 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
586
587         * config/rs6000/crtsavres.asm: Really, really delete.
588
589 2008-10-31  Nathan Froyd  <froydnj@codesourcery.com>
590
591         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
592         problem.
593         (rs6000_emit_prologue): Invert logic.
594         * config/rs6000/rs6000.md (*save_gpregs_<mode>): Use explicit
595         (reg:P 11) instead of match_operand.
596         (*save_fpregs_<mode>): Likewise.
597         (*restore_gpregs_<mode>): Likewise.
598         (*return_and_restore_gpregs_<mode>): Likewise.
599         (*return_and_restore_fpregs_<mode>): Likewise.
600         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit
601         (reg:P 11) insted of match_operand.
602         (*restore_gpregs_spe): Likewise.
603         (*return_and_restore_gpregs_spe): Likewise.
604
605 2008-10-28  Luis Machado  <luisgpm@br.ibm.com>
606
607         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add "dumpbase" to the
608         list of word switches that take args.
609
610 2008-10-30  Jakub Jelinek  <jakub@redhat.com>
611
612         * config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
613         (s390_output_pool_entry): Call it through for_each_rtx.
614
615         PR middle-end/37730
616         * expr.c (store_constructor): For vectors, if target is a MEM, use
617         target's MEM_ALIAS_SET instead of elttype alias set.
618
619 2008-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
620
621         PR target/37909
622         * config/sh/sh.c (untangle_mova): Return -1 when NEW_MOVA has
623         no address.
624
625 2008-10-29  David Edelsohn  <edelsohn@gnu.org>
626
627         PR target/37878
628         * config/rs6000/predicates.md (word_offset_memref_operand):
629         Restructure code and look inside auto-inc/dec addresses.
630         
631 2008-10-29  Steve Ellcey  <sje@cup.hp.com>
632
633         PR target/32277
634         * libgcov.c ( __gcov_indirect_call_profiler): Check
635         TARGET_VTABLE_USES_DESCRIPTORS.
636
637 2008-10-29  Stefan Schulze Frielinghaus  <xxschulz@de.ibm.com>
638
639         * config/spu/spu.h (FRAME_GROWS_DOWNWARD): Define.
640         (INITIAL_FRAME_POINTER_OFFSET): Remove.
641         * config/spu/spu.c (spu_initial_elimination_offset): Calculate new
642         offset if eliminating soft frame pointer.
643         * config/spu/spu.md (stack_protect_set, stack_protect_test)
644         (stack_protect_test_si): Add initial machine description
645         for Stack Smashing Protector
646
647 2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
648
649         PR 11492
650         * c-common.c (min_precision): Move to...
651         * tree.c (tree_int_cst_min_precision): ... to here. Renamed.
652         * tree.h (tree_int_cst_min_precision): Declare.
653         * c-common.h (min_precision): Delete declaration.
654         * fold-const.c (tree_binary_nonnegative_warnv_p): Handle
655         multiplication of non-negative integer constants.
656         * c-decl.c (check_bitfield_type_and_width): Rename min_precision to
657         tree_int_cst_min_precision.
658         (finish_enum): Likewise.
659
660 2008-10-29  Joseph Myers  <joseph@codesourcery.com>
661
662         PR middle-end/36578
663         * convert.c (convert_to_real): Do not optimize conversions of
664         binary arithmetic operations between binary and decimal
665         floating-point types.  Consider mode of target type in determining
666         decimal type for arithmetic.  Unless
667         flag_unsafe_math_optimizations, do not optimize binary conversions
668         where this may change rounding behavior.
669         * real.c (real_can_shorten_arithmetic): New.
670         * real.h (real_can_shorten_arithmetic): Declare.
671
672 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
673         
674         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315,
675         ENABLE_WA_05000257, ENABLE_WA_05000283, ENABLE_WA_05000315): New.
676         * config/bfin/bfin.c (bfin_cpus): Add these workaround bits as
677         appropriate.
678         (must_save_p): For some workarounds, interrupts need to clobber a
679         P register.
680         (expand_prologue_reg_save, expand_epilogue_reg_restore): Save LC0
681         and LC1 for WA_05000257.
682         (expand_interrupt_handler_prologue): Add dummy read of CHIPID for
683         WA_05000283 and WA_05000315.
684         * config/bfin/bfin.md (UNSPEC_VOLATILE_DUMMY): New constant.
685         (movbi): Add alternative to set CC to 1; improve code for setting
686         CC to 0.
687         (dummy_load): New pattern.
688
689 2008-10-29  Jakub Jelinek  <jakub@redhat.com>
690
691         PR middle-end/37870
692         * expmed.c (extract_bit_field_1): If int_mode_for_mode returns
693         BLKmode for non-memory, convert using a wider MODE_INT mode
694         or through memory.
695
696         PR middle-end/37913
697         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Only split bbs
698         that haven't been removed yet.
699
700 2008-10-29  Bernd Schmidt  <bernd.schmidt@analog.com>
701
702         * config/bfin/bfin.c (struct machine_function): New member
703         has_loopreg_clobber.
704         (bfin_expand_movmem): Set it when generating memcpy insns.
705         (n_regs_saved_by_prologue, expand_prologue_reg_save,
706         expand_epilogue_reg_restore): If we have hardware loops,
707         memcpy insns (indicated by has_loopreg_clobber) or function
708         calls, we need to save the loop registers.
709
710 2008-10-28  H.J. Lu  <hongjiu.lu@intel.com>
711
712         * config/i386/i386.c (core2_cost): Fix typos in comments.
713
714 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
715
716         PR c/37924
717         * combine.c (make_compound_operation): Don't call make_extraction with
718         non-positive length.
719         (simplify_shift_const_1): Canonicalize count even if complement_p.
720
721 2008-10-28  Joseph Myers  <joseph@codesourcery.com>
722
723         * convert.c (strip_float_extensions): Do not remove or introduce
724         conversions between binary and decimal floating-point types.
725
726 2008-10-28  Jakub Jelinek  <jakub@redhat.com>
727
728         PR middle-end/37931
729         * fold-const.c (distribute_bit_expr): Convert common, left and
730         right arguments to type.
731
732 2008-10-28  Nick Clifton  <nickc@redhat.com>
733
734         * config/mn10300/mn10300.h (CALL_REALLY_USED_REGISTERS): Define.
735         * config/mn10300/mn10300.c (fp_regs_to_save): Test the
736         call_really_used_regs array rather than the call_used_regs array.
737         (mn10300_get_live_callee_saved_regs, expand_prologue,
738         expand_epilogue, output_tst): Likewise.
739
740 2008-10-27  Jakub Jelinek  <jakub@redhat.com>
741
742         PR target/37378
743         * df-scan.c (df_bb_refs_collect): Don't handle EH_USES here.
744         (df_get_entry_block_def_set): Neither here.
745         (df_get_regular_block_artificial_uses): Add EH_USES registers.
746
747         PR tree-optimization/37879
748         * predict.c (tree_estimate_probability): Check if last_stmt is
749         non-NULL before dereferencing it.
750
751 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
752
753         * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
754         (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
755         (ira_fast_allocation): Remove the prototype.
756         
757         * ira-color.c (update_copy_costs, allocno_cost_compare_func,
758         assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
759         (color_pass): Modify the updated costs.
760         (ira_color): Rename to color.  Make it static.
761         (ira_fast_allocation): Rename to fast_allocation.  Make it static.
762         (ira_color): New function.
763         
764         * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
765         change.
766
767         * ira-lives.c (last_call_num, allocno_saved_at_call): New
768         variables.
769         (set_allocno_live, clear_allocno_live, mark_ref_live,
770         mark_ref_dead): Invalidate corresponding element of
771         allocno_saved_at_call.
772         (process_bb_node_lives): Increment last_call_num.  Setup
773         allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
774         allocno was already saved.
775         (ira_create_allocno_live_ranges): Initiate last_call_num and
776         allocno_saved_at_call.
777
778         * ira-build.c (ira_create_allocno): Initiate
779         ALLOCNO_UPDATED_COVER_CLASS_COST.
780         (create_cap_allocno, propagate_allocno_info,
781         remove_unnecessary_allocnos): Remove setting updated costs.
782         (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.
783
784         * ira.c (ira):  Don't call ira_fast_allocation.
785
786         * ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
787         updated costs.
788         
789 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
790
791         PR middle-end/37813
792         * ira-conflicts.c (process_regs_for_copy): Remove class subset check.
793
794         * ira-int.h (ira_hard_regno_cover_class): New.
795
796         * ira-lives.c (mark_reg_live, mark_reg_dead,
797         process_bb_node_lives): Use ira_hard_regno_cover_class.
798
799         * ira.c (reg_class ira_hard_regno_cover_class): New global variable.
800         (setup_hard_regno_cover_class): New function.
801         (ira_init): Call setup_hard_regno_cover_class.
802
803         * ira-costs.c (cost_class_nums): Add comment.
804         (find_allocno_class_costs): Initiate cost_class_nums.
805         (setup_allocno_cover_class_and_costs): Check cost_class_nums.
806
807 2008-10-27  Vladimir Makarov  <vmakarov@redhat.com>
808
809         PR middle-end/37884
810         * ira-build.c (copy_live_ranges_to_removed_store_destinations):
811         Rename to copy_info_to_removed_store_destinations.  Propagate
812         conflict hard regs and register stack attribute.
813
814 2008-10-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
815
816         PR middle-end/37316
817         * pa.c (function_arg_padding):  Pad complex and vector types
818         upward in 64-bit runtime.
819         (function_arg): Use BLKmode for PARALLEL in 64-bit runtime.
820
821 2008-10-26  Matthias Klose  <doko@ubuntu.com>
822
823         * doc/install.texi: Document requirements on antlr.
824
825 2008-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
826
827         * config/mips/mips.h (REG_ALLOC_ORDER): Put call-clobbered registers
828         first.
829
830 2008-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
831
832         PR target/37841
833         * function.c (locate_and_pad_parm): If FUNCTION_ARG_ADJUST_OFFSET
834         is defined, use it to modify the constant offset.
835
836         * doc/tm.texi (FUNCTION_ARG_OFFSET): Document new macro.
837
838         * config/spu/spu.h (FUNCTION_ARG_OFFSET): New macro to move char
839         and short arguments to the correct location as mandated by the ABI.
840
841 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
842
843         PR rtl-optimization/37769
844         * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed.
845
846 2008-10-24  Kaz Kojima  <kkojima@gcc.gnu.org>
847
848         * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to
849         unwind-dw2-Os-4-200.o.
850
851 2008-10-24  Joseph Myers  <joseph@codesourcery.com>
852
853         * c-typeck.c (enum impl_conv): Remove ic_argpass_nonproto.
854         (convert_for_assignment): Remove ic_argpass_nonproto cases.
855
856 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
857
858         PR tree-optimization/36038
859         * tree-ssa-loop-ivopts.c (add_old_iv_candidates): For pointer bases
860         add sizetype IV with initial value zero instead of pointer type.
861
862 2008-10-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
863
864         PR c/7543
865         * value-prof.c (gimple_stringop_fixed_value): Use parentheses
866         around bit operation.
867         * profile.c (is_edge_inconsistent): Likewise.
868         * fold-const.c (truth_value_p): Move from here...
869         * tree.h (truth_value_p): ... to here.
870         * c-tree.h (c_expr): Update description of original_code.
871         * c-typeck.c (parser_build_unary_op): Set original_code.
872         (parser_build_binary_op): Update call to warn_about_parentheses.
873         * c-common.c (warn_about_parentheses): Take two additional
874         arguments of the operands. Use a switch. Quote operators
875         appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
876         Add warning about !x | y and !x & y.
877         * c-common.h (warn_about_parentheses): Update declaration.
878
879 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
880
881         * Makefile.in (lang_checks_parallelized, check_gcc_parallelize,
882         check_p_tool, check_p_vars, check_p_subno, check_p_comma,
883         check_p_subwork, check_p_numbers, check_p_subdir, check_p_subdirs):
884         New variables.
885         (check-subtargets, check-%-subtargets, check-parallel-%): New targets.
886         (check-%): For test targets listed in lang_checks_parallelized
887         if -j is used and RUNTESTFLAGS doesn't specify tests to execute,
888         run the testing in multiple make goals, possibly parallel, and
889         afterwards run dg-extract-results.sh to merge the sum and log files.
890
891 2008-10-24  Richard Sandiford  <rdsandiford@googlemail.com>
892
893         * config/mips/mips.c (mips_canonicalize_move_class): New function.
894         (mips_move_to_gpr_cost): Likewise.
895         (mips_move_from_gpr_cost): Likewise.
896         (mips_register_move_cost): Make more fine-grained.
897
898 2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>
899
900         * graphite.c (graphite_apply_transformations): Check for
901         -fgraphite-identity.
902         * toplev.c (process_options): Add graphite_identity.
903         * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity.
904
905 2008-10-23  Bernd Schmidt  <bernd.schmidt@analog.com>
906
907         * config/bfin/bfin.c (bdesc_2arg): Add mulhisill, mulhisilh,
908         mulhisihl and mulhisihh builtins.
909
910         From Jie Zhang  <jie.zhang@analog.com>
911         * config/bfin/bfin.md (composev2hi): Put operands into vector
912         with correct order.
913         
914 2008-10-22  Chao-ying Fu  <fu@mips.com>
915
916         * config/mips/mips.opt (msmartmips): Accept -mno-smartmips.
917
918 2008-10-22  Bernd Schmidt  <bernd.schmidt@analog.com>
919
920         From Mike Frysinger  <michael.frysinger@analog.com>
921         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF512,
922         BFIN_CPU_BF514, BFIN_CPU_BF516, and BFIN_CPU_BF518.
923         * config/bfin/bfin.c (bfin_cpus[]): Add 0.0 for bf512, bf514, bf516,
924         and bf518.  Add 0.2 for bf522, bf523, bf524, bf526, and bf527.
925         Add 0.6 for bf533, bf532, and bf531.  Add 0.5 for bf538 and bf539.
926         Add 0.2 for bf542, bf544, bf547, bf548, and bf549.
927         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF512__
928         for BFIN_CPU_BF512, __ADSPBF514__ for BFIN_CPU_BF514, __ADSPBF516__
929         for BFIN_CPU_BF516, and __ADSPBF518__ for BFIN_CPU_BF518.  Define
930         __ADSPBF51x__ for all of them.
931         * config/bfin/elf.h (LIB_SPEC): Select proper linker scripts for
932         -mcpu bf512, bf514, bf516, and bf518.
933         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
934         bf512-none, bf514-none, bf516-none, and bf518-none.
935         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
936         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
937         * doc/invoke.texi (Blackfin Options): Document that
938         -mcpu now accepts bf512, bf514, bf516, and bf518.
939
940 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
941
942         PR middle-end/37882
943         * fold-const.c (build_range_type): For 1 .. signed_max
944         range call build_nonstandard_inter_type if signed_type_for
945         returned a type with bigger precision.
946
947 2008-10-22  Richard Guenther  <rguenther@suse.de>
948
949         * tree.def (COMPLEX_TYPE): Constrain element type.
950         * tree.c (build_complex_type): Assert that.
951         * tree-ssa-structalias.c (could_have_pointers): Complex types
952         cannot have pointers.
953
954 2008-10-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
955
956         PR c/30949
957         * c-typeck.c (convert_for_assignment): Do not give declaration's
958         location for builtins. Spell out which type was expected and which
959         was given.
960
961 2008-10-22  Nick Clifton  <nickc@redhat.com>
962
963         * config/frv/frv.h (HARD_REGNO_RENAME_OK): Define.  Do not allow
964         the fdpic register to be a target when running in fdpic mode.
965
966 2008-10-22 Rafael Espindola  <espindola@google.com>
967
968         * ipa-struct-reorg.c (create_new_alloc_sites): Properly insert the
969         newly created statements.
970
971 2008-10-22  Kaz Kojima  <kkojima@gcc.gnu.org>
972
973         PR target/37633
974         * config/sh/sh.c (sh_hard_regno_mode_ok): New function.
975         * config/sh/sh.h (HARD_REGNO_MODE_OK): Use it.
976         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Declare.
977
978 2008-10-22  Jakub Jelinek  <jakub@redhat.com>
979
980         PR target/37880
981         * doc/invoke.texi: Fix spelling of -mlarge-data-threshold option.
982         Adjust -mcmodel=medium description for 2005-07-31 changes.
983
984 2008-10-22  Jan Hubicka  <jh@suse.cz>
985             Jakub Jelinek  <jakub@redhat.com>
986
987         PR middle-end/35853
988         * doc/invoke.texi: Remove references to obsoleted -d dumps.
989
990 2008-10-21  Richard Henderson  <rth@redhat.com>
991
992         PR 37815
993         * emit-rtl.c (get_spill_slot_decl): Export.
994         * emit-rtl.h (get_spill_slot_decl): Declare.
995         * var-tracking.c (vt_add_function_parameters): Relax assertion
996         on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
997
998 2008-10-21  Bob Wilson  <bob.wilson@acm.org>
999
1000         * var-tracking.c (insn_stack_adjust_offset_pre_post): If insn has a
1001         REG_FRAME_RELATED_EXPR note, examine the pattern from the note instead
1002         of from insn.
1003
1004 2008-10-21  Adam Nemet  <anemet@caviumnetworks.com>
1005
1006         PR middle-end/37669
1007         * tree-ssa-ccp.c (ccp_fold_builtin): Only allow one argument to be
1008         processed by get_maxval_strlen.
1009
1010 2008-10-21  David Edelsohn  <edelsohn@gnu.org>
1011
1012         PR target/35485
1013         * tree.c (get_file_function_name): Copy first_global_object_name.
1014         Centralize call to clean_symbol_name.
1015
1016 2008-10-21  Sandra Loosemore  <sandra@codesourcery.com>
1017
1018         * config.gcc (powerpc-*): Make t-ppcgas imply usegas.h.
1019         * config/svr4.h (SVR4_ASM_SPEC): New.
1020         (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1021         * config/rs6000/sysv4.h (ASM_SPEC): Inherit from SVR4_ASM_SPEC.
1022
1023         * doc/invoke.texi (Option Summary): Add -T to linker options.
1024         (Link Options): Document -T.
1025         
1026 2008-10-21  Jakub Jelinek  <jakub@redhat.com>
1027
1028         * tree-inline.c (tree_inlinable_function_p): Remove tuples
1029         debugging hack.
1030
1031         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW from INTEGER_CSTs.
1032
1033         PR debug/37020
1034         * c-decl.c (merge_decls): Don't call outlining_inline_function hook.
1035
1036 2008-10-20  Daniel Berlin  <dberlin@dberlin.org>
1037
1038         * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant
1039         part of expression.
1040
1041 2008-10-20  Tobias Schlüter  <tobi@gcc.gnu.org>
1042
1043         * doc/install.texi: Fix typos in previous patch.
1044
1045 2008-10-19  Tobias Schlüter  <tobi@gcc.gnu.org>
1046
1047         * doc/install.texi: Document in-tree building of gcc and mpfr.
1048
1049 2008-10-19  Richard Guenther  <rguenther@suse.de>
1050
1051         * tree-ssa-alias.c (may_alias_p): Remove bogus shortcut.
1052
1053 2008-10-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1054
1055         PR c/30260
1056         * c-decl.c (finish_enum): Convert non-integer enumerators to enum type.
1057         (build_enumerator): Convert enumerators that fit in integer to
1058         integer type.
1059
1060 2008-10-18  Uros Bizjak  <ubizjak@gmail.com>
1061
1062         * config/i386/i386.md (unnamed peephole2): Do not force memory
1063         operands of arith or logical instructions into registers for
1064         non-TARGET_READ_MODIFY targets.
1065
1066         (ffs_cmove): Change operand 0 predicate to register_operand.
1067         Change operand 1 predicate to nonimmediate_operand.
1068         (ffsdi2): Ditto.
1069         (*ffs_no_cmove): Change operand 0 predicate to register_operand.
1070
1071 2008-10-18  Richard Guenther  <rguenther@suse.de>
1072
1073         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Guard
1074         VIEW_CONVERT_EXPR case against invalid gimple.
1075
1076 2008-10-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1077
1078         * c-parser.c (c_parser_binary_expression): Silence the
1079         uninitialized variable warning emitted for binary_loc.
1080
1081 2008-10-16  Daniel Berlin  <dberlin@dberlin.org>
1082
1083         * tree-ssa-pre.c (phi_translate_set): Add constants to phi
1084         translation cache.
1085
1086 2008-10-16  Joseph Myers  <joseph@codesourcery.com>
1087
1088         PR c/33192
1089         * c-typeck.c (build_unary_op): Use omit_one_operand for
1090         IMAGPART_EXPR of real argument.
1091
1092 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
1093
1094         PR tree-optimization/37664
1095         * fold-const.c (fold_binary): When optimizing comparison with
1096         highest or lowest type's value, don't consider TREE_OVERFLOW.
1097
1098 2008-10-16  David Edelsohn  <edelsohn@gnu.org>
1099
1100         PR target/35483
1101         * Makefile.in (coverage.o): Depend on $(TM_P_H).
1102         * coverage.c: Include tm_p.h.
1103         * config/rs6000/x-aix (jc1): Override LDFLAGS.
1104         * config/rs6000/xcoff.h (ASM_GENERATE_INTERNAL_LABEL): Strip
1105         dollar signs from PREFIX.
1106         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
1107         instead of manual strip_name_encoding.
1108
1109 2008-10-16  Richard Guenther  <rguenther@suse.de>
1110
1111         PR middle-end/37418
1112         * tree-ssa.c (useless_type_conversion_p_1): Do not treat
1113         volatile qualified functions or methods as relevant.
1114
1115 2008-10-16  Jakub Jelinek  <jakub@redhat.com>
1116
1117         PR tree-optimization/37525
1118         * tree.c (int_fits_type_p): Rewrite using double_int.  Zero extend
1119         sizetype unsigned constants, both in the case of C and bounds.
1120
1121 2008-10-15  Jan Hubicka  <jh@suse.cz>
1122
1123         * ira-emit.c (change_regs): Return false when replacing reg by itself.
1124
1125 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
1126
1127         PR target/37633
1128         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check
1129         HARD_REGNO_CALL_PART_CLOBBERED.
1130
1131 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1132
1133         PR middle-end/37535
1134         * ira-lives.c (mark_early_clobbers): Remove.
1135         (make_pseudo_conflict, check_and_make_def_use_conflicts,
1136         check_and_make_def_conflicts,
1137         make_early_clobber_and_input_conflicts,
1138         mark_hard_reg_early_clobbers): New functions.
1139         (process_bb_node_lives): Call
1140         make_early_clobber_and_input_conflicts and
1141         mark_hard_reg_early_clobbers.  Make hard register inputs live again.
1142
1143         * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
1144         early clobbers of pseudo-registers.
1145         
1146 2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>
1147
1148         PR middle-end/37674
1149         * ira-build.c (ira_flattening): Recalculate
1150         ALLOCNO_TOTAL_NO_STACK_REG_P and ALLOCNO_TOTAL_CONFLICT_HARD_REGS
1151         from the scratch instead of the propagation.
1152         
1153 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
1154
1155         * doc/rtl.texi (const_double): Remove the "addr" operand.
1156         Describe CONST_DOUBLE_* macros under const_double rather
1157         than const_vector.
1158         (const_fixed): Fix the operand description.
1159         (const): Add an @findex directive.
1160         (CONST0_RTX, CONST1_RTX, CONST2_RTX): Move description
1161         after the constant rtl table.
1162         (fix): Combine floating-point and fixed-point descriptions.
1163         Fix hyphenation.
1164         * sched-deps.c (sched_analyze_2): Remove reference to
1165         CONST_DOUBLE_CHAIN.
1166
1167 2008-10-15  Richard Sandiford  <rdsandiford@googlemail.com>
1168
1169         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Handle
1170         UNSPEC_GOTSYM_OFFs.
1171         * config/mn10300/mn10300.c (legitimate_pic_operand_p): Return true
1172         for UNSPEC_GOTSYM_OFFs.
1173         * config/mn10300/mn10300.md (UNSPEC_GOTSYM_OFF): New unspec.
1174         (add_GOT_to_pic_reg): Use it.
1175         * config/mn10300/constraints.md (S): Allow UNSPEC_GOTSYM_OFF.
1176
1177 2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
1178             Harsha Jagasia  <harsha.jagasia@amd.com>
1179
1180         PR tree-optimization/37485
1181         * graphite.c (gmp_cst_to_tree): Moved.
1182         (iv_stack_entry_is_constant): New.
1183         (iv_stack_entry_is_iv): New.
1184         (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
1185         (loop_iv_stack_insert_constant): New.
1186         (loop_iv_stack_pop): Use new datatpype.
1187         (loop_iv_stack_get_iv): Same.
1188         (loop_iv_stack_get_iv_from_name): Same.
1189         (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
1190         (loop_iv_stack_patch_for_consts): New.
1191         (loop_iv_stack_remove_constants): New.
1192         (graphite_create_new_loop): Use loop_iv_stack_push_iv.
1193         (translate_clast): Call loop_iv_stack_patch_for_consts and
1194         loop_iv_stack_remove_constants.
1195         (gloog): Use new datatype.  Redirect construction edge to end
1196         block to avoid accidental deletion.
1197         * graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
1198         iv stack entry.
1199         (union iv_stack_entry_data): New.  Data in iv stack entry.
1200         (struct iv_stack_entry): New.  Datatype for iv stack entries.
1201
1202 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1203
1204         * tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
1205         * graphite.c (free_scop): Same.
1206         (build_scops): Same.
1207         (free_scattering): New.
1208         (build_cloog_prog): Call free_scattering.
1209         (patch_phis_for_virtual_defs): Fix memleak.
1210         (graphite_trans_bb_strip_mine): Same.
1211         (limit_scops): Same.
1212
1213 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1214             Harsha Jagasia  <harsha.jagasia@amd.com>
1215
1216         PR tree-optimization/37828
1217         * graphite.c (graphite_trans_loop_block): Do not loop block
1218         single nested loops.
1219
1220 2008-10-15  Sebastian Pop  <sebastian.pop@amd.com>
1221
1222         PR tree-optimization/37686
1223         * tree-loop-linear.c (linear_transform_loops): Build a
1224         loop nest vector.  Pass it to lambda_compute_access_matrices.
1225         * tree-data-ref.h (struct access_matrix): Store the loop nest
1226         relative to which it encodes the information.
1227         (AM_LOOP_NEST_NUM): Renamed AM_LOOP_NEST.
1228         (am_vector_index_for_loop): Reimplemented: iterate over the
1229         loop nest for finding the loop index in the access matrix.
1230         (lambda_compute_access_matrices): Update declaration.
1231         * lambda-code.c (build_access_matrix): Pass the loop nest and
1232         record it.
1233         (lambda_compute_access_matrices): Same.
1234
1235 2008-10-15  Andreas Krebbel  <krebbel1@de.ibm.com>
1236
1237         * config/s390/s390.h: (TARGET_DFP): This requires TARGET_HARD_FLOAT.
1238         * config/s390/s390.md: Replace "TARGET_HARD_FLOAT &&
1239         TARGET_(HARD_)DFP" with only TARGET_(HARD_)DFP since this
1240         already implies hard float.  Also fix several insn condition
1241         with TARGET_DFP which shall require TARGET_HARD_DFP instead.
1242
1243 2008-10-15  David Edelsohn  <edelsohn@gnu.org>
1244
1245         PR target/35483
1246         Based on patches by Laurent Vivier.
1247         * xcoffout.h (DBX_FINISH_STABS): Translate dollar sign to underscore.
1248         * config/rs6000/rs6000-protos.h (rs6000_xcoff_strip_dollar): Declare.
1249         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Translate
1250         dollar sign to underscore.
1251         (ASM_OUTPUT_EXTERNAL): Same.
1252         (ASM_OUTPUT_LABELREF): New.
1253         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): New.
1254
1255         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Define.
1256         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Define.
1257         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Define.
1258         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Define.
1259
1260 2008-10-15  Jakub Jelinek  <jakub@redhat.com>
1261
1262         PR tree-optimization/36881
1263         * tree-switch-conversion.c (check_final_bb): For flag_pic, check
1264         that each value doesn't need runtime relocations, for !flag_pic
1265         check that each value is just a valid initializer constant.
1266
1267 2008-10-14  Richard Sandiford  <rdsandiford@googlemail.com>
1268
1269         * config/mips/mips.h (reg_class): Remove HI_AND_GR_REGS,
1270         LO_AND_GR_REGS, HI_AND_FP_REGS, COP0_AND_GR_REGS, COP2_AND_GR_REGS,
1271         COP3_AND_GR_REGS, ALL_COP_REGS and ALL_COP_AND_GR_REGS.
1272         Add GR_AND_MD0_REGS, GR_AND_MD1_REGS, GR_AND_MD_REGS and
1273         GR_AND_ACC_REGS.
1274         (REG_CLASS_NAMES): Update accordingly.
1275         (REG_CLASS_CONTENTS): Likewise.  Use the class name in the comments,
1276         rather than an unpredictable descriptive string.
1277         * config/mips/mips.c (mips_register_move_cost): Remove comment.
1278         (mips_register_move_cost): Check for specific COP*_REGS classes,
1279         instead of ALL_COP_AND_GR_REGS.
1280         (mips_ira_cover_classes): New function.
1281         (mips_secondary_reload_class): Remove MTLO and MTHI workarounds.
1282         (TARGET_IRA_COVER_CLASSES): Define.
1283
1284 2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
1285
1286         PR c++/37553
1287         * tree.c (build_type_attribute_qual_variant): Hash on the
1288         unqualified type, and don't overwrite an existing
1289         (type_hash_eq): Make the TYPE_NAME of the types significant, to
1290         allow distinguishing between wchar_t and its underlying type. This
1291         also means that we'll retain a little more typedef information.
1292
1293 2008-10-14  Andrey Belevantsev  <abel@ispras.ru>
1294             Dmitry Melnik  <dm@ispras.ru>
1295             Dmitry Zhurikhin  <zhur@ispras.ru>
1296             Alexander Monakov  <amonakov@ispras.ru>
1297             Maxim Kuvyrkov  <maxim@codesourcery.com>
1298
1299         * target.h (struct gcc_target): Update prototypes of needs_block_p
1300         and gen_spec_check.
1301         * haifa-sched.c (create_check_block_twin): Update calls to the above.
1302         * sel-sched.c (create_speculation_check): Likewise.
1303         * doc/tm.texi: Provide documentation for new target hooks.
1304                 
1305         * config/ia64/ia64.c: Include sel-sched.h.  Rewrite speculation hooks.
1306         (ia64_gen_spec_insn): Removed.
1307         (get_spec_check_gen_function, insn_can_be_in_speculative_p,
1308         ia64_gen_spec_check): New static functions.
1309         (ia64_alloc_sched_context, ia64_init_sched_context,
1310         ia64_set_sched_context, ia64_clear_sched_context,
1311         ia64_free_sched_context, ia64_get_insn_spec_ds,
1312         ia64_get_insn_checked_ds, ia64_skip_rtx_p): Declare functions.
1313         (ia64_needs_block_p): Change prototype.
1314         (ia64_gen_check): Rename to ia64_gen_spec_check.
1315         (ia64_adjust_cost): Rename to ia64_adjust_cost_2.  Add new parameter
1316         into declaration, add special memory dependencies handling.
1317         (TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
1318         TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1319         TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_SPEC_DS,
1320         TARGET_SCHED_GET_INSN_CHECKED_DS, TARGET_SCHED_SKIP_RTX_P):
1321         Define new target hooks.
1322         (TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
1323         (ia64_optimization_options): Turn on selective scheduling with -O3,
1324         disable -fauto-inc-dec. Set mflag_sched_control_spec to true by
1325         default with selective scheduling.
1326         (ia64_override_options): Initialize align_loops and align_functions
1327         to 32 and 64, respectively.  Set global selective scheduling flags
1328         according to target-dependent flags.
1329         (rtx_needs_barrier): Support UNSPEC_LDS_A.
1330         (group_barrier_needed): Use new mstop-bit-before-check flag.
1331         Add heuristic.
1332         (dfa_state_size): Make global.
1333         (spec_check_no, max_uid): Remove.
1334         (mem_ops_in_group, current_cycle): New variables.
1335         (ia64_sched_init): Disable checks for !SCHED_GROUP_P after reload.
1336         Initialize new variables.
1337         (is_load_p, record_memory_reference): New functions.
1338         (ia64_dfa_sched_reorder): Lower priority of loads when limit is
1339         reached.
1340         (ia64_variable_issue): Change use of current_sched_info to
1341         sched_deps_info.  Update comment.  Note if a load or a store is issued.
1342         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Require a cycle
1343         advance if maximal number of loads or stores was issued on current
1344         cycle.
1345         (scheduled_good_insn): New static helper function.
1346         (ia64_dfa_new_cycle): Assert that last_scheduled_insn is set when
1347         a group barrier is needed.  Fix vertical spacing.  Guard the code
1348         doing state transition with last_scheduled_insn check.
1349         Mark that a stop bit should be before current insn if there was a 
1350         cycle advance.  Update current_cycle and mem_ops_in_group.
1351         (ia64_h_i_d_extended): Change use of current_sched_info to
1352         sched_deps_info. Reallocate stops_p by larger chunks.
1353         (struct _ia64_sched_context): New structure.
1354         (ia64_sched_context_t): New typedef.
1355         (ia64_alloc_sched_context, ia64_init_sched_context,
1356         ia64_set_sched_context, ia64_clear_sched_context,
1357         ia64_free_sched_context): New static functions.
1358         (gen_func_t): New typedef.
1359         (get_spec_load_gen_function): New function.
1360         (SPEC_GEN_EXTEND_OFFSET): Declare.      
1361         (ia64_set_sched_flags): Check common_sched_info instead of *flags.
1362         (get_mode_no_for_insn): Change the condition that prevents use of
1363         special hardware registers so it can now handle pseudos.
1364         (get_spec_unspec_code): New function.
1365         (ia64_skip_rtx_p, get_insn_spec_code, ia64_get_insn_spec_ds,
1366         ia64_get_insn_checked_ds, ia64_gen_spec_load): New static functions.
1367         (ia64_speculate_insn, ia64_needs_block_p): Support branchy checks
1368         during selective scheduling.
1369         (ia64_speculate_insn): Use ds_get_speculation_types when
1370         determining whether we need to change the pattern.
1371         (SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): Declare.
1372         (ia64_spec_check_src_p): Support new speculation/check codes.
1373         (struct bundle_state): New field.
1374         (issue_nops_and_insn): Initialize it.
1375         (insert_bundle_state): Minimize mid-bundle stop bits.
1376         (important_for_bundling_p): New function.
1377         (get_next_important_insn): Use important_for_bundling_p.
1378         (bundling): When shifting TImode from unimportant insns, ignore
1379         also group barriers.  Assert that best state is found before
1380         the backward bundling pass.  Print number of mid-bundle stop bits.
1381         Minimize mid-bundle stop bits.  Check correct calculation of
1382         mid-bundle stop bits.
1383         (ia64_sched_finish, final_emit_insn_group_barriers): Fix formatting.
1384         (final_emit_insn_group_barriers): Emit stop bits before insns starting
1385         a new cycle.
1386         (sel2_run): New variable.
1387         (ia64_reorg): When flag_selective_scheduling2 is set, run the
1388         selective scheduling pass instead of schedule_ebbs.
1389         
1390         * config/ia64/ia64.md (speculable1, speculable2): New attributes.
1391         (UNSPEC_LDS_A): New UNSPEC.
1392         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
1393         movti_internal, movsf_internal, movdf_internal,
1394         movxf_internal): Make visible.  Add speculable* attributes.
1395         (output_c_nc): New mode attribute.
1396         (mov<mode>_speculative_a, zero_extend<mode>di2_speculative_a,
1397         mov<mode>_nc, zero_extend<mode>di2_nc,
1398         advanced_load_check_nc_<mode>): New insns.
1399         (zero_extend*): Add speculable* attributes.
1400
1401         * config/ia64/ia64.opt (msched_fp_mem_deps_zero_cost): New option.
1402         (msched-stop-bits-after-every-cycle): Likewise.
1403         (msched-max-memory-insns, msched-max-memory-insns-hard-limit):
1404         Likewise.
1405         (msched-spec-verbose): Remove.
1406         (msched-prefer-non-data-spec-insns,
1407         msched-prefer-non-control-spec-insns,
1408         msched-count-spec-in-critical-path,
1409         msel-sched-dont-check-control-spec): Use Target  Report Var
1410         instead of Common Report Var.
1411
1412         * config/ia64/itanium2.md: Remove incorrect bypass.
1413         
1414         * config/ia64/t-ia64 (ia64.o): Add dependency on sel-sched.h.
1415
1416 2008-10-14  Jakub Jelinek  <jakub@redhat.com>
1417
1418         PR middle-end/37805
1419         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
1420         and -fhelp=separate.
1421
1422 2008-10-14  Ben Elliston  <bje@au.ibm.com>
1423
1424         * config/rs6000/rs6000.md (cell_micro): Fix formatting.
1425
1426 2008-10-13  Joseph Myers  <joseph@codesourcery.com>
1427
1428         * combine.c (simplify_set): Avoid calling LOAD_EXTEND_OP on
1429         non-integer modes.
1430
1431 2008-10-13  Matthias Klose  <doko@ubuntu.com>
1432
1433         * config/pa/linux-atomic.c: Work around missing header file
1434         for hppa64-linux-gnu targets.
1435
1436 2008-10-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1437             Kaushal Kantawala <Kaushal_Kantawala@playstation.sony.com>
1438             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
1439             Grace Cao  <grace_cao@playstation.sony.com>
1440
1441         * doc/invoke.texi (-mgen-cell-microcode): Document.
1442         (-mwarn-cell-microcode): Document.
1443         * cfglayout.c (locator_location): Export.
1444         * rtl.h (locator_location): Define prototype.
1445         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand):
1446         New predicate.
1447         * rs6000/rs6000-protos.h (rs6000_final_prescan_insn): Define prototype.
1448         * config/rs6000/rs6000.opt (mgen-cell-microcode): New option.
1449         (mwarn-cell-microcode): New option.
1450         * rs6000/rs6000.c (rs6000_cell_dont_microcode): Delete unused variable.
1451         (rs6000_override_options): Set rs6000_gen_cell_microcode if tuning for
1452         cell and not already set.
1453         Turn off string instructions if not generating cell microcode.
1454         (rs6000_final_prescan_insn): New function that warns about microcoded
1455         instructions.
1456         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Define.
1457         * config/rs6000/rs6000.md
1458         Replace cc_reg_not_cr0_operand with cc_reg_not_micro_cr0_operand if
1459         the instruction would have been microcoded on the Cell.  Set
1460         cell_micro to always on unnamed patterns for the string instructions.
1461         (cell_micro): Update definition, remove load/store conditional
1462         microcoded.
1463         (sign_extend:DI): Define new pattern for non microcoded version.
1464         (sign_extend:SI): Likewise.
1465         (compare (div:P)): Set cell_micro to not.
1466         (andsi3): Define as an expand.
1467         (andsi3_mc): New pattern.
1468         (andsi3_nomc): New pattern.
1469         (andsi3_internal0_nomc): New pattern.
1470         (andsi3_internal2): Rename to ...
1471         (andsi3_internal2_mc): this and enable iff generating microcode.
1472         (andsi3_internal3): Rename to ...
1473         (andsi3_internal3_mc): this and enable iff generating microcode.
1474         (andsi3_internal4): Enable iif generating microcode.
1475         (andsi3_internal5): Rename to ..
1476         (andsi3_internal5_mc): this and enable iff generating microcode.
1477         (andsi3_internal5_nomc): New pattern.
1478         (extzvdi_internal1): Enable iff generating microcode.
1479         (extzvdi_internal2): Likewise.
1480         (rotlsi3_internal7): Set cell_micro to always if non immediate form.
1481         (anddi3): Change to expand.
1482         (anddi3_mc): Rename from anddi3.
1483         (anddi3_no_mc): New pattern.
1484         (anddi3_internal2): Rename to ..
1485         (anddi3_internal2_mc): this and enable iff generating microcode.
1486         (anddi3_internal2_nomc): New pattern.
1487         (anddi3_internal3): Rename to ..
1488         (anddi3_internal3_mc): this and enable iff generating microcode.
1489         (anddi3_internal3_nomc): New pattern.
1490         (movti_string): Set cell_micro to always if TARGET_STRING.
1491         (stmsi8): Set cell_micro to always.
1492         (stmsi7): Likewise.
1493         (stmsi6): Likewise.
1494         (stmsi5): Likewise.
1495         (stmsi4): Likewise.
1496         (stmsi3): Likewise.
1497         (stmsi8_power): Likewise.
1498         (stmsi7_power): Likewise.
1499         (stmsi6_power): Likewise.
1500         (stmsi5_power): Likewise.
1501         (stmsi4_power): Likewise.
1502         (stmsi3_power): Likewise.
1503         (movsi_update2): Enable iff generating microcode.
1504         (movhi_update3): Likewise.
1505         (lmw): Set cell_micro to always.
1506
1507 2008-10-13  Richard Sandiford  <rdsandiford@googlemail.com>
1508
1509         * config/s390/s390.md (UNSPEC_POOL_OFFSET): New constant.
1510         * config/s390/s390.c (machine_function): Remove
1511         decomposed_literal_pool_addresses_ok_p.
1512         (s390_decompose_address): Check for UNSPEC_POOL_OFFSET instead of
1513         the difference of two labels.
1514         (s390_output_addr_const_extra): Handle UNSPEC_POOL_OFFSET.
1515         (s390_pool_offset): New function.
1516         (s390_find_constant, s390_find_execute, s390_dump_pool): Use it.
1517         (s390_reorg): Don't set decomposed_literal_pool_addresses_ok_p.
1518
1519 2008-10-13  Nathan Froyd  <froydnj@codesourcery.com>
1520
1521         * doc/install.texi (powerpc-*-*): Require binutils 2.15.
1522         (powerpc*-*-linux-gnu*): Describe.
1523         * config/rs6000/ppc-asm.h (HIDDEN_FUNC): New macro.
1524         * config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
1525         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
1526         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
1527         config/rs6000/e500crtres32gpr.asm,
1528         config/rs6000/e500crtres64gpr.asm,
1529         config/rs6000/e500crtres64gprctr.asm,
1530         config/rs6000/e500crtrest32gpr.asm,
1531         config/rs6000/e500crtrest64gpr.asm,
1532         config/rs6000/e500crtresx32gpr.asm,
1533         config/rs6000/e500crtresx64gpr.asm,
1534         config/rs6000/e500crtsav32gpr.asm,
1535         config/rs6000/e500crtsav64gpr.asm,
1536         config/rs6000/e500crtsav64gprctr.asm,
1537         config/rs6000/e500crtsavg32gpr.asm,
1538         config/rs6000/e500crtsavg64gpr.asm,
1539         config/rs6000/e500crtsavg64gprctr.asm: Use it.
1540         * config/rs6000/crtsavres.asm: Really remove.
1541
1542 2008-10-13  Kai Tietz  <kai.tietz@onevision.com>
1543
1544         Fix PR/25502
1545         * c-format.c (convert_format_name_to_system_name): Use
1546         TARGET_OVERRIDES_FORMAT_INIT.
1547         * config.gcc (extra_options): Add for mingw targets mingw.opt.
1548         * config/i386/mingw.opt: New.
1549         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_INIT): New.
1550         * config/i386/msformat-c.c (TARGET_OVERRIDES_FORMAT_INIT): New.
1551         (ms_printf_length_specs): Removed const specifier.
1552         * doc/tm.texi (TARGET_OVERRIDES_FORMAT_INIT): New.
1553         * doc/invoke.texi (Wno-pedantic-ms-format): New.
1554
1555 2008-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1556
1557         * builtins.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
1558         * doc/install.texi: Bump recommended MPFR to 2.3.2.
1559
1560 2008-10-12  Kenneth Zadeck <zadeck@naturalbridge.com>
1561
1562         PR middle-end/37808
1563         * df-scan.c (df_ref_change_reg_with_loc_1): Added test to make
1564         sure that ref has valid bb.
1565         
1566 2008-10-12  Richard Henderson  <rth@redhat.com>
1567
1568         PR middle-end/37447
1569         * Makefile.in (reload1.o): Depend on EMIT_RTL_H.
1570         * alias.c (value_addr_p, stack_addr_p): Remove.
1571         (nonoverlapping_memrefs_p): Remove IRA special case.
1572         * emit-rtl.c (get_spill_slot_decl, set_mem_attrs_for_spill): New.
1573         * emit-rtl.h (set_mem_attrs_for_spill): Declare.
1574         * reload1.c (alter_reg): Use it.
1575
1576 2008-10-12  Uros Bizjak  <ubizjak@gmail.com>
1577
1578         * config/i386/driver-i386.c (detect_caches_cpuid2): Use array
1579         of registers instead of eax, ebx, ecx and edx.  Use for loop
1580         and check register for non-zero value before the call
1581         to decode_caches_intel.
1582
1583 2008-10-11  Kenneth Zadeck <zadeck@naturalbridge.com>
1584
1585         PR rtl-optimization/37448
1586         * df.h: (df_ref_class): New enum.
1587         (DF_REF_TYPE_NAMES, df_ref_extract): Removed.
1588         (struct df_ref): Replaced with union df_ref_d.
1589         (df_base_ref, df_artificial_ref, df_regular_ref, df_extract_ref):
1590         New members of df_ref_d union.
1591         (DF_REF_REAL_REG, DF_REF_REGNO, DF_REF_REAL_LOC, DF_REF_REG,
1592         DF_REF_LOC, DF_REF_BB, DF_REF_INSN_INFO, DF_REF_INSN,
1593         DF_REF_CLASS, DF_REF_TYPE, DF_REF_CHAIN, DF_REF_ID, DF_REF_FLAGS,
1594         DF_REF_ORDER, DF_REF_IS_ARTIFICIAL, DF_REF_NEXT_REG,
1595         DF_REF_PREV_REG, DF_REF_EXTRACT_WIDTH, DF_REF_EXTRACT_OFFSET,
1596         DF_REF_EXTRACT_MODE): Replaced definition to access union df_ref_d.
1597         (DF_MWS_REG_DEF_P, DF_MWS_REG_USE_P, DF_MWS_TYPE): New macros.
1598         (df_scan_bb_info, df_bb_regno_first_def_find,
1599         df_bb_regno_last_def_find, df_find_def, df_find_use,
1600         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1601         debug_df_ref, df_chain_create, df_chain_unlink, df_chain_copy,
1602         df_ref_create, df_ref_remove, df_compute_accessed_bytes,
1603         df_get_artificial_defs, df_get_artificial_uses, union_defs)
1604         Replaced struct df_ref * with df_ref.
1605         * df-scan.c (df_collection_rec, df_null_ref_rec,
1606         df_ref_chain_delete_du_chain, df_ref_chain_delete, df_install_ref,
1607         df_grow_ref_info, df_ref_create, df_reg_chain_unlink,
1608         df_ref_compress_rec, df_ref_remove, df_ref_chain_delete_du_chain,
1609         df_ref_chain_delete, df_free_collection_rec, df_insn_rescan,
1610         df_reorganize_refs_by_reg_by_reg,
1611         df_reorganize_refs_by_reg_by_insn, df_reorganize_refs_by_reg,
1612         df_ref_change_reg_with_loc_1, df_notes_rescan, df_swap_refs,
1613         df_sort_and_compress_refs, df_install_ref, df_install_refs,
1614         df_ref_record, df_get_conditional_uses, df_get_call_refs,
1615         df_bb_refs_record, df_exit_block_uses_collect,
1616         df_record_exit_block_uses, df_reg_chain_mark,
1617         df_reg_chain_verify_unmarked, df_refs_verify): Replaced struct
1618         df_ref * with df_ref.
1619         (df_ref_record, df_uses_record, df_ref_create_structure): Added
1620         df_ref_class parameter.
1621         (df_scan_problem_data): Added new pools for different types of refs.
1622         (df_scan_free_internal, df_scan_alloc, df_free_ref,
1623         df_ref_create_structure): Processed new ref pools.
1624         (df_scan_start_dump): Added counts of refs and insns.
1625         (df_ref_create, df_notes_rescan, df_def_record_1, df_uses_record,
1626         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1627         df_entry_block_defs_collect, df_exit_block_uses_collect): Added
1628         code to pass df_ref_class down to ref creation functions.
1629         (df_reg_chain_unlink, df_ref_remove, df_ref_change_reg_with_loc_1,
1630         df_reg_chain_mark): Use macros to hide references to df_refs.
1631         (df_ref_chain_change_bb): Removed.
1632         (df_insn_change_bb): Remove calls to df_ref_insn_change_bb.
1633         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1634         Enhanced to understand df_ref union structure.
1635         * fwprop.c (local_ref_killed_between_p, use_killed_between,
1636         all_uses_available_at, update_df, try_fwprop_subst,
1637         forward_propagate_subreg, forward_propagate_and_simplify,
1638         forward_propagate_into, fwprop, fwprop_addr): Replaced struct
1639         df_ref * with df_ref.
1640         (use_killed_between, all_uses_available_at): Use macros to hide
1641         references to df_refs.
1642         * regstat.c (regstat_bb_compute_ri,
1643         regstat_bb_compute_calls_crossed): Replaced struct df_ref * with
1644         df_ref.
1645         * see.c (see_handle_relevant_defs, see_handle_relevant_uses,
1646         see_handle_relevant_refs, see_analyze_one_def,
1647         see_update_relevancy, see_propagate_extensions_to_uses): Replaced
1648         struct df_ref * with df_ref.
1649         * ra-conflict.c (record_one_conflict, clear_reg_in_live,
1650         global_conflicts): Replaced struct df_ref * with df_ref.
1651         * ddg.c (create_ddg_dep_from_intra_loop_link,
1652         add_cross_iteration_register_deps, build_inter_loop_deps):
1653         Replaced struct df_ref * with df_ref.
1654         (create_ddg_dep_from_intra_loop_link,
1655         add_cross_iteration_register_deps): Use macros to hide references
1656         to df_refs.
1657         * auto-inc-dec.c (find_inc, merge_in_block): Replaced struct
1658         df_ref * with df_ref.
1659         * df-core.c (df_bb_regno_first_def_find,
1660         df_bb_regno_last_def_find, df_find_def, df_find_use,
1661         df_refs_chain_dump, df_regs_chain_dump, df_ref_debug,
1662         debug_df_ref): Replaced struct df_ref * with df_ref.
1663         (df_mws_dump, df_ref_debug): Use macros to hide references to df_refs.
1664         * cse.c (cse_extended_basic_block): Replaced struct df_ref * with
1665         df_ref.
1666         * web.c (union_defs, entry_register, replace_ref, web_main):
1667         Replaced struct df_ref * with df_ref.
1668         (union_defs, replace_ref): Use macros to hide references to df_refs.
1669         * global.c (compute_regs_asm_clobbered, build_insn_chain):
1670         Replaced struct df_ref * with df_ref.
1671         * ifcvt.c (dead_or_predicable): Replaced struct df_ref * with df_ref.
1672         * sel-sched-ir.c (maybe_downgrade_id_to_use, setup_id_reg_sets, ):
1673         Replaced struct df_ref * with df_ref.
1674         * ira-lives.c (mark_ref_live, def_conflicts_with_inputs_p,
1675         mark_ref_dead, process_bb_node_lives): Replaced struct df_ref *
1676         with df_ref.
1677         * local-alloc.c (block_alloc): Replaced struct df_ref * with df_ref.
1678         * df-byte-scan.c (df_compute_accessed_bytes_extract,
1679         df_compute_accessed_bytes_strict_low_part,
1680         df_compute_accessed_bytes_subreg, df_compute_accessed_bytes):
1681         Replaced struct df_ref * with df_ref.
1682         (df_compute_accessed_bytes): Use macros to hide references to df_refs.
1683         * init-regs.c (initialize_uninitialized_regs): Replaced struct
1684         df_ref * with df_ref.
1685         * loop-invariant.c (invariant_for_use, hash_invariant_expr_1,
1686         check_dependency, check_dependencies, record_uses): Replaced
1687         struct df_ref * with df_ref.
1688         (invariant_for_use, check_dependency): Use macros to hide
1689         references to df_refs.
1690         * loop-iv.c (iv_analysis_loop_init, iv_get_reaching_def,
1691         get_biv_step_1, get_biv_step, record_iv, iv_analyze_def,
1692         iv_analyze, biv_p): Replaced struct df_ref * with df_ref.
1693         (iv_analysis_loop_init, iv_get_reaching_def): Use macros to hide
1694         references to df_refs.
1695         * ira.c (compute_regs_asm_clobbered): Replaced struct df_ref *
1696         with df_ref.
1697         * combine.c (create_log_links): Replaced struct df_ref * with df_ref.
1698         * df-problems.c (df_rd_bb_local_compute_process_def,
1699         df_lr_bb_local_compute, df_live_bb_local_compute, df_chain_create,
1700         df_chain_unlink_1, df_chain_unlink, df_chain_copy,
1701         df_chain_remove_problem, df_chain_create_bb_process_use,
1702         df_chain_create_bb, df_chain_top_dump, df_chain_bottom_dump,
1703         df_byte_lr_check_regs, df_byte_lr_bb_local_compute,
1704         df_byte_lr_simulate_defs, df_byte_lr_simulate_uses,
1705         df_byte_lr_simulate_artificial_refs_at_top,
1706         df_byte_lr_simulate_artificial_refs_at_end, df_create_unused_note,
1707         df_note_bb_compute, df_note_add_problem, df_simulate_defs,
1708         df_simulate_uses, df_simulate_artificial_refs_at_end,
1709         df_simulate_artificial_refs_at_top): Replaced struct df_ref * with
1710         df_ref.
1711         (df_chain_dump): Use macros to hide references to df_refs.
1712         * config/mips/mips.c (r10k_simplify_address): Replaced struct
1713         df_ref * with df_ref.
1714         * dce.c (mark_nonreg_stores, delete_corresponding_reg_eq_notes,
1715         mark_artificial_uses, mark_reg_dependencies,
1716         byte_dce_process_block): Replaced struct df_ref * with df_ref.
1717
1718 2008-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1719
1720         * tree.h (contains_packed_reference): Mention ARRAY_RANGE_REF in
1721         head comment.
1722         (array_ref_element_size): Likewise.
1723         (array_ref_low_bound): Likewise.
1724         (array_ref_up_bound): Likewise.
1725         * expr.c (contains_packed_reference): Likewise.
1726         (array_ref_element_size): Likewise.
1727         (array_ref_low_bound): Likewise.
1728         (array_ref_up_bound): Likewise.
1729         * tree-ssa-loop-ivopts.c (idx_contains_abnormal_ssa_name_p): Deal
1730         with ARRAY_RANGE_REF.
1731         (idx_find_step): Likewise.
1732         (idx_record_use): Likewise.
1733         (strip_offset_1): Likewise.
1734         (idx_remove_ssa_names): Likewise.
1735
1736 2008-10-11  Uros Bizjak  <ubizjak@gmail.com>
1737             Andi Kleen  <ak@linux.intel.com>
1738
1739         * config/i386/cpuid.h (__cpuid_count): New defines.
1740         * config/i386/driver-i386.c (struct cache_desc): New structure.
1741         (describe_cache): Use struct cache_desc to pass cache descriptions.
1742         (detect_l2_cache): Ditto. Rename from decode_l2_cache.
1743         (detect_caches_amd): Use struct cache_desc to describe caches.
1744         (decode_caches_intel): Use struct cache_desc to pass cache
1745         descriptions.  Update descriptions to match latest (rev -032,
1746         December 2007) CPUID documentation.  Do not check valid bit here.
1747         Check for Xeon MP value 0x49 problems.
1748         (detect_caches_cpuid2): New function, split from detect_caches_intel.
1749         Check valid bit before calling decode_caches_intel.  Detect number
1750         of times to repeat CPUID instruction.
1751         (detect_caches_cpuid4): New function.
1752         (detect_caches_intel): Depending on max_level, call
1753         detect_caches_cpuid2 or detect_caches_cpuid4.  Call detect_l2_cache
1754         only when other methods fail to provide valid L2 cache description.
1755
1756 2008-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1757
1758         PR middle-end/37608
1759         * pa.md (call, call_value): Generate an rtx for register r4 and pass
1760         it to PIC call patterns.
1761         (call_symref_pic): Revise pattern to expose PIC register save.  Remove
1762         code generation and attributes from pattern.  Change peephole2 to
1763         split for noreturn case.  Revise split pattern for non noreturn case.
1764         (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
1765         call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
1766         * pa.c (attr_length_call): Simplify extraction of call rtx.  Add some
1767         asserts.
1768
1769 2008-10-11  David Edelsohn  <edelsohn@gnu.org>
1770
1771         * config/rs6000/rs6000.md (aux_truncdfsf2): Remove TARGET_SINGLE_FLOAT.
1772         (addsf3, subsf3, mulsf3 ! TARGET_POWERPC): Remove TARGET_SINGLE_FLOAT
1773         and fp_type.
1774         (divdf3): Reformat long line.
1775
1776 2008-10-11  Michael J. Eager  <eager@eagercon.com>
1777
1778         * config/rs6000/rs6000.c (rs6000_parse_fpu_option): Interpret
1779         -mfpu options.
1780         (rs6000_handle_option): Process -mfpu options.
1781         * config/rs6000/rs6000.h: (TARGET_XILINX_FPU): New.
1782         (enum fpu_type_t): New.
1783         * config/rs6000/rs6000.md (attr fp_type): New.  Include xfpu.md.
1784         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3, trunctfdf2): Set
1785         fp_type.
1786         (floatsisf2): Remove TARGET_SINGLE_FPU condition.
1787         (floatdidf2): Add TARGET_SINGLE_FPU condition.
1788         * config/rs6000/rs6000.opt (-mfpu): New.
1789         (-mxilinx-fpu): New.
1790         * config/rs6000/sysv4.h: (DRIVER_SELF_SPECS): New.
1791         * config/rs6000/xfpu.h: New. Define TARGET_XILINX_FPU.
1792         * config/rs6000/xfpu.md: New. Define Xilinx pipeline.
1793         * gcc/config.gcc: powerpc-xilinx-eabi target: New.
1794         * gcc/doc/invoke.texi (RS/6000 and PowerPC Options): Add -mfpu option.
1795
1796 2008-10-11  Jakub Jelinek  <jakub@redhat.com>
1797
1798         PR target/35760
1799         * config/rs6000/rs6000.c (rs6000_legitimize_address): Only create
1800         LO_SUM on Darwin if mode has just one unit.
1801
1802 2008-10-10  H.J. Lu  <hongjiu.lu@intel.com>
1803
1804         PR debug/37002
1805         * dwarf2out.c (mem_loc_descriptor): Use DRAP for vDRAP which
1806         has been optimized out.
1807
1808 2008-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
1809
1810         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Test PIC_ADDR_P
1811         instead of PIC_DIRECT_ADDR_P.
1812         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
1813         (IS_LITERAL_OR_SYMBOLIC_S16_P, IS_LITERAL_OR_SYMBOLIC_U16_P): Delete.
1814         (IS_NON_EXPLICIT_CONSTANT_P): Don't test PIC_OFFSET_P.
1815         (PIC_OFFSET_P): Rename to...
1816         (PCREL_SYMOFF_P): ...this.
1817         (PIC_DIRECT_ADDR_P): Delete.
1818         (MOVI_SHORI_BASE_OPERAND_P): Check PCREL_SYMOFF_P instead of
1819         PIC_OFFSET_P.
1820         (OUTPUT_ADDR_CONST_EXTRA): Don't require unspecs to have a
1821         single argument.  Handle UNSPEC_EXTRACT_S16, UNSPEC_EXTRACT_U16,
1822         UNSPEC_SYMOFF and UNSPEC_PCREL_SYMOFF.
1823         * config/sh/sh.c (print_operand): Remove CONST handling.
1824         (unspec_caller_rtx_p): Rewrite to use split_const and check
1825         the operands of UNSPEC bases.
1826         (fixup_mova): Replace (unspec [(minus A B)] UNSPEC_PIC)
1827         with (unspec [A B] UNSPEC_SYMOFF).
1828         (nonpic_symbol_mentioned_p): Check for UNSPEC_SYMOFF and
1829         UNSPEC_PCREL_SYMOFF.
1830         (sh_secondary_reload): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1831         * config/sh/sh.md (UNSPEC_EXTRACT_S16): New unspec.
1832         (UNSPEC_EXTRACT_U16): Likewise.
1833         (UNSPEC_SYMOFF): Likewise.
1834         (UNSPEC_PCREL_SYMOFF): Likewise.
1835         (movsi_const): Use UNSPEC_EXTRACT_*16s to extract 16-bit portions
1836         of constants.
1837         (movsi_const_16bit): Likewise.
1838         (movdi_const, movdi_const_32bit, movdi_const_16bit): Likewise.
1839         (GOTaddr2picreg): Replace (unspec [(minus A (minus B pc))] UNSPEC_PIC)
1840         with (unspec [A B] UNSPEC_PCREL_SYMOFF).
1841         (sym_label2reg): Replace (minus (const (unspec [A] UNSPEC_PIC)) B)
1842         with (unspec [A B] UNSPEC_SYMOFF).
1843         (symPLT_label2reg): Replace (minus A (minus B pc)) with
1844          (unspec [A B] PCREL_UNSPEC_SYMOFF).
1845         * config/sh/constraints.md (Css): Check for an UNSPEC_EXTRACT_S16.
1846         (Csu): Likewise UNSPEC_EXTRACT_U16.
1847         (Csy): Test PIC_ADDR_P instead of PIC_DIRECT_ADDR_P.
1848         (Cpg): Update after changes to IS_NON_EXPLICIT_CONSTANT_P.
1849
1850 2008-10-10  Stepan Kasal  <skasal@redhat.com>
1851
1852         * gcc/doc/invoke.texi (Optimize Options): Fix typo in examples
1853         for loop strip mining and loop blocking.
1854
1855 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1856
1857         * fortran/trans-types.c (gfc_get_nodesc_array_type): Don't
1858         vary types depending on debug info.
1859
1860 2008-10-10  Alexandre Oliva  <aoliva@redhat.com>
1861
1862         * c-gimplify.c (c_genericize): Don't refer to DECL_ASSEMBLER_NAME
1863         before ensuring it's already computed.
1864
1865 2008-10-09  Jakub Jelinek  <jakub@redhat.com>
1866
1867         * rtl.h (locator_eq): New decl.
1868         * cfglayout.c (locator_scope): New function.
1869         (insn_scope): Use it.
1870         (locator_eq): New function.
1871         (fixup_reorder_chain): Search for last insn in src bb
1872         that has locator set or first insn in dest bb.  Use
1873         locator_eq instead of == to compare locators.
1874         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1875         * cfgcleanup.c (try_forward_edges): Use locator_eq instead of
1876         == to compare locators.
1877
1878         * tree-ssa-live.c (remove_unused_locals): Mark all edge's goto_block
1879         as used.
1880         * gimple-low.c (lower_function_body, lower_gimple_return,
1881         lower_builtin_setjmp): Set gimple_block on the newly created stmts.
1882         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Only set
1883         goto_block on edges if goto_locus is known.
1884
1885         PR middle-end/37774
1886         * tree.h (get_object_alignment): Declare.
1887         * emit-rtl.c (set_mem_attributes_minus_bitpos): Call
1888         get_object_alignment if needed.
1889         * builtins.c (get_pointer_alignment): Move ADDR_EXPR operand
1890         handling to ...
1891         (get_object_alignment): ... here.  New function.  Try harder to
1892         determine alignment from get_inner_reference returned offset.
1893
1894 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1895
1896         * graphite.c (gloog): Don't call find_unreachable_blocks
1897         before delte_unreachable_blocks.
1898
1899         * cfgexpand.c (expand_gimple_cond): Convert also goto_block and
1900         goto_locus of true_edge into RTL locator.
1901
1902 2008-10-08  Uros Bizjak  <ubizjak@gmail.com>
1903
1904         * config/i386/i386.md (*jcc_btdi_rex64): Clobber FLAGS_REG.
1905         (*jcc_btdi_mask_rex64): Ditto.
1906         (*jcc_btsi): Ditto.
1907         (*jcc_btsi_mask): Ditto.
1908         (*jcc_btsi_1): Ditto.
1909         (*jcc_btsi_mask_1): Ditto.
1910
1911 2008-10-08  Paul Brook  <paul@codesourcery.com>
1912
1913         * config/arm/bpabi.h (ARM_FUNCTION_PROFILER): Define new EABI
1914         compatible profiler (__gnu_mcount_nc).
1915         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1916
1917 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1918
1919         * config/i386/i386.c (initial_ix86_tune_features): Add
1920         X86_TUNE_USE_VECTOR_FP_CONVERTS.
1921         * config/i386/i386.h (ix86_tune_indices): Likewise.
1922         (TARGET_USE_VECTOR_FP_CONVERTS): New.
1923
1924         * config/i386/i386.md: Check TARGET_USE_VECTOR_FP_CONVERTS
1925         instead of (TARGET_USE_VECTOR_CONVERTS || TARGET_GENERIC)
1926         for FP to FP splitters.
1927
1928 2008-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1929
1930         * config/i386/i386.md: Add missing gen_sse2_cvtdq2p to convert
1931         splitter.
1932
1933 2008-10-08  Jakub Jelinek  <jakub@redhat.com>
1934
1935         PR target/36635
1936         PR target/37290
1937         PR rtl-optimization/37341
1938         * cse.c (cse_cc_succs): Add ORIG_BB argument, don't follow edges
1939         to ORIG_BB, pass through ORIG_BB recursively.
1940         (cse_condition_code_reg): Adjust caller.
1941
1942 2008-10-08  Kai Tietz  <kai.tietz@onevision.com>
1943
1944         * sdbout.c (sdbout_one_type): Treat the value type
1945         CONST_DECL for enumerals.
1946
1947 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1948
1949         * config/i386/i386.md: Remove trailing white spaces.
1950
1951 2008-10-07  Kenneth Zadeck <zadeck@naturalbridge.com>
1952
1953         PR rtl-optimization/37448
1954         * alloc-pool.c (struct alloc_pool_descriptor) [elt_size]: New field.
1955         (stuct alloc_pool_descriptor) [created, allocated, current, peak]:
1956         Make unsigned long.
1957         (struct output_info) [count]: Renamed total_created and made
1958         unsigned long.
1959         (struct output_info) [size]: Renamed total_allocated and made
1960         unsigned long.
1961         (create_alloc_pool, empty_alloc_pool, pool_alloc, pool_free):
1962         Properly keep track of desc->size.
1963         (print_statistics, dump_alloc_pool_statistics): Enhance the
1964         printing of statistics to print the number of elements and to use
1965         unsigned longs.
1966         
1967 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
1968
1969         PR middle-end/37576
1970         * opts.h (CL_SAVE): Move up to flags range.
1971         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET,
1972         CL_COMMON): Renumber.
1973         (CL_MIN_OPTION_CLASS): Set to CL_PARAMS.
1974         * opts.c (common_handle_option): Revert last change.
1975
1976 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
1977
1978         * config/i386/i386-protos.h (ix86_schedule): New.
1979
1980         * config/i386/i386.c (ix86_schedule): New.
1981         (override_options): Add schedule to processor_alias_table.  Set
1982         ix86_schedule from the schedule field in processor_alias_table.
1983         (ix86_function_specific_save): Save ix86_schedule.
1984         (ix86_function_specific_restore): Restore ix86_schedule.
1985
1986         * config/i386/i386.md (cpu): Map to ix86_schedule instead of
1987         ix86_tune.  Add none and remove i386, i486, pentium4, nocona
1988         and generic32.
1989
1990         * config/i386/i386.opt: Add schedule.
1991
1992         * config/i386/ppro.md: Remove generic32.
1993
1994 2008-10-07  Simon Martin  <simartin@users.sourceforge.net>
1995
1996         PR c/35437
1997         * expr.c (count_type_elements): Handle ERROR_MARK.
1998
1999 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
2000
2001         PR debug/29609
2002         PR debug/36690
2003         PR debug/37616
2004         * basic-block.h (struct edge_def): Add goto_block field.
2005         * cfglayout.c (fixup_reorder_chain): Ensure that there is at least
2006         one insn with locus corresponding to edge's goto_locus if !optimize.
2007         * profile.c (branch_prob): Copy edge's goto_block.
2008         * cfgrtl.c (force_nonfallthru_and_redirect): Use goto_locus for
2009         emitted jumps.
2010         (cfg_layout_merge_blocks): Emit a nop with edge's goto_locus
2011         locator in between the merged basic blocks if !optimize and needed.
2012         * cfgexpand.c (expand_gimple_cond): Convert goto_block and
2013         goto_locus into RTL locator.  For unconditional jump use that
2014         locator for the jump insn.
2015         (expand_gimple_cond): Convert goto_block and goto_locus into
2016         RTL locator for all remaining edges.  For unconditional jump
2017         use that locator for the jump insn.
2018         * cfgcleanup.c (try_forward_edges): Avoid the optimization if
2019         there is more than one edge or insn locator along the forwarding
2020         edges and !optimize.  If there is just one, set e->goto_locus.
2021         * tree-cfg.c (make_cond_expr_edges, make_goto_expr_edges): Set also
2022         edge's goto_block.
2023         (move_block_to_fn): Adjust edge's goto_block.
2024
2025 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2026
2027         PR middle-end/37731
2028         * expmed.c (expand_mult): Properly check DImode constant in
2029         CONST_DOUBLE.
2030
2031 2008-10-07  Jakub Jelinek  <jakub@redhat.com>
2032
2033         PR debug/37738
2034         * dwarf2out.c (common_block_die_table): New variable.
2035         (common_block_die_table_hash, common_block_die_table_eq): New
2036         functions.
2037         (gen_variable_die): Look up a DW_TAG_common_block die for a particular
2038         COMMON block in the current scope rather than globally.  Optimize
2039         DW_OP_addr SYMBOL_REF DW_OP_plus_uconst off into
2040         DW_OP_addr SYMBOL_REF+off.
2041
2042 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
2043
2044         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <VIEW_CONVERT_EXPR>:
2045         Return true for non-addressable GIMPLE operands.
2046
2047 2008-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2048
2049         PR target/24765
2050         * config/i386/i386.c (initial_ix86_tune_features): Remove
2051         X86_TUNE_USE_BIT_TEST.
2052         * config/i386/i386.h (ix86_tune_indices): Likewise.
2053         (TARGET_USE_BIT_TEST): Removed.
2054
2055 2008-10-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2056
2057         * config.gcc (arm*-*-*): Add aapcs-linux to supported ABIs.
2058
2059 2008-10-06  Adam Nemet  <anemet@caviumnetworks.com>
2060
2061         * config/mips/mips.md (mulsi3_mul3, muldi3_mul3): Merge these ...
2062         (mul<mode>3_mul3): ... into this new template.
2063
2064 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2065
2066         * gimplify.c (gimplify_arg): Add location argument.  Use it.
2067         (gimplify_call_expr): Pass location to gimplify_arg.
2068         (gimplify_modify_expr_to_memcpy): Same.
2069         (gimplify_modify_expr_to_memset): Same.
2070
2071 2008-10-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2072
2073         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2074         Update calls to build_unary_op and build_indirect_ref for location
2075         changes.
2076
2077 2008-10-06  Aldy Hernandez  <aldyh@redhat.com>
2078
2079         build_modify_expr.
2080         * c-decl.c (finish_decl): Pass input_location to build_unary_op.
2081         * c-typeck.c (array_to_pointer_conversion): Pass location to
2082         build_unary_op.
2083         (function_to_pointer_conversion): Use error_at and warning_at.
2084         (build_indirect_ref): Same.
2085         (build_array_ref): Pass location to build_binary_op.
2086         (parser_build_unary_op): Do not set location after calling
2087         build_unary_op.
2088         (build_unary_op): Add location argument.  Use it throughout.  Set
2089         EXPR_LOCATION before returning new tree.
2090         (build_modify_expr): Same.
2091         (build_binary_op): Use location throughout.  Set EXPR_LOCATION before
2092         returning node.
2093         * c-omp.c (c_finish_omp_atomic): Pass location to build_unary_op,
2094         build_indirect_ref, build_modify_expr.
2095         (c_finish_omp_for): Same.  Use error_at instead of error.
2096         * c-common.c (c_common_truthvalue_conversion): Pass location to
2097         build_unary_op.
2098         (warn_for_div_by_zero): Add location argument.
2099         * c-common.h: Add argument to build_modify_expr, build_indirect_ref,
2100         build_unary_op, warn_for_div_by_zero.
2101         * c-parser.c (c_parser_typeof_specifier): Use
2102         protected_set_expr_location.
2103         (c_parser_statement_after_labels): Same.
2104         (c_parser_condition): Same.
2105         (c_parser_expr_no_commas): Pass correct location to build_modify_expr.
2106         (c_parser_conditional_expression): Use protected_set_expr_location.
2107         (c_parser_unary_expression): Pass location to build_indirect_ref.
2108         (c_parser_postfix_expression_after_primary): Pass location to
2109         build_indirect_ref, build_unary_op.
2110         (c_parser_omp_for_loop): Set the increment expression's EXPR_LOCATION.
2111
2112 2008-10-06  Joshua Kinard  <kumba@gentoo.org>
2113
2114         * doc/invoke.texi: List r1x000 family under the -march MIPS option.
2115         * config/mips/mips.h (PROCESSOR_R10000): New processor_type.
2116         * config/mips/mips.c (mips_cpu_info_table): Add r10000, r12000,
2117         r14000 and r16000.
2118         (mips_rtx_cost_data): Add a PROCESSOR_R10000 entry.
2119         (mips_issue_rate): Handle PROCESSOR_R10000.
2120         * config/mips/mips.md (cpu): Add r10000.
2121         Include r10000.md.
2122         * config/mips/10000.md: New file.
2123
2124 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2125
2126         * config/rs6000/rs6000-protos.h (rs6000_find_base_term): Declare.
2127         * config/rs6000/rs6000.h (FIND_BASE_TERM): New macro.
2128         * config/rs6000/rs6000.c (rs6000_find_base_term): New function.
2129
2130 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2131
2132         * config/darwin-protos.h (machopic_function_base_name): Delete.
2133         (machopic_function_base_sym): Likewise.
2134         (machopic_gen_offset): Declare.
2135         * config/darwin.h (MACHOPIC_FUNCTION_BASE_NAME): New macro.
2136         (ASM_OUTPUT_LABELREF): Use it instead of a hard-coded string constant.
2137         * config/darwin.c (machopic_function_base_name): Delete.
2138         (machopic_function_base_sym): Likewise.
2139         (gen_pic_offset): Rename to...
2140         (machopic_gen_offset): ...this and remove the pic_base argument.
2141         Instead use MACHO_DYNAMIC_NO_PIC_P to decide whether a PIC offset
2142         is needed.  Create an UNSPEC_MACHOPIC_OFFSET if so, and set
2143         crtl->uses_pic_offset_table.
2144         (machopic_indirect_data_reference): Use new machopic_gen_offset
2145         interface.
2146         (machopic_legitimize_pic_address): Likewise.
2147         (machopic_operand_p): Check for UNSPEC_MACHOPIC_OFFSET.
2148
2149         * config/i386/darwin.h (GOT_SYMBOL_NAME): Use
2150         MACHOPIC_FUNCTION_BASE_NAME instead of machopic_function_base_name.
2151         * config/i386/i386.c (output_set_got): Likewise.
2152         (darwin_local_data_pic): Check for an UNSPEC_MACHOPIC_OFFSET
2153         instead of a MINUS.
2154         (legitimate_pic_operand_p): Handle UNSPEC_MACHOPIC_OFFSET.
2155         (legitimate_address_p): Likewise.
2156         (output_pic_addr_const): Likewise.
2157         (output_addr_const_extra): Likewise.
2158         (ix86_delegitimize_address): Expect darwin_local_data_pic to
2159         match an UNSPEC rather than a MINUS.
2160         * config/i386/i386.md (UNSPEC_MACHOPIC_OFFSET): Define.
2161         (builtin_setjmp_receiver): Use machopic_gen_offset.
2162         * config/i386/predicates.md (pic_symbolic_operand): Handle
2163         UNSPEC_MACHOPIC_OFFSET.
2164
2165         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2166         Use machopic_gen_offset and machopic_operand_p.
2167         (rs6000_output_addr_const_extra): Handle UNSPEC_MACHOPIC_OFFSET.
2168         (rs6000_emit_prologue): Use MACHOPIC_FUNCTION_BASE_NAME.
2169         * config/rs6000/rs6000.md (UNSPEC_MACHOPIC_OFFSET): Define.
2170         (builtin_setjmp_receiver): Use MACHOPIC_FUNCTION_BASE_NAME.
2171         Set crtl->uses_pic_offset_table.
2172
2173 2008-10-06  Richard Sandiford  <rdsandiford@googlemail.com>
2174
2175         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
2176         Declare.
2177         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): New macro.
2178         * config/rs6000/rs6000.md (UNSPEC_TOCREL): New constant.
2179         * config/rs6000/rs6000.c (constant_pool_expr_1): Delete.
2180         (constant_pool_expr_p): Use split_const and check the base.
2181         (toc_relative_expr_p): Likewise, checking for an UNSPEC_TOCREL
2182         instead of a MINUS.
2183         (legitimate_constant_pool_address_p): Check toc_relative_p
2184         instead of constant_pool_expr_p.
2185         (print_operand_address): Always use output_addr_const for
2186         constant pool addresses.
2187         (rs6000_output_addr_const_extra): New function.
2188         (create_TOC_reference): Create an UNSPEC_TOCREL instead of a MINUS.
2189
2190 2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>
2191
2192         PR middle-end/37535
2193
2194         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2195         (mark_ref_live, mark_ref_dead): Use them.
2196         (def_conflicts_with_inputs_p): Remove.
2197         (mark_early_clobbers): New function.
2198         (process_bb_node_lives): Call preprocess_constraints and
2199         mark_early_clobbers.
2200
2201         * doc/rtx.texi (clobber): Change how RA deals with clobbers.
2202
2203 2008-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2204
2205         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Add thread cleanup
2206         lib with -mthread switch.
2207
2208 2008-10-05  Dodji Seketeli  <dodji@redhat.com>
2209
2210         PR c++/37410
2211         * dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
2212         function in two, making it call a new and reusable
2213         dwarf2out_imported_module_or_decl() that takes the containing
2214         BLOCK of the declaration in argument.
2215         (dwarf2out_imported_module_or_decl_real): New function.
2216         (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
2217         IMPORTED_DECL in account.
2218         * tree.def: Added IMPORTED_DECL node type.
2219         * tree.h: Added accessors for IMPORTED_DECL nodes.
2220         * tree.c (init_ttree): Initialise IMPORTED_DECL node type.
2221
2222 2008-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2223
2224         * doc/gimple.texi: Fix some typos, wrap some long lines,
2225         fix some broken wraps with continuations.
2226         * tree-ssa-reassoc.c: Fix comment typos.
2227
2228 2000-10-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2229
2230         PR target/37603
2231         * pa.c (legitimize_pic_address): Force function labels to memory in
2232         word mode.
2233
2234 2008-10-04  Anton Blanchard  <anton@samba.org>
2235
2236         * config/rs6000/rs6000.c (rs6000_emit_sync): Use gen_lwsync().
2237         (rs6000_split_atomic_op): Same.
2238         (rs6000_split_compare_and_swap): Same.
2239         (rs6000_split_compare_and_swapqhi): Same.
2240
2241 2008-10-04  Richard Guenther  <rguenther@suse.de>
2242
2243         * tree-ssa-sccvn.c (vn_reference_op_eq): Use types_compatible_p
2244         instead of pointer equality.
2245         (vn_nary_op_eq): Likewise.
2246
2247 2008-10-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2248
2249         * config/rs6000/rs6000.md (fseldfsf4): Add TARGET_SINGLE_FLOAT 
2250         condition.
2251         (fselsfdf4): Make condition on "TARGET_HARD_FLOAT && TARGET_FPRS &&
2252         TARGET_DOUBLE_FLOAT && TARGET_SINGLE_FLOAT".
2253
2254 2008-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
2255
2256         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2257         Revert previous change.
2258
2259 2008-10-03  Tom Tromey  <tromey@redhat.com>
2260
2261         * stringpool.c (ggc_alloc_string): Terminate string.
2262
2263 2008-10-03  Jakub Jelinek  <jakub@redhat.com>
2264
2265         * gimplify.c (gimplify_function_tree): For -finstrument-functions
2266         use gimple_bind_{,set_}block instead of gimple_{,set_}block.
2267         * gimple.h (gimple_bind_set_block): Allow second argument to be NULL.
2268
2269         PR debug/37726
2270         * gimplify.c (declare_vars): Use gimple_bind_block instead of
2271         gimple_block.
2272
2273 2008-10-03  Pascal Obry  <obry@adacore.com>
2274
2275         * gcov.c (create_file_names): Properly handle UNIX and DOS
2276         directory separators.
2277         (make_gcov_file_name): Likewise + convert the ':' DOS drive
2278         separator to '~' to ensure clean filenames on Windows.
2279
2280 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
2281
2282         * config/i386/winnt.c (i386_pe_strip_name_encoding_full):
2283         Add a null terminator to the stripped name.
2284
2285 2008-10-02  David Edelsohn  <edelsohn@gnu.org>
2286
2287         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Revert
2288         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2289         (function_arg_advance): Condition on TARGET_DOUBLE_FLOAT,
2290         TARGET_SINGLE_FLOAT.  Revert SCALAR_FLOAT_MODE_P condition.
2291         (function_arg): Condition on TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2292         (rs6000_function_value): Revert TARGET_DOUBLE_FLOAT,
2293         TARGET_SINGLE_FLOAT.
2294
2295 2008-10-02  Daniel Jacobowitz  <dan@codesourcery.com>
2296
2297         * builtins.c (fold_builtin_pow): Check for 0 ** NEGATIVE.
2298
2299 2008-10-02  Richard Guenther  <rguenther@suse.de>
2300
2301         PR middle-end/37713
2302         * tree-ssa.c (useless_type_conversion_p_1): For COMPLEX_TYPE
2303         and VECTOR_TYPE recurse with useless_type_conversion_p which
2304         properly handles void pointer conversion.
2305
2306 2008-10-02  Danny Smith  <dannysmith@users.sourceforge.net>  
2307
2308         PR target/37528
2309         * config/i386/mingw32.h (LIBGCC_SPEC) : Replace with ..
2310         (REAL_LIBGCC_SPEC): New.  Always include -lgcc.
2311
2312 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2313
2314         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2315         Handle ALTIVEC_BUILTIN_VEC_SPLATS, ALTIVEC_BUILTIN_VEC_PROMOTE,
2316         ALTIVEC_BUILTIN_VEC_EXTRACT, and ALTIVEC_BUILTIN_VEC_INSERT specially,
2317         they translate to non builtins.
2318         * config/rs6000/rs6000.c (altivec_init_builtins): Add new variable
2319         opaque_ftype_opaque.  Define builtins __builtin_vec_splats,
2320         __builtin_vec_promote, __builtin_vec_extract, and
2321         __builtin_vec_insert.
2322         * config/rs6000/rs6000.h (enum rs6000_builtins): Add
2323         ALTIVEC_BUILTIN_VEC_EXTRACT, ALTIVEC_BUILTIN_VEC_PROMOTE,
2324         ALTIVEC_BUILTIN_VEC_INSERT, and ALTIVEC_BUILTIN_VEC_SPLATS.
2325         * config/rs6000/altivec.h (vec_extract): Define
2326         (vec_insert): Define.
2327         (vec_splats): Define.
2328         (vec_promote): Define.
2329
2330 2008-10-01  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2331             Yukishige Shibata  <shibata@rd.scei.sony.co.jp>
2332             Trevor Smigiel  <Trevor_Smigiel@playstation.sony.com>
2333
2334         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add Cell
2335         Altivec intrinsics.
2336         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Delete
2337         prototype.  Add new parameter, blk.
2338         Use BLKmode for the MEM if blk is true.
2339         (altivec_expand_builtin): Handle ALTIVEC_BUILTIN_STVLX,
2340         ALTIVEC_BUILTIN_STVLXL, ALTIVEC_BUILTIN_STVRX, and
2341         ALTIVEC_BUILTIN_STVRXL.
2342         Update usage of altivec_expand_lv_builtin.
2343         Handle ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL,
2344         ALTIVEC_BUILTIN_LVRX, and ALTIVEC_BUILTIN_LVRXL.
2345         (altivec_init_builtins): If compiling for the Cell, also define the
2346         cell VMX builtins.
2347         * config/rs6000/rs6000.h (rs6000_builtins): Define
2348         ALTIVEC_BUILTIN_LVLX, ALTIVEC_BUILTIN_LVLXL, ALTIVEC_BUILTIN_LVRX,
2349         ALTIVEC_BUILTIN_LVRXL, ALTIVEC_BUILTIN_STVLX, ALTIVEC_BUILTIN_STVLXL,
2350         ALTIVEC_BUILTIN_STVRX, ALTIVEC_BUILTIN_STVRXL,
2351         ALTIVEC_BUILTIN_VEC_LVLX, ALTIVEC_BUILTIN_VEC_LVLXL,
2352         ALTIVEC_BUILTIN_VEC_LVRX, ALTIVEC_BUILTIN_VEC_LVRXL,
2353         ALTIVEC_BUILTIN_VEC_STVLX, ALTIVEC_BUILTIN_VEC_STVLXL,
2354         ALTIVEC_BUILTIN_VEC_STVRX, and ALTIVEC_BUILTIN_VEC_STVRXL.
2355         * config/rs6000/altivec.md (define_constants): Define UNSPEC_LVLX,
2356         UNSPEC_LVLXL, UNSPEC_LVRX, UNSPEC_LVRXL, UNSPEC_STVLX, UNSPEC_STVLXL,
2357         UNSPEC_STVRX, and UNSPEC_STVRXL.
2358         (altivec_lvlx): New pattern.
2359         (altivec_lvlxl): New pattern.
2360         (altivec_lvrx): New pattern.
2361         (altivec_lvrxl): New pattern.
2362         (altivec_stvlx): New pattern.
2363         (altivec_stvlxl): New pattern.
2364         (altivec_stvrx): New pattern.
2365         (altivec_stvrxl): New pattern.
2366         * config/rs6000/altivec.h (vec_lvlx): Define if PPU is defined.
2367         (vec_lvlxl): Likewise.
2368         (vec_lvrx): Define if PPU is defined.
2369         (vec_lvrxl): Likewise.
2370         (vec_stvlx): Define if PPU is defined.
2371         (vec_stvlxl): Likewise.
2372         (vec_stvrx): Define if PPU is defined.
2373         (vec_stvrxl): Likewise.
2374
2375 2008-10-01  Geert Bosch  <bosch@adacore.com>
2376
2377         * tree.c (contains_placeholder_p): Return 0 for a SAVE_EXPR.
2378
2379 2008-10-01  Richard Guenther  <rguenther@suse.de>
2380
2381         PR tree-optimization/37617
2382         * tree-ssa-pre.c (create_expression_by_pieces): During FRE
2383         do not add to the NEW_SETS.
2384
2385 2008-10-01  Richard Guenther  <rguenther@suse.de>
2386
2387         PR middle-end/37285
2388         * tree-vrp.c (execute_vrp): If we optimized away the default
2389         case make sure to promote the label that got in place of it
2390         to a default case label.
2391
2392 2008-10-01  Richard Henderson  <rth@redhat.com>
2393
2394         PR tree-opt/35737
2395         * tree-complex.c (set_component_ssa_name): Don't optimize
2396         is_gimple_min_invariant values with ssa_names in abnormal phis.
2397
2398 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2399
2400         PR tree-optimization/37662
2401         * tree-ssa-ccp.c (fold_gimple_assign): Invert the operands of a
2402         commutative binary operation if they are in the wrong order and
2403         fold_build2 produces non-GIMPLE.
2404
2405 2008-09-30  Jakub Jelinek  <jakub@redhat.com>
2406
2407         PR tree-optimization/37662
2408         PR tree-optimization/37663
2409         * tree-vrp.c (simplify_truth_ops_using_ranges): Don't call
2410         get_value_range with non-SSA_NAME.  Don't assert operands have been
2411         folded, instead just bail out.
2412
2413 2008-09-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2414
2415         * config/rs6000/rs6000.md (fnmadds combiner): Revert typo.
2416
2417 2008-09-30  Richard Guenther  <rguenther@suse.de>
2418
2419         PR middle-end/37491
2420         * tree-vect-transform.c (vect_create_data_ref_ptr): Properly
2421         build restrict-qualified pointers.
2422         (vectorizable_store): Move alias check later.
2423         (vectorizable_load): Likewise.
2424
2425 2008-09-30  Paolo Bonzini  <bonzini@gnu.org>
2426
2427         * c-common.c (empty_if_body_warning): Remove.
2428         * c-common.h (empty_if_body_warning): Remove.
2429         * c-parser.c (c_parser_if_body, c_parser_else_body): Implement
2430         here the -Wempty-body warning for `if' and `else' statements.
2431         * c-typeck.c (c_finish_if_stmt): Do not call empty_body_warning.
2432
2433 2008-09-29  H.J. Lu  <hongjiu.lu@intel.com>
2434
2435         * config/i386/i386.opt: Add msse2avx.
2436
2437         * config/i386/linux.h (ASM_SPEC): New.  Support -msse2avx.
2438         * config/i386/linux64.h (ASM_SPEC): Likewise.
2439
2440         * doc/invoke.texi: Document -msse2avx.
2441
2442 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2443
2444         * dwarf2out.c (constant_size): Use HOST_WIDE_INT in parameter type.
2445
2446 2008-09-29  Joseph Myers  <joseph@codesourcery.com>
2447
2448         * ifcvt.c (noce_emit_store_flag): If using condition from original
2449         jump, reverse it if if_info->cond was reversed.
2450
2451 2008-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2452
2453         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
2454         non-constant memory if it cannot be forced to constant memory.
2455         Overhaul surrounding code and factor out common condition.
2456
2457 2008-09-29  Jeff Law <law@redhat.com>
2458
2459         * reload1.c (alter_reg): Add missing curly braces.
2460
2461 2008-09-29  Michael J. Eager  <eager@eagercon.com>
2462
2463         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2464         are easy.
2465         * config/rs6000/rs6000.c (rs6000_override_options): Move
2466         rs6000_init_hard_regno_mode_ok after all options changed.
2467         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2468         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2469         -msimple-fpu flags.  Add warning messages if single FP not configured.
2470         (rs6000_file_start): Output gnu_attribute for single-float.
2471         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2472         (rs6000_legitimize_address): Likewise.
2473         (rs6000_legitimize_reload_address): Likewise.
2474         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2475         TARGET_SINGLE_FLOAT.
2476         (function_arg_advance): Likewise (partial conversion).
2477         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2478         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2479         TARGET_SINGLE_FLOAT.
2480         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2481         (rs6000_emit_prologue): Likewise.
2482         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2483         TARGET_SINGLE_FLOAT.
2484         (rs6000_libcall_value): Likewise.
2485         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2486         (TARGET_DOUBLE_FLOAT): New default to 1
2487         (TARGET_SIMPLE_FPU): New default to 0
2488         (TARGET_SINGLE_FPU): New default to 0
2489         (TARGET_SINGLE_FLOAT_MODE): New.
2490         (TARGET_DOUBLE_FLOAT_MODE): New.
2491         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2492         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2493         UNITS_PER_FP_WORD
2494         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2495         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2496         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2497         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2498         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2499         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2500         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2501         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2502         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2503         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2504         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2505         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2506         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2507         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2508         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2509         cmptf_internal1, *cmptf_internal2): Condition on
2510         TARGET_DOUBLE_FLOAT.
2511         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2512         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2513         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2514         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2515         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2516         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2517         TARGET_SINGLE_FLOAT.
2518         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2519         * config/rs6000/rs6000.opt (-msingle-float): New.
2520         (-mdouble-float): New.
2521         (-msimple-fpu): New.
2522         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2523         -msingle-float, -mdouble-float, -msimple-fpu options.
2524         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2525         _SOFT_DOUBLE for -msingle-float.
2526         * config.gcc: New config for target=powerpc-xilinx-eabi.
2527
2528 2008-09-29  Tobias Grosser  <grosser@fim.uni-passau.de>
2529
2530         * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always
2531         have exit and entry.
2532         (new_scop): Take entry and exit edge to define new SCoP.
2533         (sd_region_p): New structure used during SCoP detection.
2534         (move_scops): Delete.
2535         (move_sd_regions): New.
2536         (scopdet_info): Change the definition from edges back to basic_blocks.
2537         (scopdet_edge_info):  Work on basic_blocks and rename to
2538         scopdet_basic_block_info.
2539         (split_difficult_bb): At the moment removed. We should later
2540         add it at another place.
2541         (build_scops_1): Work on basic_blocks.
2542         (bb_in_sd_region): New.
2543         (find_single_entry_edge): New.
2544         (find_single_exit_edge): New.
2545         (create_single_entry_edge): New.
2546         (sd_region_without_exit): New.
2547         (create_single_exit_edge): New.
2548         (unmark_exit_edges): New.
2549         (mark_exit_edges): New.
2550         (create_sese_edges): New.
2551         (build_graphite_scops): New.
2552         (build_scops): Make SCoPs SESE.
2553         (limit_scops): Use the new functions.
2554
2555 2008-09-29  Hans-Peter Nilsson  <hp@axis.com>
2556
2557         * config/cris/cris.h (IRA_COVER_CLASSES): Define.
2558
2559 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2560
2561         PR target/37640
2562         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Force
2563         address to a register before taking the lower part.
2564
2565 2008-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2566
2567         * config/sh/sh.h (OVERRIDE_OPTIONS): Unset flag_dwarf2_cfi_asm
2568         for SHmedia.
2569
2570 2008-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2571             Kaushal Kantawala  <kaushal_kantawala@playstation.sony.com>
2572
2573         PR tree-opt/36891
2574         * tree-ssa-loop-im.c (rewrite_reciprocal): Set DECL_GIMPLE_REG_P on
2575         the newly created variable.
2576         Create a VECTOR_CST of all 1s for vector types.
2577
2578 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2579
2580         PR middle-end/36575
2581         * fold-const.c (div_and_round_double) <ROUND_DIV_EXPR>: Fix typo.
2582
2583 2008-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2584
2585         * expmed.c (store_fixed_bit_field): Always use convert_to_mode in
2586         order to convert between modes.
2587         (extract_bit_field_1): Test TRULY_NOOP_TRUNCATION on the right mode.
2588
2589 2008-09-27  Kaz Kojima  <kkojima@gcc.gnu.org>
2590
2591         * config/sh/sh.c (sh_gimplify_va_arg_expr): Use VIEW_CONVERT_EXPR
2592         if needed.
2593
2594 2008-09-26  Vladimir Makarov  <vmakarov@redhat.com>
2595
2596         Revert:
2597         2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2598         * ira-lives.c:...
2599         * doc/rtl.texi:...
2600
2601 2008-09-26  Adam Nemet  <anemet@caviumnetworks.com>
2602
2603         * config/mips/mips.h (ISA_HAS_DMUL3, ISA_HAS_BADDU, ISA_HAS_BBIT,
2604         ISA_HAS_CINS, ISA_HAS_EXTS, ISA_HAS_SEQ_SNE, ISA_HAS_POP): Change
2605         them to yield false with MIPS16.
2606
2607 2008-09-26  Jakub Jelinek  <jakub@redhat.com>
2608
2609         PR middle-end/37275
2610         * dwarf2out.c (tls_mem_loc_descriptor): New function.
2611         (mem_loc_descriptor): Use it for MEM.  For PLUS fail if second
2612         mem_loc_descriptor failed.  Accept UNSPEC.
2613         (loc_descriptor): Use tls_mem_loc_descriptor for MEM.  For PARALLEL
2614         fail if one of the loc_descriptor calls for pieces failed.
2615         (loc_descriptor_from_tree_1): Handle even DECL_EXTERNAL __thread vars,
2616         as long as they bind locally.  For COMPONENT_REF, ARRAY_REF etc. fail
2617         if loc_descriptor_from_tree_1 on offset failed.
2618
2619         PR middle-end/37576
2620         * opts.c (common_handle_option): Don't call print_specific_help with
2621         CL_SAVE as first argument.
2622
2623 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2624             Steve Ellcey  <sje@cup.hp.com>
2625
2626         * configure: Regenerate for new libtool.
2627         * aclocal.m4: Ditto.
2628
2629 2008-09-26  Pat Haugen  <pthaugen@us.ibm.com>
2630
2631         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Use correct
2632         alias set on MEM when saving stack pointer.
2633         * config/rs6000/rs6000.md (allocate_stack): Likewise
2634
2635 2008-09-26  Dorit Nuzman  <dorit@il.ibm.com>
2636
2637         PR tree-optimization/37574
2638         * tree-vectorizer.c (vect_is_simple_use): Fix indentation.
2639         * tree-vect-transform.c (vect_get_constant_vectors): Use vectype
2640         instead of vector_type for constants. Take computation out of loop.
2641         (vect_get_vec_def_for_operand): Use only vectype for constant case,
2642         and use only vector_type for invariant case.
2643         (get_initial_def_for_reduction): Use vectype instead of vector_type.
2644
2645 2008-09-25  Jakub Jelinek  <jakub@redhat.com>
2646
2647         PR c/37645
2648         * c-common.c (handle_weakref_attribute): Ignore the attribute unless
2649         the decl is a VAR_DECL or FUNCTION_DECL.
2650
2651 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2652
2653         PR middle-end/37535
2654         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
2655         (mark_ref_live, mark_ref_dead): Use them.
2656         (def_conflicts_with_inputs_p): Remove.
2657         (mark_early_clobbers): New function.
2658         (process_bb_node_lives): Call preprocess_constraints and
2659         mark_early_clobbers.
2660
2661         * doc/rtl.texi (clobber): Change how RA deals with clobbers.
2662
2663 2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>
2664
2665         PR middle-end/37448
2666         * ira-int.h (IRA_ALLOCNO_TEMP): Rename to ALLOCNO_TEMP.
2667         (ira_compress_allocno_live_ranges): New prototype.
2668
2669         * ira-color.c: Rename IRA_ALLOCNO_TEMP to ALLOCNO_TEMP.
2670         (coalesced_allocnos_living_at_program_points): New.
2671         (coalesced_allocnos_live_at_points_p,
2672         set_coalesced_allocnos_live_points): New functions.
2673         (coalesce_spill_slots): Rewrite.
2674         
2675         * ira-lives.c (remove_some_program_points_and_update_live_ranges,
2676         ira_compress_allocno_live_ranges): New functions.
2677
2678         * ira-build.c (ira_flattening): Call
2679         ira_compress_allocno_live_ranges.
2680         (ira_build): Ditto.
2681
2682 2008-09-25  H.J. Lu  <hongjiu.lu@intel.com>
2683
2684         * config/i386/i386.md: Check cmp/branch fuse for cmp peephole
2685         optimization.
2686
2687 2008-09-25  Richard Sandiford  <rdsandiford@googlemail.com>
2688
2689         * combine.c (make_compound_operation): Handle the 'E' format.
2690         (count_rtxs): Likewise.
2691         (update_table_tick): Likewise.
2692         (get_last_value_validate): Likewise.
2693
2694 2008-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2695
2696         * dbxout.c (dbxout_parms): Fetch the inner REG inside a PARALLEL.
2697
2698 2008-09-25 Sergei Dyshel <sergeid@il.ibm.com>
2699
2700         * matrix-reorg.c (transform_allocation_sites): Initializers 
2701         added to avoid the warning.
2702
2703 2008-09-25  Martin Jambor  <mjambor@suse.cz>
2704
2705         * cgraph.c (free_nodes): New variable.
2706         (NEXT_FREE_NODE): New macro.
2707         (cgraph_create_node): Reuse nodes from the free list.  Do not
2708         update uid if doing so.
2709         (cgraph_remove_node): Add the node to the free list.
2710
2711 2008-09-25  Gerald Pfeifer  <gerald@pfeifer.com>
2712
2713         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2714
2715 2008-09-24  Richard Henderson  <rth@redhat.com>
2716
2717         * dwarf2.h (DW_OP_GNU_encoded_addr): New.
2718         * unwind-dw2.c (execute_stack_op): Handle it.
2719
2720 2008-09-24  David Edelsohn  <edelsohn@gnu.org>
2721
2722         Revert:
2723         2008-09-24  Michael J. Eager  <eager@eagercon.com>
2724
2725 2008-09-24  Aldy Hernandez  <aldyh@redhat.com>
2726
2727         * c-common.c (fname_decl): New location argument.
2728         * c-common.h (fname_decl): Same.
2729         * c-parser.c (c_lex_one_token): Use {warning,error}_at instead of
2730         {warning,error}.
2731         (c_parser_typeof_specifier): Same.
2732         (c_parser_parms_list_declarator): Same.
2733         (c_parser_asm_string_literal): Same.
2734         (c_parser_compound_statement_nostart): Same.
2735         (c_parser_label): Same.
2736         (c_parser_do_statement): Same.
2737         (c_parser_asm_statement): Same.
2738         (c_parser_unary_expression): Same.
2739         (c_parser_sizeof_expression): Same.
2740         (c_parser_postfix_expression): Same.
2741         (c_parser_pragma): Same.
2742         (c_parser_omp_clause_collapse): Same.
2743         (c_parser_omp_clause_num_threads): Same.
2744         (c_parser_omp_clause_schedule): Same.
2745         (c_parser_omp_all_clauses): Same.
2746         (c_parser_omp_sections_scope): Same.
2747         (c_parser_omp_for_loop): Same.  Pass condition's location to
2748         c_objc_common_truthvalue_conversion.
2749         (c_parser_enum_specifier): Remove comment.
2750
2751 2008-09-24  Michael J. Eager  <eager@eagercon.com>
2752
2753         * config/rs6000/predicates.md (easy_fp_constant): Single FP consts
2754         are easy.
2755         * config/rs6000/rs6000.c (rs6000_override_options): Move
2756         rs6000_init_hard_regno_mode_ok after all options changed.
2757         Set rs6000_single_float, rs6000_double_float if TARGET_HARD_FLOAT.
2758         (rs6000_handle_option): Process -msingle-float, -mdouble-float,
2759         -msimple-fpu flags.  Add warning messages if single FP not configured.
2760         (rs6000_file_start): Output gnu_attribute for single-float.
2761         (legitimate_lo_sum_address_p): Condition on TARGET_DOUBLE_FLOAT.
2762         (rs6000_legitimize_address): Likewise.
2763         (rs6000_legitimize_reload_address): Likewise.
2764         (rs6000_emit_move): Condition on TARGET_DOUBLE_FLOAT,
2765         TARGET_SINGLE_FLOAT.
2766         (function_arg_advance): Likewise.
2767         (function_arg): Likewise.
2768         (setup_incoming_varargs): Condition on TARGET_DOUBLE_FLOAT.
2769         (rs6000_gimplify_va_arg): Condition on TARGET_DOUBLE_FLOAT,
2770         TARGET_SINGLE_FLOAT.
2771         (rs6000_split_multireg_move): Condition on TARGET_DOUBLE_FLOAT.
2772         (rs6000_emit_prologue): Likewise.
2773         (rs6000_function_value): Condition on TARGET_DOUBLE_FLOAT,
2774         TARGET_SINGLE_FLOAT.
2775         (rs6000_libcall_value): Likewise.
2776         * config/rs6000/rs6000.h (TARGET_SINGLE_FLOAT): New default to 1.
2777         (TARGET_DOUBLE_FLOAT): New default to 1
2778         (TARGET_SIMPLE_FPU): New default to 0
2779         (TARGET_SINGLE_FPU): New default to 0
2780         (TARGET_SINGLE_FLOAT_MODE): New.
2781         (TARGET_DOUBLE_FLOAT_MODE): New.
2782         * config/rs6000/singlefp.h: New; redefine TARGET_SINGLE_FLOAT,
2783         TARGET_DOUBLE_FLOAT, TARGET_SIMPLE_FPU, TARGET_SINGLE_FPU,
2784         UNITS_PER_FP_WORD
2785         * config/rs6000/rs6000.md (define_mode_iterator): Condition on
2786         TARGET_DOUBLE_FLOAT, TARGET_SINGLE_FLOAT.
2787         (extendsfdf2, extendsfdf2_fpr, truncdfsf2, truncdfsf2_fpr,
2788         copysigndf3,fseldfsf4, negdf2, negdf2_fpr, absdf2, absdf2_fpr,
2789         nabsdf2_fpr, adddf3, adddf3_fpr, subdf3, subdf3_fpr, muldf3,
2790         muldf3_fpr, divdf3, divdf3_fpr, sqrtdf2, smaxdf3, smindf3,
2791         movdfcc, *fseldfdf4, floatsidf2, *floatsidf2_internal,
2792         floatunssidf2, *floatunssidf2_internal, fix_truncdfsi2,
2793         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
2794         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2,
2795         rounddf2, floatdidf2, floatsidf_ppc64_mfpgpr, floatsidf_ppc64,
2796         floatunssidf_ppc64, fix_truncdfdi2, movdf_hardfloat32,
2797         movdf_hardfloat64_mfpgpr, movdf_hardfloat64, extenddftf2_fprs,
2798         extenddftf2_internal, trunctfdf2_internal2, fix_trunc_helper,
2799         abstf2_internal, movdf_update1, movdf_update2, cmpdf_internal1,
2800         cmptf_internal1, *cmptf_internal2): Condition on
2801         TARGET_DOUBLE_FLOAT.
2802         (aux_truncdfsf2, negsf2, *negsf2, abssf2, *abssf2, addsf3, subsf3,
2803         mulsf3, divsf3, sqrtsf2, copysignsf3, smaxsf3, sminsf3, movsfcc,
2804         *fselsfsf4, fixuns_truncsfsi2, fix_truncsfsi2, floatunssisf2,
2805         btruncsf2, ceilsf2, floorsf2, roundsf2, floatdisf2_internal1,
2806         floatdisf2_internal2, *movsf_hardfloat, trunctfsf2_fprs,
2807         *movsf_update1, *movsf_update2, *cmpsf_internal1): Condition on
2808         TARGET_SINGLE_FLOAT.
2809         (divsf3, sqrtsf2, divdf3, divdf3_fpr): Condition on TARGET_SIMPLE_FPU.
2810         * config/rs6000/rs6000.opt (-msingle-float): New.
2811         (-mdouble-float): New.
2812         (-msimple-fpu): New.
2813         * doc/invoke.texi (RS/6000 and PowerPC Options): Add
2814         -msingle-float, -mdouble-float, -msimple-fpu options.
2815         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Set
2816         _SOFT_DOUBLE for -msingle-float.
2817         * config.gcc: New config for target=powerpc-xilinx-eabi.
2818
2819 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2820
2821         * config/sparc/constraints.md: New file.
2822         * config/sparc/sparc.md: Include it.
2823         * config/sparc/sparc-protos.h (memory_ok_for_ldd): Declare.
2824         (sparc_extra_constraint_check): Delete.
2825         * config/sparc/sparc.c (register_ok_for_ldd): Minor tweaks.
2826         (memory_ok_for_ldd): New predicate.
2827         (sparc_extra_constraint_check): Delete.
2828         * config/sparc/sparc.h (REG_CLASS_FROM_LETTER): Likewise.
2829         (CONST_OK_FOR_LETTER_P): Likewise.
2830         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
2831         (EXTRA_CONSTRAINT): Likewise.
2832
2833 2008-08-23  Steve Ellcey  <sje@cup.hp.com>
2834
2835         * regrename.c (do_replace): Copy REG_POINTER value to new reg.
2836
2837 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2838
2839         * alias.c (find_base_value): Use FIND_BASE_TERM.
2840         * doc/tm.texi (FIND_BASE_TERM): Update documentation.
2841
2842 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2843
2844         * config/i386/i386.c: Include cselib.h.
2845         (ix86_pic_register_p): New function.
2846         (ix86_delegitimize_address): Use it to check for the PIC register.
2847
2848 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2849
2850         * doc/tm.texi (FIND_BASE_TERM): Expand documentation.
2851         * config/i386/i386.c (ix86_find_base_term): Don't check for
2852         SYMBOL_REF and LABEL_REF.
2853
2854 2008-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
2855
2856         * config/i386/i386.c (ix86_delegitimize_address): Wrap the
2857         constant PLUS in a CONST.
2858
2859 2008-09-23  Kai Tietz  <kai.tietz@onevision.com>
2860
2861         * config/i386/i386.c (ix86_function_ok_for_sibcall): Correct
2862         check for sibcall support for w64.
2863
2864 2008-09-23  Eric Botcazou  <ebotcazou@adacore.com>
2865
2866         * c-ppoutput.c (cb_used_define): Do nothing for a builtin node.
2867
2868 2008-09-23  Aldy Hernandez  <aldyh@redhat.com>
2869
2870         * c-tree.h: Add argument to c_objc_common_truthvalue_conversion,
2871         parser_build_binary_op.
2872         * c-decl.c (build_enumerator): Pass location to build_binary_op.
2873         * c-typeck.c (build_array_ref): Same.
2874         (parser_build_unary_op): New location argument.
2875         (pointer_diff): Pass location to build_binary_op,
2876         c_objc_common_truthvalue_conversion.
2877         (build_modify_expr): Same.
2878         (build_unary_op): New location argument.
2879         (build_binary_op): New location argument.
2880         (c_objc_common_truthvalue_conversion): Pass location to
2881         c_*common_truthvalue_conversion.
2882         * c-convert.c (convert): Same.
2883         * c-common.c (binary_op_error): New location argument.
2884         (pointer_int_sum): Pass location to build_binary_op.
2885         (c_common_truthvalue_conversion): New location argument.
2886         (warn_for_sign_compare): Same.
2887         * c-common.h: Add location argument to c_common_truthvalue_conversion,
2888         binary_op_error, build_binary_op, warn_for_sign_compare.
2889         * c-parser.c (c_parser_condition): Pass location to
2890         c_*common_truthvalue_conversion.
2891         (c_parser_conditional_expression): Save condition's location and pass
2892         it on down.
2893         (c_parser_binary_expression): Same, but for the binary operator's
2894         location.
2895         (c_parser_omp_for_loop): Pass location to
2896         c_objc_common_truthvalue_conversion.
2897
2898 2008-09-23  Martin Jambor  <mjambor@suse.cz>
2899
2900         * cgraph.c (cgraph_free_edge): Use sizeof(*e).
2901         (cgraph_node_remove_callees): New temporary f.  Hold the next item
2902         in f when looping.
2903         (cgraph_node_remove_callers): Likewise.
2904
2905         * ipa-prop.c (ipa_edge_removal_hook): Use ATTRIBUTE_UNUSED.
2906         (ipa_node_removal_hook): Likewise.
2907
2908         * doc/gimple.texi (gimple_copy_call_skip_args): Changed to
2909         gimple_call_copy_skip_args and moved to the gimple_call section.
2910         * gimple.c (gimple_copy_call_skip_args): Renamed to
2911         gimple_call_copy_skip_args.  Changed al users.
2912
2913 2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>
2914
2915         * ira-color.c (start_allocno_priorities): Rename to
2916         setup_allocno_priorities.  Use costs and
2917         ALLOCNO_EXCESS_PRESSURE_POINTS_NUM instead of frequencies and
2918         range lengths.  Get rid off doubles.
2919         (ira_fast_allocations): Call start_allocno_priorities.
2920         
2921 2008-09-22  David Daney  <ddaney@avtrex.com>
2922
2923         PR target/37593
2924         * config/mips/mips.h (FUNCTION_PROFILER): Call _mcount via a
2925         register if TARGET_LONG_CALLS.
2926
2927 2008-09-22  Richard Guenther  <rguenther@suse.de>
2928
2929         PR tree-optimization/37145
2930         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable
2931         value-numbering union accesses with their offset and size only.
2932         (visit_reference_op_load): Fix simplification of inserted conversions.
2933         * tree-ssa-pre.c (find_or_generate_expression): Do not
2934         recursively generate expressions if running FRE.
2935
2936 2008-09-22  Adam Nemet  <anemet@caviumnetworks.com>
2937
2938         * config/mips/mips.h (ISA_HAS_BADDU): New macro.
2939         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el, *baddu_di<mode>):
2940         New patterns.
2941
2942 2008-09-22  Richard Guenther  <rguenther@suse.de>
2943
2944         PR tree-optimization/37145
2945         * tree-ssa-pre.c (fully_constant_expression): Simplify builtin calls.
2946         (phi_translate_1): Constant fold references.
2947
2948 2008-09-22  Ira Rosen  <irar@il.ibm.com>
2949
2950         PR tree-optimization/37482
2951         * tree-vectorizer.h (struct _slp_instance): Add new field.
2952         (SLP_INSTANCE_FIRST_LOAD_STMT): New.
2953         (get_earlier_stmt): New function.
2954         * tree-vect-analyze.c (vect_find_first_load_in_slp_instance): New
2955         function.
2956         (vect_analyze_slp_instance): Set SLP_INSTANCE_FIRST_LOAD_STMT.
2957         * tree-vect-transform.c (vect_finish_stmt_generation): Remove the
2958         asserts that GSI points to the scalar statement being vectorized.
2959         Set new statement location according to GSI.
2960         (vect_schedule_slp_instance): Use GSI of
2961         SLP_INSTANCE_FIRST_LOAD_STMT when vectorizing loads.
2962
2963 2008-09-21  Jan Hubicka  <jh@suse.cz>
2964
2965         * ipa-cp.c (ipcp_estimate_growth): Check recursive calls.
2966         (ipcp_insert_stage): Update dead_nodes bitmap.
2967
2968 2008-09-22  Danny Smith  <dannysmith@users.sourceforge.net>
2969
2970         PR target/37528 
2971         * config/i386/t-cygming (SHLIB_LC): Remove.
2972         (SHLIB_LINK): Don't add static objects to SHLIB_IMPLIB
2973         * config/i386/t-cygwin (SHLIB_LC): Specify all required libraries.
2974
2975 2008-09-22  Hans-Peter Nilsson  <hp@axis.com>
2976
2977         PR middle-end/37170
2978         PR middle-end/37280
2979         * final.c (mark_symbol_ref_as_used): New helper function.
2980         (output_operand): Instead of just looking inside MEMs for
2981         SYMBOL_REFs, use new helper function and for_each_rtx.
2982         * varasm.c (assemble_external): Move #ifndef ASM_OUTPUT_EXTERNAL
2983         to after weak-handling.  Don't mark decls with TREE_STATIC as weak.
2984         Make head comment more general.
2985         * config/darwin.c (machopic_output_indirection): Handle weak
2986         references here, like in assemble_external.
2987
2988 2008-09-21  Eric Botcazou  <ebotcazou@adacore.com>
2989
2990         * config/sparc/sparc-protos.h (gen_compare_operator): Declare.
2991         (sparc_emit_float_lib_cmp): Change return type.
2992         * config/sparc/sparc.c (gen_compare_reg): Add comment about TFmode.
2993         (gen_compare_operator): New function.
2994         (sparc_emit_float_lib_cmp): Return the new operator to be used in
2995         the comparison sequence.  Minor tweaks.
2996         * config/sparc/sparc.md (seq, sne, sgt, slt, sge, sle): Assert
2997         that the final operator and the result of sparc_emit_float_lib_cmp
2998         match for software TFmode; use emit_insn in lieu of emit_jump_insn.
2999         (beq, bne, bgt, blt, bge, ble, bunordered, bordered, bungt, bunlt,
3000         buneq, bunge, bunle, bltgt): Assert that the final operator and the
3001         result of sparc_emit_float_lib_cmp match for software TFmode.
3002         (movqicc, movhicc, movsicc, movdicc): Merge into...
3003         (mov<I:mode>cc): ...this.
3004         (movsfcc, movdfcc, movtfcc): Merge into...
3005         (mov<F:mode>cc): ...this.
3006         (movqi_cc_sp64, movhi_cc_sp64, movsi_cc_sp64, movdi_cc_sp64): Merge
3007         into...
3008         (mov<I:mode>_cc_v9): ...this.
3009         (movdi_cc_sp64_trunc): Delete.
3010         (movqi_cc_reg_sp64, movhi_cc_reg_sp64, movsi_cc_reg_sp64,
3011         movdi_cc_reg_sp64): Merge into...
3012         (mov<I:mode>_cc_reg_sp64): ...this.
3013         (movsf_cc_sp64): Rename into...
3014         (movsf_cc_v9): ...this.
3015         (movdf_cc_sp64): Rename into...
3016         (movdf_cc_v9): ...this.
3017         (movtf_cc_hq_sp64): Rename into...
3018         (movtf_cc_hq_v9): ...this.
3019         (movtf_cc_sp64): Rename into...
3020         (movtf_cc_v9): ...this.  Adjust for renaming of movdf_cc_sp64.
3021
3022 2008-09-21  Diego Novillo  <dnovillo@google.com>
3023
3024         * doc/gccint.texi: Include generic.texi and gimple.texi.
3025         Re-order index.
3026         * doc/tree-ssa.texi (GENERIC): Move to generic.texi.
3027         (GIMPLE): Move to gimple.texi.
3028         (Annotations): Remove references to to stmt_ann_t and
3029         ssa_name_ann_t.
3030         (SSA Operands): Rename from 'Statement Operands'.
3031         * doc/generic.texi: New.
3032         * doc/gimple.texi: New.
3033         * Makefile.in (TEXI_GCCINT_FILES): Add generic.texi and gimple.texi.
3034         * Makefile.in (TEXI_GCCINT_FILES):
3035         * gimple.c (gimple_copy_call_skip_args): Rename from
3036         giple_copy_call_skip_args.  Update all users.
3037         * doc/gimple.texi (gimple_copy_call_skip_args): Document.
3038
3039 2008-09-21  Ira Rosen  <irar@il.ibm.com>
3040
3041         PR tree-optimization/37539
3042         * tree-vect-transform.c (vect_transform_strided_load): Save vector
3043         statement in related statement field only for the first load of the
3044         group of loads with the same data reference.
3045
3046 2008-09-20  Adam Nemet  <anemet@caviumnetworks.com>
3047
3048         * config/mips/mips.h (TUNE_OCTEON): New macro.
3049         * config/mips/mips.c (mips_issue_rate): Return 2 for Octeon.
3050         (mips_multipass_dfa_lookahead): Return 2 for Octeon.
3051         * config/mips/octeon.md: New file.
3052         * config/mips/mips.md: Include octeon.md.  Restore
3053         semi-alphabetical order of include files.
3054
3055 2008-09-20  H.J. Lu  <hongjiu.lu@intel.com>
3056
3057         PR target/37571
3058         * config/i386/i386.md (*jcc_fused_1): Removed.
3059         (*jcc_fused_2): Likewise.
3060         (*jcc_fused_3): Likewise.
3061         (*jcc_fused_4): Likewise.
3062
3063 2008-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
3064
3065         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Define.
3066         (IRA_COVER_CLASSES): Refer to TARGET_IRA_COVER_CLASSES.
3067         * target.h (gcc_target): Add ira_cover_classes.
3068         * ira.c: Remove IRA_COVER_CLASSES guards.
3069         (setup_cover_and_important_classes): Use targetm.ira_cover_classes
3070         instead of IRA_COVER_CLASSES.
3071         (setup_cover_and_important_classes): Remove IRA_COVER_CLASSES guard.
3072         (setup_class_translate): Likewise.
3073         (setup_reg_class_intersect_union): Likewise.
3074         (find_reg_class_closure): Replace IRA_COVER_CLASSES guard with a
3075         test of targetm.ira_cover_classes.
3076         * opts.c (decode_options): Use targetm.ira_cover_classes instead
3077         of IRA_COVER_CLASSES.
3078         * target-def.h (TARGET_IRA_COVER_CLASSES): Define.
3079         (TARGET_INITIALIZER): Include it.
3080         * targhooks.h (default_ira_cover_classes): Declare.
3081         * targhooks.c (default_ira_cover_classes): New function.
3082
3083 2008-09-19  Bob Wilson  <bob.wilson@acm.org>
3084         
3085         * config/xtensa/xtensa.md (reload<mode>_literal): Handle MEM operands.
3086         
3087 2008-09-19  Ian Lance Taylor  <iant@google.com>
3088
3089         * varasm.c (narrowing_initializer_constant_valid_p): Return
3090         NULL_TREE if ENDTYPE is not an integer.
3091
3092 2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3093
3094         PR tree-opt/30930
3095         * tree-ssa.c (execute_update_addresses_taken): Also update
3096         DECL_GIMPLE_REG_P for vector and complex types.
3097
3098 2008-09-19  Andrew MacLeod  <amacleod@redhat.com>
3099             Jan Hubicka  <jh@suse.cz>
3100
3101         PR middle-end/37567
3102         * tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
3103         empty before freeing them.
3104         (find_replaceable_exprs): Move asserts to free_temp_expr_table.
3105
3106 2008-09-18  Bob Wilson  <bob.wilson@acm.org>
3107
3108         * configure.ac: Add HAVE_AS_TLS check for Xtensa.
3109         * config/xtensa/predicates.md (tls_symbol_operand): New.
3110         * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Define.
3111         (TARGET_CANNOT_FORCE_MEM): Define.
3112         (xtensa_tls_symbol_p): New.
3113         (xtensa_emit_move_sequence): Check for and legitimize TLS addresses.
3114         (xtensa_legitimate_address_p): Disallow constant pool TLS references.
3115         (xtensa_tls_module_base): New.
3116         (xtensa_call_tls_desc): New.
3117         (xtensa_legitimize_tls_address): New.
3118         (xtensa_legitimize_address): Handle TLS symbols.
3119         (xtensa_tls_referenced_p_1): New.
3120         (xtensa_tls_referenced_p): New.
3121         (xtensa_output_addr_const_extra): Handle UNSPEC_TPOFF and
3122         UNSPEC_DTPOFF.
3123         (XTENSA_BUILTIN_THREAD_POINTER): New.
3124         (XTENSA_BUILTIN_SET_THREAD_POINTER): New.
3125         (xtensa_init_builtins): Set NOTHROW and READONLY for umulsidi3
3126         builtin.  Add declarations for __builtin_thread_pointer and
3127         __builtin_set_thread_pointer.
3128         (xtensa_fold_builtin): Recognize new builtins.
3129         (xtensa_expand_builtin): Expand new builtins.
3130         * config/xtensa/xtensa.h (XCHAL_HAVE_THREADPTR): Define default value.
3131         (TARGET_THREADPTR): Define.
3132         (HAVE_AS_TLS): Define default value.
3133         (LEGITIMATE_CONSTANT_P): Disallow TLS references.
3134         * config/xtensa/xtensa.md (UNSPEC_TPOFF, UNSPEC_DTPOFF): New.
3135         (UNSPEC_TLS_FUNC, UNSPEC_TLS_ARG, UNSPEC_TLS_CALL, UNSPEC_TP): New.
3136         (UNSPECV_SET_TP): New.
3137         (sym_TPOFF, sym_DTPOFF): New.
3138         (load_tp, set_tp, tls_func, tls_arg, tls_call): New.
3139         * config/xtensa/xtensa-protos.h (xtensa_tls_referenced_p): Declare.
3140         * configure: Regenerated.
3141         
3142 2008-09-18  H.J. Lu  <hongjiu.lu@intel.com>
3143
3144         PR target/37394
3145         * config/ia64/ia64.c (ia64_optimization_options): Move
3146         checking and setting flag_schedule_insns_after_reload and
3147         ia64_flag_schedule_insns2 back to ...
3148         (ia64_override_options): Here.
3149
3150 2008-09-18  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3151
3152         PR rtl-opt/37451
3153         * loop-doloop.c (doloop_modify): New argument zero_extend_p and
3154         zero extend count after the correction to it is done.
3155         (doloop_optimize): Update call to doloop_modify, don't zero extend
3156         count before call.
3157
3158 2008-09-18  Martin Jambor  <mjambor@suse.cz>
3159
3160         * ipa-cp.c (ipcp_estimate_growth): Return 0 instead of false.
3161
3162         * ipa-prop.c: Correct comments.
3163         * ipa-prop.h: Likewise.
3164
3165 2008-09-18  Jan Hubicka  <jh@suse.cz>
3166
3167         PR middle-end/37448
3168         * ipa-reference.c (ipa_reference_local_vars_info_d,
3169         ipa_reference_global_vars_info_d,
3170         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
3171         ipa_reference_vars_info_t): Move here from ipa-reference.h
3172         (node_duplication_hook_holder, node_removal_hook_holder): New.
3173         (get_reference_vars_info_from_cgraph): Rename to ...
3174         (get_reference_vars_info): ... this one, use cgraph uids.
3175         (get_local_reference_vars_info, get_global_reference_vars_info):
3176         Use cgraph instead of decl.
3177         (ipa_reference_get_read_local, ipa_reference_get_written_local):
3178         Remove.
3179         (ipa_reference_get_read_global, ipa_reference_get_not_read_global
3180         ipa_reference_get_written_global,
3181         ipa_reference_get_not_written_global): Use cgraph argument.
3182         (check_call): Simplify avail check.
3183         (scan_stmt_for_static_refs): Update.
3184         (propagate_bits): Update.
3185         (merge_callee_local_info): Remove.
3186         (init_function_info): Use cgraph nodes.
3187         (clean_function_local_data): Break out from ...
3188         (clean_function): ... here.
3189         (copy_local_bitmap, copy_global_bitmap): New functions.
3190         (duplicate_node_data, remove_node_data): New functions.
3191         (generate_summary): Register hooks; use visibility instead of
3192         master clones.
3193         (propafate): Use cgraph nodes; copy bitmap to each node in cycle.
3194         * ipa-reference.h (ipa_reference_local_vars_info_d,
3195         ipa_reference_global_vars_info_d,
3196         ipa_reference_local_vars_info_t, ipa_reference_global_vars_info_t,
3197         ipa_reference_vars_info_t): Move to ipa-reference.c
3198         (ipa_reference_get_read_local, ipa_reference_get_written_local):
3199         Remove.
3200         (ipa_reference_get_read_global, ipa_reference_get_written_global,
3201         ipa_reference_get_not_read_global,
3202         ipa_reference_get_not_written_global): Update prototype.
3203         * ipa-pure-const.c (funct_state_vec): Turn into VECtor.
3204         (init_state): Remove.
3205         (node_duplication_hook_holder, node_removal_hook_holder): New.
3206         (get_function_state, set_function_state): Use VECtor.
3207         (analyze_function): Check body availability.
3208         (add_new_function): Likewise.
3209         (duplicate_node_data, remove_node_data): New.
3210         (generate_summary): Register hooks; do not care about clones.
3211         (propafate): Do not care about clones; recursive functions are
3212         not looping.
3213         * ipa-utils.c (searchc, ipa_utils_reduced_inorder): Do not skip clones.
3214         * ipa-prop.c (edge_removal_hook_holder, node_removal_hook_holder,
3215         * edge_duplication_hook_holder, node_duplication_hook_holder): Make
3216         static.
3217         * tree-flow.h (function_ann_d): Remove reference_vars_info.
3218         * tree-ssa-opreands.c (add_call_clobber_ops, add_call_read_ops):
3219         Update call of ipa-reference accesors.
3220
3221 2008-09-18  Simon Baldwin  <simonb@google.com>
3222
3223         * c-opts.c (c_common_handle_option): Add handling for
3224         -Wbuiltin-macro-redefined command line option.
3225         * c.opt: Added builtin-macro-redefined option.
3226         * doc/invoke.texi (Warning Options): Add -Wbuiltin-macro-redefined
3227         documentation.
3228
3229 2008-09-18  Richard Guenther  <rguenther@suse.de>
3230
3231         PR tree-optimization/37258
3232         * tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
3233         and signedness for integral types.
3234         (vn_phi_eq): Require compatible types.
3235
3236 2008-09-18  Jakub Jelinek  <jakub@redhat.com>
3237
3238         PR debug/34037
3239         * gimplify.c (gimplify_type_sizes): When not optimizing, ensure
3240         TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
3241         VAR_DECL.
3242         * cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
3243         !DECL_IGNORED_P vars in local_decls list for instantiate_decls,
3244         ggc_free other TREE_LIST nodes from that chain.
3245         * function.c (instantiate_decls): Instantiate also DECL_RTL
3246         of vars in cfun->local_decls, free that list afterwards.
3247
3248 2008-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3249
3250         * config/sparc/sol2.h (WIDEST_HARDWARE_FP_SIZE): Move to...
3251         * config/sparc/sparc.h (WIDEST_HARDWARE_FP_SIZE): ...here.
3252
3253 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
3254
3255         * tree-outof-ssa.c (eliminate_useless_phis): Fix formatting.
3256         * tree-flow-.h (struct immediate_use_iterator_d): Fix comment.
3257
3258 2008-09-18  Andrew MacLeod  <amacleod@redhat.com>
3259
3260         PR tree-optimization/37102
3261         * tree-outof-ssa.c (remove_gimple_phi_args): Remove all the PHI args
3262         from a node. Check to see if another PHI is dead.
3263         (eliminate_useless_phis): Rename from eliminate_virtual_phis and 
3264         remove real PHIs which have no uses.
3265         (rewrite_out_of_ssa): Call eliminate_useless_phis.
3266
3267 2008-09-18  Richard Guenther  <rguenther@suse.de>
3268
3269         PR middle-end/37284
3270         * tree-cfg.c (remove_useless_stmts_1): Remove
3271         GIMPLE_CHANGE_DYNAMIC_TYPE if not optimizing.
3272
3273 2008-09-18  Nick Clifton  <nickc@redhat.com>
3274
3275         * config/frv/frv.h (IRA_COVER_CLASSES): Define.
3276         (SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
3277         to frv_secondary_reload_class.
3278         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
3279         * config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
3280         (frv_secondary_reload_class): Omit unused parameter.
3281         (frv_secondary_reload): New function.  Handle the case when
3282         secondary_reload_class() is called before the reload_(in|out)
3283         _optabs have been initialised.
3284         * config/frv/frv-protos.h (frv_secondary_reload_class): Omit
3285         unused parameter.
3286         * config/frv/frv.md: Define an exclusion set between fr550_m0
3287         and fr550_f0.
3288
3289 2008-09-18  Richard Guenther  <rguenther@suse.de>
3290
3291         PR tree-optimization/37456
3292         * tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
3293         want to insert after ends a BB insert on the single fallthru
3294         outgoing edge.
3295
3296 2008-09-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3297
3298         * doc/invoke.texi: Document -mhard-dfp, -mno-hard-dfp.
3299         Mention -march=z9-109, z9-ec and z10.
3300
3301 2008-09-18  Uros Bizjak  <ubizjak@gmail.com>
3302
3303         PR rtl-optimization/37544
3304         * regrename.c (maybe_mode_change): Exit early when copy_mode
3305         is narrower than orig_mode and narrower than new_mode.
3306
3307 2008-09-18  Alexander Monakov  <amonakov@ispras.ru>
3308
3309         PR middle-end/37499
3310         * sched-int.h (struct _haifa_insn_data): Remove unused field ref_count.
3311
3312         * sched-rgn.c (ref_counts): Remove.
3313         (insn_referenced): New static variable.
3314         (INSN_REF_COUNT): Remove.
3315         (sched_run_compute_dependencies): Use insn_referenced instead of
3316         INSN_REF_COUNT.
3317         (add_branch_dependences): Likewise.  Delete dead assignment.
3318
3319 2008-09-17  Adam Nemet  <anemet@caviumnetworks.com>
3320
3321         * haifa-sched.c (dep_cost_1): Recognize the producer even if the
3322         consumer is an asm.  Add comment why this is important.
3323         (choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
3324         recog_memoized (insn) < 0" assert.  Put ENABLE_CHECKING around it.
3325
3326 2008-09-17  Joseph Myers  <joseph@codesourcery.com>
3327
3328         * expr.c (emit_group_store): Do not shift before moving via a
3329         stack slot.
3330
3331 2008-09-17  Eric Botcazou  <ebotcazou@adacore.com>
3332
3333         * varasm.c (initializer_constant_valid_p): Forbid view-conversions
3334         from aggregate to non-aggregate type if the bit pattern is not fully
3335         preserved afterwards.
3336
3337 2008-09-17  Richard Guenther  <rguenther@suse.de>
3338
3339         * tree-cfg.c (verify_types_in_gimple_assign): Rename to ...
3340         (verify_gimple_assign): ... this.  Split into ...
3341         (verify_gimple_assign_unary): ... this,
3342         (verify_gimple_assign_binary): ... that,
3343         (verify_gimple_assign_single): ... and this.
3344         (verify_types_in_gimple_stmt): Call verify_gimple_assign.
3345         Fix GIMPLE_CHANGE_DYNAMIC_TYPE handling.
3346         (verify_types_in_gimple_min_lval): Handle TARGET_MEM_REF.
3347         (verify_types_in_gimple_reference): Be forgiving with
3348         VIEW_CONVERT_EXPRs.
3349         (verify_gimple_phi): Deal with virtual operands.
3350
3351         * tree.def (PREDICT_EXPR): Change to tcc_expression.
3352
3353 2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3354
3355         * tree.c (get_callee_fndecl): Don't call the language hook.
3356         * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
3357         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
3358         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
3359
3360 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3361
3362         * tree.c (protected_set_expr_location): Don't unnecessarily
3363         check for error_mark_node.
3364
3365 2008-09-17  Art Haas  <ahaas@impactweather.com>
3366
3367         * ipa-reference.c (analyze_function): Declare step only if
3368         ENABLE_CHECKING is defined.
3369
3370 2008-09-17  Jan Hubicka  <jh@suse.cz>
3371
3372         PR c++/18071
3373         * tree.h (DECL_INLINE): remove.
3374         (DECL_DECLARED_INLINE_P): Update docs.
3375         (DECL_NO_INLINE_WARNING_P): new.
3376         (tree_function_decl): Replace inline_flag by no_inline_warning_flag.
3377         * tree-inline.c (inlinable_function_p): Set DECL_NO_INLINE_WARNING_P.
3378
3379 2008-09-17  Jakub Jelinek  <jakub@redhat.com>
3380             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3381
3382         PR bootstrap/37441
3383         * dwarf2out.c (dwarf2out_do_cfi_asm) [MIPS_DEBUGGING_INFO]: Return
3384         false.
3385
3386 2008-09-17  Jan Hubicka  <jh@suse.cz>
3387
3388         * ipa-reference.c (ipa_obstack): Remove.
3389         (local_info_obstack, global_info_obstack): New.
3390         (add_static_var): We now handle variables only.
3391         (mark_address_taken, mark_load, mark_store): New functions based on ...
3392         (check_operand): ... remove.
3393         (get_asm_stmt_operands): Rename to ...
3394         (check_asm_memory_clobber): ... this. Look only for memory clobber.
3395         (scan_stmt_for_static_refs): Rewrite.
3396         (scan_op_for_static_refs): Rename to ...
3397         (scan_initializer_for_static_refs): do not look for VAR_DECL
3398         initializers; stop recursion on types and decls.
3399         (ipa_init): Use proper obstacks.
3400         (analyze_variable): Use scan_initializer_for_static_refs.
3401         (init_function_info): Use local obstack.
3402         (analyze_function): Simplify.
3403         (add_new_function): We don't need visited_nodes obstack.
3404         (generate_summary): Use proper obstacks; cleanup after propagation.
3405
3406 2008-09-17  Richard Guenther  <rguenther@suse.de>
3407
3408         PR middle-end/37385
3409         PR tree-optimization/37491
3410         * alias.c (get_alias_set): Use the canonical type.
3411         * tree-vect-transform.c (vectorizable_store): Use the type of
3412         the lhs for the vector type.  Adjust checking.
3413         (vectorizable_load): Adjust checking.
3414
3415 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3416             Adam Nemet  <anemet@caviumnetworks.com>
3417
3418         PR rtl-optimization/37483
3419         * ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
3420         if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
3421         Rearrange code to better match the original comment.  Check
3422         t_unconditional first.  Improve comment.
3423
3424 2008-09-16  Jakub Jelinek  <jakub@redhat.com>
3425
3426         PR c/37529
3427         * gimplify.c (gimplify_expr) <case GOTO_EXPR>: If gimplification of
3428         GOTO_DESTINATION failed, don't create GIMPLE_GOTO.
3429
3430         PR c++/37530
3431         * gimplify.c (gimplify_expr) <case TRY_CATCH_EXPR>: Don't create
3432         GIMPLE_TRY if cleanup sequence is empty.
3433
3434 2008-09-16  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3435