OSDN Git Service

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