OSDN Git Service

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