OSDN Git Service

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